This course is logically designed to guide you through some of the complicated parts of static and dynamic analysis of malware, with IDA Pro. Instead of just introducing IDA features in a simple narrative way, we will work through interesting real world examples and samples. This way, each feature, tip or trick discussed will be put into context for easier learning. We will mainly cover IDA Pro for Windows and occasionally Linux, and introduce additional tools as well, like decompiler plugins, scripts and packers.
The course is very practical, focused on examples that can be done straight away. There are no pre-requisites for this class other that a Windows virtual machine and the will to learn. All the tools discussed are freely available online.
Neither professional programming experience nor assembly language knowledge are required to benefit from the course, although basic knowledge of both would be very helpful. The concepts will be explained clearly and concisely and additional resources are always available.
To get the most out of this course, we recommended doing all the exercises. You can post any queries or questions in the course Q&A section, and I will be more than happy to help.
Virtual environment setup.
Cheatsheet with malware analysis and reverse engineering essential tools.
Cheatsheet with IDA Pro tips and tricks to refer to throughout the course.
Work with flow charts, find OEP manually, dump processes and reconstruct and verify the imports table. Additional walkthrough manual PDF file.
Step-by-step static analysis of a classic self-modifying code in IDA Pro. Additional walkthrough manual PDF file.
Understand how to access GUI elements of other windows programatically from C++ code.
Analyse the rootkit code and learn navigation tricks in IDA.
More IDA tricks: adding comments, bookmarks, symbolic constants and debugging.
Debug, analyse and save data segments which are decrypted dynamically.
Work with IDA segments from IDC scripts and dump memory segments.
Code flow obfuscations, junk blocks and strange function calling tricks.
Recognise and work with code hidden in the overlay part of PE files.
Reverse engineer the code of a simple crackme exercise.
Create and import C header files for custom structures inside the crackme exercise.
64-bit code optimisations of Visual Studio C++ compiler and their impact on disassembling and decompilation.
64-bit calling convention, parameter passing and function returns.
Play with single precision floating point numbers in assembly code.
Work with debugging symbols from PDB files and source level debugging in IDA.
End of course quiz
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.