Loading [MathJax]/jax/output/SVG/config.js
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, 2016, Volume 28, Issue 5, Pages 135–144
DOI: https://doi.org/10.15514/ISPRAS-2016-28(5)-8
(Mi tisp72)
 

This article is cited in 2 scientific papers (total in 2 papers)

Buffer overrun detection method in binary code

V. V. Kaushan

Institute for System Programming of the Russian Academy of Sciences
Full-text PDF (763 kB) Citations (2)
References:
Abstract: Buffer overflows are one of the most common and dangerous software errors. Exploitation of such errors can lead to an arbitrary code execution and system disclosure. This paper considers a method for detecting memory violations. The method is based on combined (static-dynamic) analysis of binary code. Analysis is based on symbolic interpretation of machine instructions executed during a single program run. Proposed method also provides abstraction from buffer sizes and can reveal sizes that cause buffer overflow errors. Analysis can be applied to program binaries and doesn't require a source code. Two techniques are proposed to improve method precision: cycle analysis and code coverage increase. Cycle analysis is one of the cumbersome problems in dynamic analysis. Separate cycle instruction analysis leads to an excess of constraints over input data that causes potential false negatives. The proposed technique is able to analyze cycles entirely and abstract from number of cycle iterations. One of the drawbacks of a single run analysis is an insufficient code coverage which prevents some errors from discovery. The technique proposed to increase code coverage is based on a dynamic symbolic execution. Some minimal path set from discovered code paths is selected and used to achieve better code coverage than from a single run. Inputs corresponding to each path from selected set are used to analyze several program runs. Proposed techniques were implemented and used to discover both known and non-disclosed bugs.
Keywords: bug finding, binary code, dynamic analysis, symbolic execution.
Funding agency Grant number
Russian Foundation for Basic Research 16-29-09632
The paper is supported by RFBR grant 16-29-09632
Bibliographic databases:
Document Type: Article
Language: Russian
Citation: V. V. Kaushan, “Buffer overrun detection method in binary code”, Proceedings of ISP RAS, 28:5 (2016), 135–144
Citation in format AMSBIB
\Bibitem{Kau16}
\by V.~V.~Kaushan
\paper Buffer overrun detection method in binary code
\jour Proceedings of ISP RAS
\yr 2016
\vol 28
\issue 5
\pages 135--144
\mathnet{http://mi.mathnet.ru/tisp72}
\crossref{https://doi.org/10.15514/ISPRAS-2016-28(5)-8}
\elib{https://elibrary.ru/item.asp?id=27679155}
Linking options:
  • https://www.mathnet.ru/eng/tisp72
  • https://www.mathnet.ru/eng/tisp/v28/i5/p135
  • This publication is cited in the following 2 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:184
    Full-text PDF :75
    References:41
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2025