• DocumentCode
    3081345
  • Title

    Disassembly of executable code revisited

  • Author

    Schwarz, Benjamin ; Debray, Saumya ; Andrews, Gregory

  • Author_Institution
    Dept. of Comput. Sci., Arizona Univ., Tucson, AZ, USA
  • fYear
    2002
  • fDate
    2002
  • Firstpage
    45
  • Lastpage
    54
  • Abstract
    Machine code disassembly routines form a fundamental component of software systems that statically analyze or modify executable programs, e.g., reverse engineering systems, static binary translators, and link-time optimizers. The task of disassembly is complicated by indirect jumps and the presence of non-executable data - jump tables, alignment bytes, etc. - in the instruction stream. Existing disassembly algorithms are not always able to cope successfully with executable files containing such features, and they fail silently - i.e., produce incorrect disassemblies without any indication that the results they are producing are incorrect. In this paper we examine two commonly-used disassembly algorithms and illustrate their shortcomings. We propose a hybrid approach that performs better than these algorithms in the sense that it is able to detect situations where the disassembly may be incorrect and limit the extent of such disassembly errors. Experimental results indicate that the algorithm is quite effective: the amount of code flagged as incurring disassembly errors is usually quite small.
  • Keywords
    program compilers; reverse engineering; executable programs; instruction stream; link-time optimizers; machine code disassembly routines; produce incorrect disassemblies; reverse engineering systems; software systems; static binary translators; Assembly; Computer science; Information analysis; Joining processes; Libraries; Reverse engineering; Software systems;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Reverse Engineering, 2002. Proceedings. Ninth Working Conference on
  • ISSN
    1095-1350
  • Print_ISBN
    0-7695-1799-4
  • Type

    conf

  • DOI
    10.1109/WCRE.2002.1173063
  • Filename
    1173063