Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

HyperDbg: Reinventing Hardware-Assisted Debugging

View through CrossRef
Software analysis, debugging, and reverse engineering have a crucial impact in today’s software industry. Efficient and stealthy debuggers are especially relevant for malware analysis. However, existing debugging platforms fail to address a transparent, effective, and high-performance low-level debugger due to their detectable fingerprints, complexity, and implementation restrictions. In this paper, we present HyperDbg, a new hypervisor-assisted debugger for high-performance and stealthy debugging of user and kernel applications. To accomplish this, HyperDbg relies on state-of-the-art hardware features available in today’s CPUs, such as VT-x and extended page tables. In contrast to other widely used existing debuggers, we design HyperDbg using a custom hypervisor, making it independent of OS functionality or API. We propose hardware-based instruction-level emulation and OS-level API hooking via extended page tables to increase the stealthiness. Our results of the dynamic analysis of 10,853 malware samples show that HyperDbg’s stealthiness allows debugging on average 22% and 26% more samples than WinDbg and x64dbg, respectively. Moreover, in contrast to existing debuggers, HyperDbg is not detected by any of the 13 tested packers and protectors. We improve the performance over other debuggers by deploying a VMX-compatible script engine, eliminating unnecessary context switches. Our experiment on three concrete debugging scenarios shows that compared to WinDbg as the only kernel debugger, HyperDbg performs step-in, conditional breaks, and syscall recording, 2.98x, 1319x, and 2018x faster, respectively. We finally show real-world applications, such as a 0-day analysis, structure reconstruction for reverse engineering, software performance analysis, and code-coverage analysis.
Title: HyperDbg: Reinventing Hardware-Assisted Debugging
Description:
Software analysis, debugging, and reverse engineering have a crucial impact in today’s software industry.
Efficient and stealthy debuggers are especially relevant for malware analysis.
However, existing debugging platforms fail to address a transparent, effective, and high-performance low-level debugger due to their detectable fingerprints, complexity, and implementation restrictions.
In this paper, we present HyperDbg, a new hypervisor-assisted debugger for high-performance and stealthy debugging of user and kernel applications.
To accomplish this, HyperDbg relies on state-of-the-art hardware features available in today’s CPUs, such as VT-x and extended page tables.
In contrast to other widely used existing debuggers, we design HyperDbg using a custom hypervisor, making it independent of OS functionality or API.
We propose hardware-based instruction-level emulation and OS-level API hooking via extended page tables to increase the stealthiness.
Our results of the dynamic analysis of 10,853 malware samples show that HyperDbg’s stealthiness allows debugging on average 22% and 26% more samples than WinDbg and x64dbg, respectively.
Moreover, in contrast to existing debuggers, HyperDbg is not detected by any of the 13 tested packers and protectors.
We improve the performance over other debuggers by deploying a VMX-compatible script engine, eliminating unnecessary context switches.
Our experiment on three concrete debugging scenarios shows that compared to WinDbg as the only kernel debugger, HyperDbg performs step-in, conditional breaks, and syscall recording, 2.
98x, 1319x, and 2018x faster, respectively.
We finally show real-world applications, such as a 0-day analysis, structure reconstruction for reverse engineering, software performance analysis, and code-coverage analysis.

Related Results

Debugging Parallel DEVS
Debugging Parallel DEVS
To this day, debugging support for the DEVS formalism has been provided, at best, in an ad-hoc way. The intricacies of dealing with the interplay of different notions of (simulated...
How developers debug
How developers debug
Debugging software is an inevitable chore, often difficult and more time-consuming than expected, giving it the nickname the “ dirty little secret of computer science.” Surprisingl...
Programming Self-Efficacy and Perceived Debugging Performance among First-Year Computer Science Students
Programming Self-Efficacy and Perceived Debugging Performance among First-Year Computer Science Students
This study examined the relationship and level of programming self-efficacy and perceived debugging performance among first-year Computer Science students at Surigao del Norte Stat...
Talk: Debugging the Un-Debuggable: Advanced Debugging Techniques for Microarchitectural Security Tooling
Talk: Debugging the Un-Debuggable: Advanced Debugging Techniques for Microarchitectural Security Tooling
System security research often involves the development of custom code for building program analysis tools or implementation of side-channel leakage mitigations. In various cases, ...
Guidelines for creating a debuggable processor
Guidelines for creating a debuggable processor
Hardware without software is of little use. Systems that ease the task of debugging software reduce cost and speed development. This paper presents guidelines for designing process...
Guidelines for creating a debuggable processor
Guidelines for creating a debuggable processor
Hardware without software is of little use. Systems that ease the task of debugging software reduce cost and speed development. This paper presents guidelines for designing process...
What is reverse debugging? Classification of reverse debugging methods
What is reverse debugging? Classification of reverse debugging methods
Abstract The article discusses an approach to speeding up the search complex errors in software – reverse debugging. In this approach, debugging is divided into two ...
Performance simulation methodologies for hardware/software co-designed processors
Performance simulation methodologies for hardware/software co-designed processors
Recently the community started looking into Hardware/Software (HW/SW) co-designed processors as potential solutions to move towards the less power consuming and the less complex de...

Back to Top