30 lines
1.7 KiB
Markdown
30 lines
1.7 KiB
Markdown
# Reverse Engineering
|
|
[BACK TO UACTF](/UACTF)<br>
|
|
|
|
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 <br>
|
|
|
|
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
|
|
|
|
[BACK TO UACTF](/UACTF)<br> |