Reverse engineering. Advanced Debugging, Obfuscations and Anti-Analysis. Writing decryptors.
The course begins by going through the necessary precaution measures when working with malware, then quickly dives in analysing actual samples. Since Windows is by far the most popular target platform, we will focus on this operating system.
Neither professional programming experience nor assembly language knowledge are required to benefit from the course, although they would be very helpful when we’ll look at identifying encryption algorithms and bypass anti-virtualisation checks. The concepts will be explained in a clear and concise manner and additional resources will be recommended.
Some programming experience will be very beneficial when we’ll start writing decryptors. However, the focus will be mostly on understanding the algorithms and specifically what information we need to do successful decryptions. For this reason, full Python and C source code will be provided.
To get the most out of this course, we recommended to exercise all the steps described within the lectures and whenever a concept or idea is not fully explained or clearly understood, either reached out with questions on the Q&A section or consult online resources.
Requirements
-
A computer that can run a Windows virtual machine.
-
An interest in disassembling things and understanding how they work!
-
Basic assembly knowledge about common instructions, registers, conditional branches
-
Basic programming knowledge and ability to understand simple Python and C source code
Hello and welcome to our Advanced Reverse Engineering Ransomware class!
This course is a continuation of our first class, Reverse Engineering Malware, but don’t worry, that is not a pre-requisite. You can start with this course and just dive in. However, if you feel like starting from the basics, we encourage you to check it out!
The aim of this course is to provide a practical approach to analyzing ransomware. More specifically, we will attack the following topics:
- Identify and work around anti-virtualization techniques deployed inside malware samples
- Dynamic analysis of sample’s activity on a Windows box
- Advanced debugging techniques
- Use static analysis to discover and understand encryption algorithms
- Discover, and work-around, obfuscation tricks and anti-static analysis tricks
- Discover flaws that allow us to recover encrypted files
- Write decryptors in Python and C