User Tools

Site Tools


reverse_engineering

Reverse Engineering

Intro

Reverse Engineering is the process of recreating a program with no access to the original code. While not exclusively a technique used by hackers or in computer science, it can be used to obtain some extremely important information in cybersecurity. Reverse engineering can be used to find system vulnerabilities, fix bugs, and find data about malware to help develop software that will protect from it. Hackers use this process to find vulnerabilities in security that can be exploited.

Legality

Although there are no exclusive laws against the practice of reverse engineering, it is a widely debated legal and ethical issue. One factor that makes this complicated is Copyright laws. In general, software created by a company is its intellectual property. By just reverse engineering code, using any information learned from the process could be a copyright violation, even if one does not use the code. There are many grey areas in trying to prohibit the use of reverse engineering, as many aspects are necessary in other practices and banning it would not make sense.

Tools

Depending on the end goal, reverse engineering can be approached in multiple ways. Some of the most common tools used include the following:

  • Disassemblers- convert binary code into assembly code. Additionally, can aid in turning machine language into more readable and can extract strings, libraries, and functions.
  • Debuggers- allow the user to set breakpoints in code so the programmer can go through a program line by line. Debuggers can add to disassemblers by being able to view the stack, along with supporting CPU registers and hex dumping.
  • Hex Editor- also known as binary file editor, enables users to view and edit binaries, allowing one to manipulate this data that constructs a computer file.
reverse_engineering.txt · Last modified: 2021/03/28 21:29 by alec