> For the complete documentation index, see [llms.txt](https://share-fede.gitbook.io/project/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://share-fede.gitbook.io/project/reverse-engineering.md).

# REVERSE ENGINEERING

### :arrow\_backward: What is Reverse Engineering?

&#x20;     Reverse engineering is a process of disassembling a software package to understand its structure by analyzing its components, we can also duplicate the product by modifying the contents of the original package. This process helps you in understanding underlying program features and also if you know the essentials of software programming, a duplicate of the same can also be created and some applications can even disclose embedded private or confidential data.

### &#x20;:arrow\_backward:What can we get out of it?

&#x20;     There are many tools available online to accomplish this process like OllyDBG, IDA,Hex-workshop and many more, but we need  to have skill to digest the raw data and put it in an understandable way.

We can get information from this process as follows:

* Assembly code, strings, functions and also libraries used by the application
* Monitoring application at run-time by using breakpoints and also we can get stack dump and analyze its contents by providing different inputs
* Editing binary files by using binary editors.
* Exploring application and its resources and modifying its contents to make changes.
* we can extract sensitive information which is hard coded in the application during its development and can manipulate it further

### :sos: Tools that can HELP!

&#x20;     Reverse Engineering is all about tools and PATIENCE!!!, Tools we can look are:

#### **System Monitors**&#x20;

&#x20;     These tools will help you to get view of application from the  operating systems perspective as they can sniff, monitor and provide statistics of the application. Some tools are:-

* CFF Explorer
* Win Hex
* PE Explorer
* SysInternals suite from Microsoft

#### **Disassembler**&#x20;

A Powerful tool which can generate complete or part of assembly code for the given application. This process is processor/architecture specific. Some tools are:

* IDA pro (You can use Freeware IDA as it is available)
* OllyDBG
* PE Explorer
* Binary Ninja
* GDB
* There are some online dis assemblers too
  * <https://retdec.com/>
  * <https://onlinedisassembler.com/>
