Google
 
   
Login
Username:

Password:


Lost Password?

Register now!
Search
Main Menu
top books
Polls
What do you think about php-deluxe.net?
Excellent!
Cool
Hmm..not bad
What the hell is this?
encyclopedia
recommendation
compare webbrowser
Freenet DSL
Who's Online
10 user(s) are online (7 user(s) are browsing encyclopedia)

Members: 0
Guests: 10

more...
browser tip
Unix Befehle
manual of unix befehle
recommendation!
Sponsored
partner

Disassembler

A disassembler is a computer program which translates machine language into assembly language, performing the inverse operation to that of an Assembler. A dissasembler differs from a Decompiler, which targets a high level language rather than assembly language. Disassembly, the output of a disassembler, is often formatted for human-readability rather than suitability for input to an assembler, making it principly a reverse engineering tool.

Assembly language source code generally permits the use of Variable#Constants and programmer Comments. These are usually removed from the final machine code by the assembler. If so, a disassembler operating on the machine code would produce disassembly lacking these constants and comments; the dissassembled output becomes more difficult for a human to interpret than the original annotated source code. Some disassemblers can infer useful names and comments; however, interactive disassemblers are able to successfully disassemble more programs than fully-automated disassemblers because human insight applied to the disassembly process parallels human creativity in the code writing process.

There can never be a completely automated disassembly tool which always outputs correct source code because the disassembly process Reduction (complexity) to the impossible-to-solve halting problem.

=Disassemblers=

  • Most Debuggers include a disassembler, e.g. objdump, part of GNU Binutils.
  • RosASM - 32 bit Assembler (The Bottom Up Assembler which is free and GPLed). Although this tool is basically an Assembler, it also contains a very powerful (though automated) disassembler that is able to rebuild a huge variety of small applications. Support for disassembly of larger applications is under development.
  • Interactive Disassembler - A commercial, interactive disassembler.
  • [http://www.v-com.com/product/Sourcer_Products_Home.html Sourcer] - A disassembler based on definition files.
  • [http://bastard.sourceforge.net The Bastard Disassembler] - Linux disassembler. Doesn t have a usable front-end yet, but it does have an interactive command-line mode.
  • [http://bastard.sourceforge.net/libdisasm.html x86 Disassembler Library] - The library that Bastard is based on.
  • [http://www.dms.at/kopi/ Kopi Project]
  • [http://pvdasm.reverse-engineering.net/ PVDasm] - Proview (a.k.a: PVDasm) is: Interactive, Multi-Cpu (x86/Chip8) Disassembler.
  • [http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/javap.html The Java Class File Disassembler]
  • [http://hte.sourceforge.net HT Editor] - Binary editor for Linux and Windows console.
  • =References=

  • 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=

  • [http://www.program-transformation.org/Transform/DisAssembly transformation Wiki on disassembly]
  • [http://www.kip.uni-heidelberg.de/atlas/DATA/hdmc/source/class_disassembler.html Disassembler Class Reference]
  • [http://citeseer.ist.psu.edu/cisq=disassembler Citations from CiteSeer]