Reverse Engineering
Reverse engineering is the process of dismantling an object or system to see how it works.
Reverse Engineering Challenges
Reasons for learning Reverse Engineering
- Malware analysis.
- Vulnerability analysis.
- Software interoperability.
- To create compatible software or hardware.
- To create a key generator or bypass certification.
Portable Executable(PE) File
PE File examples
- Executables (exe)
- Dynamic Libraries
- Drivers -Sys
Diassembling
Is analyzing machine code to understand the program's functionality & structure.
Involves reversing an executable (.exe)
Disassemblers
Decompiling
Decompilers are tools that convert binary code back into a higher-level programming language.
Decompilers
Debugging
Using tools to step through code, examine variables and understand program flow.
Debuggers
Binary Analysis
Examining binary files to identify patterns, relationships & potential vulnerabilities.
Binary Analysis Tools
Malware Analysis
External Resources
Books
- "An Introduction To Reverse Engineering for Beginners" by Yurichev, Dennis
- The IDA Pro book by Chris Eagle
- The Ghidra book by Chris Eagle & Kara Nance
Videos
Websites