Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/882506.885138guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Disassembly of Executable Code Revisited

Published: 29 October 2002 Publication History

Abstract

Machine code disassembly routines form a fundamentalcomponent of software systems that statically analyze ormodify executable programs, e.g., reverse engineering systems,static binary translators, and link-time optimizers.The task of disassembly is complicated by indirect jumpsand the presence of non-executable data--jump tables,alignment bytes, etc.--in the instruction stream. Existingdisassembly algorithms are not always able to copesuccessfully with executable files containing such features,and they fail silently--i.e., produce incorrect disassemblieswithout any indication that the results they are producingare incorrect. In this paper we examine two commonly-useddisassembly algorithms and illustrate their shortcomings.We propose a hybrid approach that performs betterthan these algorithms in the sense that it is able to detect situationswhere the disassembly may be incorrect and limitthe extent of such disassembly errors. Experimental resultsindicate that the algorithm is quite effective: the amountof code flagged as incurring disassembly errors is usuallyquite small.

Cited By

View all
  • (2023)Accurate Disassembly of Complex Binaries Without Use of Compiler MetadataProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 410.1145/3623278.3624766(1-18)Online publication date: 25-Mar-2023
  • (2020)On the Generation of Disassembly Ground Truth and the Evaluation of DisassemblersProceedings of the 2020 ACM Workshop on Forming an Ecosystem Around Software Transformation10.1145/3411502.3418429(9-14)Online publication date: 13-Nov-2020
  • (2020)Fast bit-vector satisfiabilityProceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3395363.3397378(38-50)Online publication date: 18-Jul-2020
  • Show More Cited By

Index Terms

  1. Disassembly of Executable Code Revisited
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    WCRE '02: Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
    October 2002

    Publisher

    IEEE Computer Society

    United States

    Publication History

    Published: 29 October 2002

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 01 Sep 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Accurate Disassembly of Complex Binaries Without Use of Compiler MetadataProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 410.1145/3623278.3624766(1-18)Online publication date: 25-Mar-2023
    • (2020)On the Generation of Disassembly Ground Truth and the Evaluation of DisassemblersProceedings of the 2020 ACM Workshop on Forming an Ecosystem Around Software Transformation10.1145/3411502.3418429(9-14)Online publication date: 13-Nov-2020
    • (2020)Fast bit-vector satisfiabilityProceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3395363.3397378(38-50)Online publication date: 18-Jul-2020
    • (2019)Efficient and Precise Dynamic Construction of Control Flow GraphsProceedings of the XXIII Brazilian Symposium on Programming Languages10.1145/3355378.3355383(19-26)Online publication date: 23-Sep-2019
    • (2019)From Hack to Elaborate Technique—A Survey on Binary RewritingACM Computing Surveys10.1145/331641552:3(1-37)Online publication date: 18-Jun-2019
    • (2019)Reverse engineering Java Card and vulnerability exploitationInternational Journal of Information Security10.1007/s10207-018-0401-918:1(85-100)Online publication date: 1-Feb-2019
    • (2017)PistonProceedings of the 33rd Annual Computer Security Applications Conference10.1145/3134600.3134611(141-153)Online publication date: 4-Dec-2017
    • (2017)On Static Binary Translation of ARM/Thumb Mixed ISA BinariesACM Transactions on Embedded Computing Systems10.1145/299645816:3(1-25)Online publication date: 28-Mar-2017
    • (2017)Reverse engineering a Java Card memory management algorithmComputers and Security10.1016/j.cose.2017.01.00566:C(97-114)Online publication date: 1-May-2017
    • (2017)DroidNativeComputers and Security10.1016/j.cose.2016.11.01165:C(230-246)Online publication date: 1-Mar-2017
    • Show More Cited By

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media