n00b's corner

Reverse Engineering : An Introduction To This Engineer

Welcome Back Hackers and geeks, In this article you will be Knowing about Reverse Engineering 


Reverse engineering is also called back engineering, it is the processes of extracting knowledge or design information from anything artificial and reproducing it based on the extracted information.

Reverse engineering, the process of taking a software program’s binary code and recreating it so as to trace it back to the original source code, is being widely used in computer hardware and software to enhance product features or fix certain bugs.

The process normally involves disassembling something (a mechanical device, electronic component, computer program, or biological, chemical, or organic matter) and evaluating its components and workings in detail.

Whether it’s to rejuvenate a car engine or figuring a sentence, people can learn about many things simply by taking them apart and putting them back together again.

Thus in simple words reverse engineering is —breaking something down in order to understand it, assemble a copy or recover it



Reverse engineering is beneficial in crime avoidance, where suspected malware is reverse engineered to understand what it does, how to detect and remove it, and allow computers and devices to work together.

This also permits saved files on archaic systems to be used in newer systems.

By contrast, reverse engineering can also be used to “split” software and media to remove their copy protection.

Earlier reverse engineering is applied to hardware only but now it is also used for software, databases and for human DNA.

It is especially significant amid computer hardware and software.

Programs are written in a language; say C++ or Java, that’s logical by other programmers.

But to run on a computer, they have to be decoded by another program, called a compiler, into the ones and zeros of machine language.

Compiled code is inconceivable to most programmers, but there are ways to convert machine code back to a more human-friendly format, including a software tool called a decompiler.

A famous example of reverse engineering

appoint- San Jose-based Phoenix Technologies Ltd., which in the mid-1980s wanted to produce BIOS(a program stored in firmware that’s run when a PC starts up) that would be easygoing with the IBM PC’s reserve BIOS.

To protect against charges of having simply copied IBM’s BIOS, Phoenix reverse-engineered it using what’s called a “clean room,” approach.

A first team of engineers studied about the IBM or BIOS that was of 8KB code and described everything it did as completely as possible without using or referencing actual code.

Then Phoenix brought in a second team of engineers who had no prior knowledge of the IBM BIOS and had never seen its code.

Working only from the first team’s functional specifications, the second team wrote new BIOS that were operated particularly.

The resulting Phoenix BIOS was different from the IBM code, but for all intents and reasons as it was operated equally.

Using the clean-room approach, even if some sections of code did happen to be identical, there was no copyright violation.

Phoenix began selling its BIOS to companies that then used it to create the first IBM-compatible PCs.

Many companies, such as Cyrix Corp. and Advanced Micro Devices Inc., have successfully reverse engineered Intel Corp. microprocessors to make less-expensive Intel-compatible chips.

Since few software developers publish their own source code.

Precisely, an application programming interfaces (API) should make programs easy to work together, but professional says that most of the APIs are so poorly written that third-party software makers don’t have choice but to reverse-engineer the programs with which they want their software to work, to ensure compatibility.


Reverse engineering is used for many reasons:

  • as a learning tool
  • As a way to make new, friendly products that are cheaper than what is currently on the market for making software interoperate more efficiently or to bridge data between different operating systems or databases.

Furthermore, it is also used by businesses to bring obtainable physical geometry into digital product development, to make a digital 3D record of their own products or review competitors’ products.

It is used to examine, for example, how a product works, what it does, what components it consists of, guess costs, spot potential rights damage, etc.

Reverse Engineering Tools

Reverse engineering is the process of analyzing the software to determine its components and their relationships.

The process of reverse engineering is accomplished by making use of some tools that are categorized into debuggers or disassemblers, hex editors, monitoring and decompile tools:

Disassemblers – A disassembler is used to convert binary code into assembly code and also used to extract strings, imported and exported functions, libraries etc.

The disassemblers convert the machine language into a user-friendly format. There are different dissemblers that specialize in certain things.

Debuggers – This tool expands the functionality of a disassembler by supporting the CPU registers, the hex duping of the program, view of stack etc.

Using debuggers, the programmers can set breakpoints and edit the assembly code at run time.

Debuggers analyse the binary in a similar way as the disassemblers and allow the reverser to step through the code by running one line at a time to investigate the results.

Hex Editors – These editors allow the binary to be viewed in the editor and change it as per the requirements of the software.

There are different types of hex editors available that are used for different functions.

PE and Resource Viewer – The binary code is designed to run on a windows based machine and has a very specific data which tells how to set up and initialize a program.

All the programs that run on windows should have a portable executable that supports the DLLs the program needs to borrow from.

I Hop this Article Helps You

Happy Hacking!!!!

The following two tabs change content below.

Anuj Mishra

Admin, Founder & Chief Editor at HackeRoyale
Engineer. Blogger. Ethical hacker. Penetration Tester. Deep Webbie. Bug hunter. Security Analyst. Web Developer. Techie. Programmer. Foodie. Music Lover. Traveller. Enthusiast.

Comment Now !