FACTOID # 3: South Carolina has the highest rate of violent crimes and aggravated assaults per capita among US states.
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 


FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:



(* = Graphable)



Encyclopedia > Disassembler

A disassembler is a computer program that translates machine language into assembly language — the inverse operation to that of an assembler. A disassembler differs from a decompiler, which targets a high-level language rather than an assembly language. Disassembly, the output of a disassembler, is often formatted for human-readability rather than suitability for input to an assembler, making it principally a reverse-engineering tool. A computer program is a collection of instructions that describe a task, or set of tasks, to be carried out by a computer. ... A system of codes directly understandable by a computers CPU is termed this CPUs native or machine language. ... See the terminology section, below, regarding inconsistent use of the terms assembly and assembler. ... See the terminology section, below, regarding inconsistent use of the terms assembly and assembler. ... A decompiler is the name given to a computer program that performs the reverse operation to that of a compiler. ... A high-level programming language is a programming language that is more user-friendly, to some extent platform-independent, and abstract from low-level computer processor operations such as memory accesses. ... In computer programming, the disassembly is the result when machine code is translated back into assembly language. ... Reverse engineering (RE) is the process of taking something (a device, an electrical component, a software program, etc. ...

Assembly language source code generally permits the use of symbolic constants and programmer comments. 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 can infer useful names and comments,[citation needed] and many can make use of the symbolic debugging information present in object files such as ELF. Some disassemblers, such as the Interactive Disassembler, actually allow 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. Source code (commonly just source or code) is any series of statements written in some human-readable computer programming language. ... In computer science and mathematics, a variable (IPA pronunciation: ) (sometimes called a pronumeral) is a symbolic representation denoting a quantity or expression. ... An illustration of Java source code with prologue comments indicated in red and inline comments in green. ... Machine code or machine language is a system of instructions and data directly understandable by a computers central processing unit. ... The Executable and Linkable Format (ELF) is a common standard in computing for executables and object code. ... The Interactive Disassembler, more commonly known as simply IDA, is a commercial disassembler widely used for reverse engineering. ...

Disassembly is not an exact science: On CISC platforms with variable-width instructions, or in the presence of self-modifying code, it is possible for a single program to have two or more reasonable disassemblies. Determining which instructions would actually be encountered during a run of the program reduces to the proven-unsolvable halting problem. A Complex Instruction Set Computer (CISC) is an instruction set architecture (ISA) in which each instruction can indicate several low-level operations, such as a load from memory, an arithmetic operation, and a memory store, all in a single instruction. ... In computer science, self-modifying code is code that alters its own instructions, whether or not it is on purpose, while it is executing. ... In computability theory and computational complexity theory, a reduction is a transformation of one problem into another problem. ... In computability theory the halting problem is a decision problem which can be informally stated as follows: Given a description of a program and a finite input, decide whether the program finishes running or will run forever, given that input. ...


Examples of disassemblers

  • Any interactive debugger will include some way of viewing the disassembly of the program being debugged. Often, the same disassembly tool will be packaged as a standalone disassembler distributed along with the debugger. For example, objdump, part of GNU Binutils, is related to the interactive debugger gdb.
  • ChARMeD Disassembler is a disassembler and assembler for CPUs using the ARM instruction set
  • IDA
  • W32DASM

A debugger is a computer program that is used to test and debug other programs. ... objdump is a program for displaying various information about object files. ... The GNU Binutils is a collection of programming tools developed by the Free Software Foundation for the manipulation of object code in various object file formats. ... The GNU Debugger, usually called just GDB, is the standard debugger for the GNU software system. ... ChARMeD Disassembler The ChARMeD software (written by Carolos Foscolos) is a freeware Windows Mobile, Pocket PC and Windows CE executable disassembler and assembler for CPUs using the ARM instruction set. ... The Interactive Disassembler, more commonly known as simply IDA, is a commercial disassembler widely used for reverse engineering. ...

See also

A control flow graph (CFG) is a representation, using graph notation, of all paths that might be traversed through a program during its execution. ... Data-flow analysis is a technique for gathering information about the possible set of values calculated at various points in a computer program. ... A decompiler is the name given to a computer program that performs the reverse operation to that of a compiler. ...


  • L. Vinciguerra, L. Wills, N. Kejriwal, P. Martino, and R. Vinciguerra, "An Experimentation Framework for Evaluating Disassembly and Decompilation Tools for C++ and Java", Proc. of 10th Working Conference on Reverse Engineering (WCRE) 2003.
  • B. Schwarz, S. Debray, and G. Andrews, "Disassembly of Executable Code Revisited", Proc. of 9th Working Conference on Reverse Engineering (WCRE), pp. 45-54, 2002.

External links

Look up disassembler in Wiktionary, the free dictionary.
  • transformation Wiki on disassembly
  • OpenRCE: Various Disassembler Resources and Plug-ins
  • Disassemblers at the Open Directory Project

  Results from FactBites:
IDA Pro Disassembler - multi-processor, windows hosted disassembler and debugger (152 words)
IDA Pro is a Windows or Linux hosted multi-processor disassembler and debugger that offers so many features it is hard to describe them all.
Just grab an evaluation version if you want a test drive.
Our user board is a valuable source of hints and tips for the IDA Pro Disassembler.
PEExplorer Windows Disassembler for Win 32-bit program EXE, DLL, OCX code analysis and Intel x86 instruction sets (1482 words)
It disassembles code, which is the task of converting machine code into assembler, but it does not generate C or C++ code from the disassembled output.
The fundamental challenge in disassembling compiled files is to correctly interpret the examined data.
Enabling this option directs the disassembler to attempt to detect the contents of these indirectly addressed blocks and to determine whether they contain code or a known type of data.
  More results at FactBites »



Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m