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...
Main Author: | |
---|---|
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 |