diff --git a/Skills/Reverse_Engineering/README.md b/Skills/Reverse_Engineering/README.md index 5e6bc85..9c1a57c 100644 --- a/Skills/Reverse_Engineering/README.md +++ b/Skills/Reverse_Engineering/README.md @@ -1 +1,34 @@ -# Reverse Engineering \ No newline at end of file +# 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.
+ +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).
+ +A free evaluation version of IDA can be found at the following link:
+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