What is Reverse Engineering?

Portrait photo of Andreas Pehnack

Andreas Pehnack

If you are someone who likes looking behind the scenes you probably did reverse engineer things already when you were a child. Always if you try to find out how things work - be it a radio, a computer program or a car, you apply reverse engineering.

There are several definitions and explanations available, Wikipedia has an own article on the topic. Originally the term was used in mechanical engineering but Elliot J. Chikofsky and James H. Cross II applied it to software engineering.

While the license terms of software products often do not allow to analyze the binaries you find many cases where reverse engineering is not only legal but also fun and useful.

There are several specialized tools available that support you in understanding binary files, both executable and data. One of these tools on macOS is Hopper disassembler that provides deep insight to programs even if the source code is not available.

Apart from executable files there are thousands of different file formats out there which mostly can only be read by the software that produced them. Synalyze It! and Hexinator were developed mainly to support the process of reverse engineering of binary files and give easy access to the contents once the format is described in a "grammar".

Link list: