Abstract

In this paper memory violation detection method is considered. This method applied to program binaries, without requiring debug information. It allows to find such memory violations as out-of-bound read or writing in some buffer. The technique is based on dynamic analysis and symbolic execution. We present a tool implemented the method. We used this tool to find 11 bugs in both Linux and Windows programs, 7 of which were undocumented at the time this paper was written.

Highlights

  • In this paper memory violation detection method is considered. This method is applied to program binaries without requiring debug information

  • The technique is based on dynamic analysis and symbolic execution

  • Instead of representing input buffer as a symbolic variable of fixed size, we track only the prefix of buffer symbolically and a special symbolic variable that represents the length of input buffer

Read more

Summary

Введение

Важными практическими задачами в компьютерной безопасности является поиск ошибок в программном обеспечении (ПО). Обеспечение надёжности, конфиденциальности и доступности работающего программного обеспечения является актуальной задачей. Нарушать работу программного обеспечения могут различного рода ошибки. Зачастую нарушение доступа к памяти происходит из-за неправильного копирования данных, выделения и освобождения памяти. Для заданного набора входных данных фиксированного размера (далее эти входные данные обозначаются как префикс), подбираются значения префикса и значение длины этого префикса, при которых происходит нарушение работы с памятью. Предлагается особая обработка некоторых функций: ввод пользовательских данных, строковые функции, функции выделения и освобождения памяти. В третьем разделе описана общая схема работы программного инструмента, реализующего данный метод. В четвертом разделе рассказывается о деталях реализации этого инструмента. В пятом разделе представлены результаты применения данного метода. В последнем, седьмом, разделе анализируются результаты и обсуждаются дальнейшие направления исследований

Моделирование работы с буферами памяти в бинарном коде
Используемые методы анализа
Параметры алгоритма
Трансляция инструкций
Завершение работы алгоритма
Разметка памяти
Разметка вызовов в Linux
Результаты практического применения
Обзор близких работ
Заключение
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.