Throughout the history of invention, curious minds have sought to understand the inner workings of their gadgets. Whether investigating a broken watch, or improving an engine, these people have broken down their goods into their elemental parts to understand how they work. This is Reverse Engineering (RE), and it is done every day from recreating outdated and incompatible software, understanding malicious code, or exploiting weaknesses in software. In this course we will explore what drives people to reverse engineer software and the methodology and tools used to do it.
Topics include, but are not limited to:
- Uses for RE
- The tricks and pitfalls of analyzing compiled code
- Identifying calling conventions
- How to navigate x86 assembly using IDA Pro
- Identifying Control Flows
- Identifying the Win32 API
- Using a debugger to aid RE
- Dynamic Analysis tools and techniques for RE
Learning Objectives
- Provide detailed knowledge on RE methodology and tools.
- Demonstrate how to navigate x86 assembly code while avoiding tangents.
- Prepare students for follow on courses in Malware and Vulnerability Analysis.
Framework Connections
The materials within this course focus on the NICE Framework Task, Knowledge, and Skill statements identified within the indicated NICE Framework component(s):
Specialty Areas
- Cyber Defense Analysis
Feedback
If you would like to provide feedback on this course, please e-mail the NICCS team at NICCS@mail.cisa.dhs.gov. Please keep in mind that NICCS does not own this course or accept payment for course entry. If you have questions related to the details of this course, such as cost, prerequisites, how to register, etc., please contact the course training provider directly. You can find course training provider contact information by following the link that says “Visit course page for more information...” on this page.