35 lines
1.6 KiB
Markdown
35 lines
1.6 KiB
Markdown
# Reverse Engineering
|
|
|
|
Reverse engineering is the process of extracting information or design knowledge from
|
|
anything that is man-made. The mechanisms within the field of reverse engineering are
|
|
used in many applications including understanding malware, bridging software
|
|
interoperability, and determining the strength of application code. <br>
|
|
|
|
Knowledge of the usage of a disassembler is helpful to solve reverse engineering tasks. A
|
|
disassembler is a tool that interprets a compiled program and produces the
|
|
corresponding machine code that can be used for analysis. There are several
|
|
disassemblers available including IDA and Ghidra (https://www.ghidra-sre.org). <br>
|
|
|
|
A free evaluation version of IDA can be found at the following link: <br>
|
|
https://www.hex-rays.com/products/ida/support/download.shtml
|
|
|
|
Potential skills that may be necessary to solve reverse engineering tasks.
|
|
- Basic understanding of how binary data is read and structured
|
|
- How to programmatically read in binary data
|
|
- How to handle low-level reads and writes
|
|
- How to interpret raw data using a hexadecimal viewer
|
|
- Understanding how the stack and heap is used with applications
|
|
|
|
Below are potential examples of reverse engineering problems:
|
|
- Password discovery
|
|
- Breaking through obfuscation
|
|
- Discovering DLL Injection
|
|
- Discovering malware
|
|
|
|
Helpful links for information on the reverse engineering process
|
|
- https://securityaffairs.co/wordpress/46606/hacking/software-reverse-
|
|
|
|
engineering-process-basics.html
|
|
- https://www.geeksforgeeks.org/software-engineering-reverse-engineering/
|
|
- https://medium.com/@vignesh4303/reverse-engineering-resources-beginners-to-intermediate-guide-links-f64c207505ed
|