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, 2020, Volume 32, Issue 3, Pages 7–19
DOI: https://doi.org/10.15514/ISPRAS-2020-32(3)-1
(Mi tisp508)
 

Architecture of a machine code deductive verification system

I. V. Gladysheva, A. S. Kamkinbcad, A. M. Kotsynyakd, P. A. Putroda, A. V. Khoroshilovdabc

a National Research University Higher School of Economics
b Moscow Institute of Physics and Technology (State University)
c Lomonosov Moscow State University
d Ivannikov Institute for System Programming of the Russian Academy of Sciences
References:
Abstract: In recent years, ISP RAS has been developing a system for machine (binary) code deductive verification. The motivation is rather clear: modern compilers, such as GCC and Clang/LLVM, are not free of bugs; thereby, it is not superfluous (at least for safety- and security-critical components) to check the correctness of the generated code. The key feature of the suggested approach is the ability to reuse source-code-level formal specifications (pre- and postconditions, loop invariants, lemma functions, etc.) at the machine code level. The tool is highly automated: provided that the target instruction set is formalized, it disassembles the machine code, extracts its semantics, adapts the high-level specifications, and generates the verification conditions. The system utilizes a number of third-party components including a source code analyzer (Frama-C), a machine code analyzer (MicroTESK), and an SMT solver (CVC4). The modular design enables replacing one component with another when switching an input format and/or a verification engine. In this paper, we discuss the tool architecture, describe our implementation, and present a case study on verifying the memset C library function.
Keywords: formal methods, deductive verification, binary code analysis, equivalence checking, instruction set architecture, machine code, compiler testing.
Funding agency Grant number
Ministry of Science and Higher Education of the Russian Federation RFMEFI60719X0295
The research was carried out with funding from the Ministry of Science and Higher Education of the Russian Federation (the project unique identifier is RFMEFI60719X0295).
Document Type: Article
Language: Russian
Citation: I. V. Gladyshev, A. S. Kamkin, A. M. Kotsynyak, P. A. Putro, A. V. Khoroshilov, “Architecture of a machine code deductive verification system”, Proceedings of ISP RAS, 32:3 (2020), 7–19
Citation in format AMSBIB
\Bibitem{GlaKamKot20}
\by I.~V.~Gladyshev, A.~S.~Kamkin, A.~M.~Kotsynyak, P.~A.~Putro, A.~V.~Khoroshilov
\paper Architecture of a machine code deductive verification system
\jour Proceedings of ISP RAS
\yr 2020
\vol 32
\issue 3
\pages 7--19
\mathnet{http://mi.mathnet.ru/tisp508}
\crossref{https://doi.org/10.15514/ISPRAS-2020-32(3)-1}
Linking options:
  • https://www.mathnet.ru/eng/tisp508
  • https://www.mathnet.ru/eng/tisp/v32/i3/p7
  • 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
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2025