Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Disassembler
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Computer program to translate machine language into assembly language}} {{More footnotes|date=December 2009}} A '''disassembler''' is a [[computer program]] that [[translator (computing)|translate]]s [[machine language]] into [[assembly language]]βthe inverse operation to that of an [[Assembly language#Assembler|assembler]]. The output of disassembly is typically formatted for human-readability rather than for input to an assembler, making disassemblers primarily a [[reverse engineering|reverse-engineering]] tool. Common uses include analyzing the output of [[high-level language|high-level programming language]] [[compiler]]s and their optimizations, recovering [[source code]] when the original is lost, performing [[malware analysis]], modifying software (such as binary patching), and [[software cracking]]. A disassembler differs from a [[decompiler]], which targets a [[high-level language]] rather than an assembly language. Assembly language [[source code]] generally permits the use of [[constant (programming)|constant]]s and programmer [[comment (computer programming)|comment]]s. These are usually removed from the assembled [[machine code]] by the assembler. If so, a disassembler operating on the machine code would produce disassembly lacking these constants and comments; the disassembled output becomes more difficult for a human to interpret than the original annotated source code. Some disassemblers provide a built-in code commenting feature where the generated output is enriched with comments regarding called API functions or parameters of called functions. Some disassemblers make use of the [[symbolic debugging]] information present in object files such as [[Executable and Linking Format|ELF]]. For example, [[Interactive Disassembler|IDA]] allows the human user to make up mnemonic symbols for values or regions of code in an interactive session: human insight applied to the disassembly process often parallels human creativity in the code writing process.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)