A vital tool for preservation of digital media
Reverse engineering in the context of computer science is the process of extracting information about how software or hardware works
so that it can be recreated, modified, or attacked.
Reverse engineering has several applications including emulating obscure hardware in software, preserving media, and defending against
malware.
In 1984 Phoenix Technologies (PT) cloned IBM's PC bios in what is likely the most well known case of reverse engineering.
IBM sued PT in response and lost which made the case of the reverse engineering of computer software to be legal in the United States.
In 1999 Bleem! released a Sony PlayStation emulator which allowed PlayStation games to be played on personal computers.
This was achieved through reverse engineering the PlayStation's bios and hardware to create a virtual machine.
In response Sony sued Bleem! and lost (multiple times), this case is often cited in discussions of legality around game console emulation.
Clean room reverse engineering is a process to reverse engineer software in a manner that is not legally grey, unlike other methods. The method was deemed legal in the United States during the 1984 lawsuit between IBM and Phoenix Technologies. The process requires two teams, Team A inspects the original product to see how it works and then writes a specification, the specification is then passed to Team B who will use it to create the clone product. Crucially Team A and Team B must have no direct communication to ensure that Team B can not be accused of directly stealing code.
Ghidra is a free and open source software reverse engineering tool created by the United States' National Security Agency. The NSA made Ghidra open source in 2019 to help malware researchers understand how malware works.
IDA Pro is a premium closed source disassembler and debugger for reverse engineering software. Until the NSA released Ghidra it was generally considered the best tool for reverse engineering malware. Due to the high licensing fee it was prohibitively expensive for hobbyists.
Videogames are an important part of culture that generates more money that the movie industry, despite this the industry is terrible at preservation. Imagine if classic Kubrick movies were to become unwatchable to future generations because the hardware needed to watch them no longer existed. That is what is happening in the gaming industry. As consoles age it becomes impossible to play those games on other systems unless the developer keeps the source code around to port it to newer hardware. Unfortunately, once games are shipped the source code is often discarded, as was the case with Diablo 2 and Saints Row 2. If it were not for reverse engineers creating emulators these important bits of culture would be lost to future generations.
The McDonalds ice cream machine is notoriously always broken, not because of legitimate technical difficulties but because McDonalds and the company it outsourced the machines
to realised that they can get more money from franchisees if the machines break down often and only the OEM can repair them.
This is unfair and monopolistic so Jeremy O'Sullivan created a device that would connect to the machine and explain what is wrong with them in clear English rather than cryptic
error codes. Thanks to this man franchisees can fix their machines for a fraction of the cost and consumers can enjoy their McFlurrys. This was only possible because he was able to
reverse engineer the machine's software.
In a similar story Rashiq Zahid, a GitHub employee reverse engineered McDonalds's internal API used for online orders so that he was able to track how many of McDonalds'
ice cream machines were broken at any one time.
Security researchers regularly use reverse engineering tools to understand how new malware works. Matt Suiche was able to stop the WannaCry ransomware by registering a kill switch domain name which he discovered after using reverse engineering tools to understand how the software works.