Preview

Труды Института системного программирования РАН

Расширенный поиск

Автоматическое обнаружение использования неинициализированных значений в рамках полносистемной эмуляции

https://doi.org/10.15514/ISPRAS-2016-28(5)-1

Аннотация

Описанный в данной статье метод позволяет автоматически обнаруживать использование неинициализированных значений в рамках полносистемной эмуляции. Это актуально для такого низкоуровневого программного обеспечения, как, например, BIOS или начальный загрузчик, выполняющие функции инициализации оборудования и загрузки операционной системы. Ошибки в данных программных системах наиболее опасны и приводят к неработоспособности всей системы целиком. Программное обеспечение подобного рода затруднительно тестировать на реальной аппаратуре, поэтому для этих целей используются эмуляторы различных архитектур. В рамках работы был разработан метод использования теневой памяти (памяти, содержащей информацию об исходной памяти) для хранения и отслеживания состояния регистров и ячеек гостевой памяти. Также были сформулированы критерии обнаружения использования неинициализированных значений и уведомления об ошибках. Разработанный метод был реализован и протестирован на гостевой системе архитектуры x86 в полносистемном эмуляторе QEMU.

Об авторе

Н. А. Белов
Институт системного программирования РАН; Московский государственный университет имени М.В. Ломоносова
Россия


Список литературы

1. Smith J., Nair R. Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2005, 656 p.

2. QEMU Emulator User Documentation (online). Доступно по ссылке: http://qemu.weilnetz.de/qemu-doc.html, 13.11.2014.

3. Android Memory Checker Component (online). Доступно по ссылке: https://github.com/android/platform_external_qemu/blob/791e96ffc61d52eae80f94129a93ff67474f3ff9/docs/ANDROID-MEMCHECK.TXT, 3.12.2014.

4. Memcheck: a memory error detector (online). Доступно по ссылке: http://valgrind.org/docs/manual/mc-manual.html, 16.11.2014.

5. Bellard F. QEMU, a Fast and Portable Dynamic Translator. Proceedings of the Annual Conference on USENIX Annual Technical Conference, 2005, p. 41.

6. Seward J., Nethercote N. Using Valgrind to Detect Undefined Value Errors with Bit-precision. Proceedings of the Annual Conference on USENIX Annual Technical Conference, 2005, p. 2.


Рецензия

Для цитирования:


Белов Н.А. Автоматическое обнаружение использования неинициализированных значений в рамках полносистемной эмуляции. Труды Института системного программирования РАН. 2016;28(5):11-26. https://doi.org/10.15514/ISPRAS-2016-28(5)-1

For citation:


Belov N.A. Automatic uninitialized value usage detection during full-system emulation. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2016;28(5):11-26. (In Russ.) https://doi.org/10.15514/ISPRAS-2016-28(5)-1



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)