Decompilation and Architecture

Stephanie Domas, Christopher Domas · 2024

This chapter explores the steps necessary to get started reverse engineering an application. Decompilation is crucial to transforming an application from machine code to something that can be read and understood by humans. For many programming languages, full decompilation is impossible. These languages build code directly to machine code, and some information, such as variable names, is lost in the process. JIT compilation also makes reverse engineering these applications much easier. Unlike true machine code programs, JIT-compiled programs can often be converted to source code. All high-level languages are eventually converted into a series of bits called machine code. Assembly code is designed to be a human-readable version of machine code. A microarchitecture describes how a particular ISA is implemented on a processor. Reduced instruction set computing architectures define a small number of simpler instructions.

Read the paper · More papers on PaperTik