@inproceedings{85122def61e9491aa62ba0df43feb1af,
title = "Path-exploration lifting: Hi-fi tests for lo-fi emulators",
abstract = "Processor emulators are widely used to provide isolation and instrumentation of binary software. However they have proved difficult to implement correctly: processor specifications have many corner cases that are not exercised by common workloads. It is untenable to base other system security properties on the correctness of emulators that have received only ad-hoc testing. To obtain emulators that are worthy of the required trust, we propose a technique to explore a high-fidelity emulator with symbolic execution, and then lift those test cases to test a lower-fidelity emulator. The high-fidelity emulator serves as a proxy for the hardware specification, but we can also further validate by running the tests on real hardware. We implement our approach and apply it to generate about 610,000 test cases; for about 95\% of the instructions we achieve complete path coverage. The tests reveal thousands of individual differences; we analyze those differences to shed light on a number of root causes, such as atomicity violations and missing security features.",
keywords = "CPU emulators, cross validation, symbolic binary execution",
author = "Lorenzo Martignoni and Stephen McCamant and Pongsin Poosankam and Dawn Song and Petros Maniatis",
year = "2012",
month = mar,
day = "3",
doi = "10.1145/2150976.2151012",
language = "English (US)",
isbn = "9781450307598",
series = "International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS",
publisher = "Association for Computing Machinery",
pages = "337--348",
booktitle = "ASPLOS XVII - 17th International Conference on Architectural Support for Programming Languages and Operating Systems",
note = "17th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2012 ; Conference date: 03-03-2012 Through 07-03-2012",
}