Automatic Firmware Emulation through Invalidity-guided Knowledge Inference (Extended Version)
Wei Zhou, Le Guan, Peng Liu, Yuqing Zhang

TL;DR
This paper introduces uEmu, a novel symbolic execution-based method for emulating firmware with unknown peripherals, significantly improving accuracy and bug detection without manual intervention.
Contribution
uEmu learns to emulate firmware at individual peripheral access points by inferring response rules during symbolic execution, surpassing heuristic-based methods.
Findings
Achieved 95% pass rate in unit tests for peripheral drivers
Discovered new bugs in real-world firmware samples
Outperformed existing heuristic approaches in emulation accuracy
Abstract
Emulating firmware for microcontrollers is challenging due to the tight coupling between the hardware and firmware. This has greatly impeded the application of dynamic analysis tools to firmware analysis. The state-of-the-art work automatically models unknown peripherals by observing their access patterns, and then leverages heuristics to calculate the appropriate responses when unknown peripheral registers are accessed. However, we empirically found that this approach and the corresponding heuristics are frequently insufficient to emulate firmware. In this work, we propose a new approach called uEmu to emulate firmware with unknown peripherals. Unlike existing work that attempts to build a general model for each peripheral, our approach learns how to correctly emulate firmware execution at individual peripheral access points. It takes the image as input and symbolically executes it by…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Malware Detection Techniques · Software Testing and Debugging Techniques · Security and Verification in Computing
