Last November Michael Meier of Dortmund University invited me to give a guest lecture on a topic of my choice in his class about reactive security. The topic we decided on was formal methods in reverse engineering. January 20th was the date of my guest lecture.
I was a bit nervous because I knew the students knew very little or nothing about formal methods and reverse engineering. I decided not to scare them away with assembly code or heavy math and to keep things general instead. The idea was to present current problems in reverse engineering caused by growing size and complexity of today’s software and how formal methods might be able to help us overcome these problems.
In the end I decided to give a brief introduction to abstract interpretation, meta languages, dynamic instrumentation, and taint tracking as four potential ways of cutting down on complexity which are all quite different.
I think the talk went rather well and I think I made the right decision with the topic. The students asked me some good questions during and after the talk and I like to believe that I did not bore them to death.
The slides of my guest lecture are available here although they are unfortunately in German language.
[slideshare id=3002487&doc=revengdortmund-100127054621-phpapp01]
Nice introduction, but on page 19 it says that a 32bit integer has 4294967295 states. This is incorrect: of course it’s actually one more state than that (2^32 = 4294967296).
Hi Jürgen,
yep, you’re right of course. Thank you for pointing that out.
[…] my big day had come. I travelled to Mannheim to give the second guest lecture of my life (I blogged about the first one at Dortmund University). I gave a brief history of popular reverse engineering […]