Architecture- and OS-independent binary-level dynamic test generation

0Citations
Citations of this article
27Readers
Mendeley users who have this article in their library.

This article is free to access.

Abstract

Dynamic test generation approach consists of executing a program while gathering symbolic constraints on inputs from predicates encountered in branch statements, and of using a constraint solver to infer new program inputs from previous constraints in order to steer next executions towards new program paths. Variants of this technique have recently been adopted in finding security vulnerabilities in binary level software. However, such existing approaches and tools are not retargetable: on the one hand, they can only find vulnerabilities in the binaries for a specific ISA; on the other hand, they can only find vulnerabilities over a specific OS because the execution trace is totally OS-dependently recorded in these tools. This paper presents a new dynamic test generation technique and a tool, ReTBLDTG, short for ReTargetable Binary-Level Dynamic Test Generation, that implements this technique. Unlike other such techniques, ReTBLDTG can deal with binaries for any ISAs over any OSes. ReTBLDTG is based on the whole system virtual machine that provides OS-independent and fast concrete execution of the target program. And which thread the executing instruction belongs to is OS-independently identified by analyzing the registers' value and hardware events over the virtual machine. Thus, the execution trace is recorded, without knowing the internal structure of the guest OS. At the same time, ReTBLDTG defines a Meta Instruction Set Architecture (MetaISA); ReTBLDTG maps the execution information, which is collected during the binary source code execution, to MetaISA; and symbolic execution, constraint collection and constraint solver operates on MetaISA, thus making these tasks ISA-independent. We have implemented our ReTBLDTG, retargeted it to 32-bit x86, PowerPC and Sparc ISAs, and used it to automatically find the six known bugs in the six benchmarks over Linux and Windows. Our results indicate that our ReTBLDTG can be easily retargeted to any ISA with only a few overheads; and ReTBLDTG can effectively find bugs located deep within large applications over any OS. © 2009 Springer-Verlag.

References Powered by Scopus

EXE: Automatically generating inputs of death

598Citations
N/AReaders
Get full text

Compiler Transformations for High-Performance Computing

536Citations
N/AReaders
Get full text

Framework for instruction-level tracing and analysis of program executions

170Citations
N/AReaders
Get full text

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Cite

CITATION STYLE

APA

Li, G., Lu, K., Zhang, Y., Lu, X., & Zhang, W. (2009). Architecture- and OS-independent binary-level dynamic test generation. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 5927 LNCS, pp. 198–210). https://doi.org/10.1007/978-3-642-11145-7_16

Readers' Seniority

Tooltip

PhD / Post grad / Masters / Doc 14

61%

Professor / Associate Prof. 4

17%

Researcher 4

17%

Lecturer / Post doc 1

4%

Readers' Discipline

Tooltip

Computer Science 20

87%

Agricultural and Biological Sciences 1

4%

Physics and Astronomy 1

4%

Biochemistry, Genetics and Molecular Bi... 1

4%

Save time finding and organizing research with Mendeley

Sign up for free