Skip to content
Search

Disassembler

lastmod 2024-02-29created 2017-01-138 edits

A disassembler is a computer program that translates machine language into assembly language. A disassembler is distinguished from a decompiler, which targets a high-level programming language rather than assembly language. Disassembly, the output of a disassembler, is sometimes formatted for human readability rather than to suit input to an assembler, and this is precisely the role of reverse engineering tools.

Assembly language source code usually allows constants and programmer comments. These are removed by the assembler in the process of translating to machine code. For this reason, disassembly is harder for humans to interpret than the original source code. Some disassemblers use the Symbolic Debugging information present in object files in the ELF file format. IDA Pro lets users apply their understanding to the disassembly process by allowing them to use mnemonic symbols for values or regions of code.

Disassembly is not an exact science. On CISC platforms, because of variable-length instructions or the presence of self-modifying code, a single program can have multiple valid disassemblies.

See also

Favorite site

author Zer0 sitemap