Automatic uninitialized value usage detection during full-system emulation

Developed method, which is described in this paper, is capable of automated detection of uninitialized values within the scope of full-system emulation. This method is of immediate interest for low-level software, such as BIOS or initial loader, which initializes hardware and loads the operating sys...

Full description

Bibliographic Details
Main Author: N. A. Belov
Format: Article
Language:English
Published: Ivannikov Institute for System Programming of the Russian Academy of Sciences 2018-10-01
Series:Труды Института системного программирования РАН
Subjects:
Online Access:https://ispranproceedings.elpub.ru/jour/article/view/167
id doaj-9e240b9a4cce430f93f0242af040f612
record_format Article
spelling doaj-9e240b9a4cce430f93f0242af040f6122020-11-25T01:15:40Zeng Ivannikov Institute for System Programming of the Russian Academy of SciencesТруды Института системного программирования РАН2079-81562220-64262018-10-01285112610.15514/ISPRAS-2016-28(5)-1167Automatic uninitialized value usage detection during full-system emulationN. A. Belov0Институт системного программирования РАН; Московский государственный университет имени М.В. ЛомоносоваDeveloped method, which is described in this paper, is capable of automated detection of uninitialized values within the scope of full-system emulation. This method is of immediate interest for low-level software, such as BIOS or initial loader, which initializes hardware and loads the operating system. Errors in this kind of software are the most dangerous and lead to system shutdown. This sort of software is difficult to test on real hardware, consequently emulators of different architectures are used for these tasks. In the context of this work a new method of using shadow memory for storing and tracking register states and guest system memory cells. Criteria for detection of uninitialized variables usage and error reporting were defined. For example, these situations fall under the criteria: uninitialized value is the address for loading and unloading values from and to the memory, conditional jump is performed based on uninitialized value or to an uninitialized memory chunk. Developed method was implemented and tested in the guest system of x86 architecture in full-system emulator QEMU. System consists of few instructions, which initialize a processor and transfers control to a user application. Testing was performed on three simple examples for each of the criteria for unitialized values detection. Developed method demonstrated correct results on all examples.https://ispranproceedings.elpub.ru/jour/article/view/167обнаружение неинициализированных значенийполносистемная эмуляцияинструментирование
collection DOAJ
language English
format Article
sources DOAJ
author N. A. Belov
spellingShingle N. A. Belov
Automatic uninitialized value usage detection during full-system emulation
Труды Института системного программирования РАН
обнаружение неинициализированных значений
полносистемная эмуляция
инструментирование
author_facet N. A. Belov
author_sort N. A. Belov
title Automatic uninitialized value usage detection during full-system emulation
title_short Automatic uninitialized value usage detection during full-system emulation
title_full Automatic uninitialized value usage detection during full-system emulation
title_fullStr Automatic uninitialized value usage detection during full-system emulation
title_full_unstemmed Automatic uninitialized value usage detection during full-system emulation
title_sort automatic uninitialized value usage detection during full-system emulation
publisher Ivannikov Institute for System Programming of the Russian Academy of Sciences
series Труды Института системного программирования РАН
issn 2079-8156
2220-6426
publishDate 2018-10-01
description Developed method, which is described in this paper, is capable of automated detection of uninitialized values within the scope of full-system emulation. This method is of immediate interest for low-level software, such as BIOS or initial loader, which initializes hardware and loads the operating system. Errors in this kind of software are the most dangerous and lead to system shutdown. This sort of software is difficult to test on real hardware, consequently emulators of different architectures are used for these tasks. In the context of this work a new method of using shadow memory for storing and tracking register states and guest system memory cells. Criteria for detection of uninitialized variables usage and error reporting were defined. For example, these situations fall under the criteria: uninitialized value is the address for loading and unloading values from and to the memory, conditional jump is performed based on uninitialized value or to an uninitialized memory chunk. Developed method was implemented and tested in the guest system of x86 architecture in full-system emulator QEMU. System consists of few instructions, which initialize a processor and transfers control to a user application. Testing was performed on three simple examples for each of the criteria for unitialized values detection. Developed method demonstrated correct results on all examples.
topic обнаружение неинициализированных значений
полносистемная эмуляция
инструментирование
url https://ispranproceedings.elpub.ru/jour/article/view/167
work_keys_str_mv AT nabelov automaticuninitializedvalueusagedetectionduringfullsystememulation
_version_ 1725151855051276288