Proceedings of the Institute for System Programming of the RAS
RUS  ENG    JOURNALS   PEOPLE   ORGANISATIONS   CONFERENCES   SEMINARS   VIDEO LIBRARY   PACKAGE AMSBIB  
General information
Latest issue
Archive

Search papers
Search references

RSS
Latest issue
Current issues
Archive issues
What is RSS



Proceedings of ISP RAS:
Year:
Volume:
Issue:
Page:
Find






Personal entry:
Login:
Password:
Save password
Enter
Forgotten password?
Register


Proceedings of the Institute for System Programming of the RAS, 2019, Volume 31, Issue 6, Pages 65–88
DOI: https://doi.org/10.15514/ISPRAS-2019-31(6)-4
(Mi tisp470)
 

This article is cited in 1 scientific paper (total in 1 paper)

Decoding of machine instructions for abstract interpretation of binary code

M. A. Solovevab, M. G. Bakulinb, S. S. Makarova, D. V. Manushina, V. A. Padaryanab

a Lomonosov Moscow State University
b Ivannikov Institute for System Programming of the Russian Academy of Sciences
Full-text PDF (616 kB) Citations (1)
References:
Abstract: Not only developers require tools that work with binary code: it is impossible to achieve sufficient security in contemporary software without inspecting its properties at this level. A key component of binary code analysis toolset is the instruction decoder. Different instruction set architectures give rise to decoders that are differently structured, the decoding results are incompatible, and maintenance is hindered because of the ubiquitous practice of implementing decoders as cascades of conditional operators. Further binary code analysis (control and data flows, symbolic interpretation, etc.) cannot easily be ported from one target architecture to another because of limitations and peculiarities of decoder implementations. In this paper, we propose an approach to decoding machine instructions that is based on external specifications. The main distinction is an original way of representing the decoder instruction universally, i.e. in a way that does not differ from one architecture to another. The decoding process is handled by an abstract stack machine we have developed. Despite the inevitable overhead stemming from the approach's universality, an implementation prototype displays only 1.5-2.5 times slowdown compared to traditional decoders; the measurements include time required to parse the specification and build the required data structures. The proposed approach to organizing decoding would allow, in the long run, to establish a unified stack of binary code analysis tools that would be applicable to different instruction set architectures. The paper further discusses questions of translating the decoded instructions into a machine-neutral internal representation for analyzing their operational semantics and carrying out abstract interpretation. We give examples of practically useful interpretations: the concrete interpretation and a “directing” interpretation that allows to tie the idea of abstract interpretation with the problem of deeper automatic analysis of individual paths in a program.
Keywords: abstract interpretation, binary code analysis, dynamic analysis, compiler technologies, software reverse engineering, static analysis, symbolic execution.
Funding agency Grant number
Russian Foundation for Basic Research 18-07-01256
This work was supported by RFBR grant no. 18-07-01256.
Document Type: Article
Language: Russian
Citation: M. A. Solovev, M. G. Bakulin, S. S. Makarov, D. V. Manushin, V. A. Padaryan, “Decoding of machine instructions for abstract interpretation of binary code”, Proceedings of ISP RAS, 31:6 (2019), 65–88
Citation in format AMSBIB
\Bibitem{SolBakMak19}
\by M.~A.~Solovev, M.~G.~Bakulin, S.~S.~Makarov, D.~V.~Manushin, V.~A.~Padaryan
\paper Decoding of machine instructions for abstract interpretation of binary code
\jour Proceedings of ISP RAS
\yr 2019
\vol 31
\issue 6
\pages 65--88
\mathnet{http://mi.mathnet.ru/tisp470}
\crossref{https://doi.org/10.15514/ISPRAS-2019-31(6)-4}
Linking options:
  • https://www.mathnet.ru/eng/tisp470
  • https://www.mathnet.ru/eng/tisp/v31/i6/p65
  • This publication is cited in the following 1 articles:
    Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Proceedings of the Institute for System Programming of the RAS
    Statistics & downloads:
    Abstract page:105
    Full-text PDF :115
    References:16
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024