Publication Type
PhD Dissertation
Version
publishedVersion
Publication Date
11-2025
Abstract
System software, like any regular software, is prone to errors. It plays a specific role in a computer system by managing the underlying hardware and providing a platform to execute the application software. Defective or vulnerable system software can be exploited by attackers to compromise the entire system. Therefore, the system software must be studied and thoroughly analyzed to evaluate its security. However, due to the inherent complexity and its close interactions with the hardware, analyzing system software is a challenging task. As a result, there is a lack of tools and techniques capable of effectively analyzing system software.
This dissertation tackles some key problems associated with enabling the dynamic analysis of system software. Because system software interacts directly with hardware, its execution is tightly coupled with the underlying platform and dependent on specific hardware features. Therefore, there is a need to decouple such system software from the specific hardware features it depends on and execute it on commodity hardware to enable efficient dynamic analysis. Analyzing such software dynamically requires special analysis tools. However, running an analyzer on the same system that is being analyzed is also difficult, as we need a foothold to host the analyzer itself on the system, provide mechanisms to introspect the target and manage system states. Furthermore, unlike generic tools, there is a lack of user-programmable analysis tools that can be customized to combine different analysis techniques and achieve various analysis tasks requiring thorough binary level reasoning.
To address these challenges, we propose techniques that advance system software analysis by combining symbolic execution with conventional dynamic analysis. First, we present a generic symbolic execution engine as a template for dynamic system software analysis. It adopts a VM-hosting approach, where the target system software runs inside a regular virtual machine, enabling dynamic symbolic analysis. The engine operates directly on the memory of live target threads, weaving symbolic execution into native execution. We enable user-programmable interfaces that allow analysts to develop custom analyzers that combine conventional dynamic analysis and symbolic execution to perform complex analysis tasks.
Building on this reference template, we extend it to target two critical system software components. First, we propose KRover, a symbolic execution engine for dynamic kernel analysis. KRover operates directly on the states of live kernel threads and enables dynamic symbolic analysis. We benchmark it against the state of the art, S2E, and show that KRover is on average 6.8 times faster while using one tenth to one quarter of S2E’s memory. Our case studies on vulnerability generalization, fix validation, and rootkit analysis show how users can build their own kernel analyzers on KRover. Next, we present TDXplorer, a system framework for symbolic analysis of Intel’s TDX Module, the core system software and trusted computing base of Intel Trust Domain Extensions. TDXplorer is the first dynamic symbolic analysis system for the TDX Module. It provides an emulation environment that allows the TDX Module to execute on a desktop PC without requiring TDX hardware, enabling both symbolic execution and conventional dynamic analysis. We evaluate TDXplorer’s performance and verify the accuracy of our TDX emulation against a real TDX server. Our analysis uncovered a canary bug and several discrepancies between the implementation and the documentation. Our case studies on symbolic modeling of secure EPT creation and dynamic memory management demonstrate TDXplorer’s utility and show how users can build their own TDX Module analyzers for complex analysis tasks.
Keywords
Software and System Security, System Software Analysis, Symbolic Execution, Dynamic Program Analysis
Degree Awarded
PhD in Computer Science
Discipline
Software Engineering
Supervisor(s)
DING, Xuhua
First Page
1
Last Page
165
Publisher
Singapore Management University
City or Country
Singapore
Citation
PITIGALA ARACHCHILLAGE, Pansilu Madhura Bhashana.
Symbolic execution engine for dynamic analysis of system software. (2025). 1-165.
Available at: https://ink.library.smu.edu.sg/etd_coll/815
Copyright Owner and License
Author
Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.