Due to the COVID-19 pandemic, the seminar is organized as an online course. The kick-off meeting, individual discussions and the final presentations are conducted remotely via online learning tools. Please subscribe to this mailing list for further information.
This block seminar captures topics from the areas of code analysis and reverse engineering.
This seminar is a little different. It is organized like an academic conference with submissions, reviews, and presentations. The procedure is as follows:
First, you will be assigned a topic on which you will write a seminar paper. This paper can be written in English or German and should discuss the given topic. Keep in mind that this paper is your own contribution. Do not copy or plagiarize text from others. Write the paper in a way that your fellow students can easily follow and learn something from it.
Second, there will be a submission deadline. By this deadline, submit your paper and upload it to our conference submission system. In this system, your submission will be assigned to other students for review. Likewise, you will receive the other students' papers for review. Read the papers carefully and make constructive suggestions to improve them. The goal of this process is to make all papers in the seminar better.
Third, you will receive the reviews for your paper. You can now incorporate the feedback to improve your work. Prepare a revised version of your paper and submit it by the final submission deadline of the seminar (called camera-ready deadline).
Finally, it is time for the conference. The seminar will be held as a block course, and all students will present talks on their papers. These presentations are about 20-25 minutes long and should convey the main message of your paper. Prepare the talks alsonfor your fellow students so that they learn about your topic. If possible, we will provide food and drink during the breaks, just like at a real conference.
News and important information will be distributed via a mailing list. All participants have to subscribe here.
Explore different approaches to disassemble a binary and their strengths and weaknesses. Systematically describe general obstacles to this task and how they can be removed.
Reverse engineering binary software involves many steps. Give a systematic overview of the most important tasks and how to they can be solved.
The dissection of firmware poses different challenges than the analysis of other binaries. Work out the additional obstacles of firmware analysis and how they can be removed.
Many protocols are not documented publicly. Have a look at how protocols used by an application may be reverse engineered and how one can get information about the message format.
Finding vulnerabilities in software is a challenging task. Over the last years multiple approaches have been presented. Shed light light upon the recent developments and reflect them critically.
The crash of a software application often unveils security vulnerabilites. Dive into the world of fuzz testing and targeted input generation. Explore the pros and cons of different approaches and present your findings.
To reach a specific point in a program many checks have to be passed. See how symbolic execution is used to analyze code by constructing valid inputs to reach specific parts of the program and share your insights.
To collect run-time information additional instructions can be inserted into a binary program. Learn how instrumentation techniques can be used to enable the creation of program analysis tools.
Finding known code in unknown software is one application of binary code similiarity detection. Learn how fragments of binary code can be compared and how the similarity can be quantified.