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.
翻译:软件分析、 调试和反向工程在今天的软件行业中具有关键影响。 高效和隐性调试器对于恶意软件分析特别相关。 但是, 现有的调试平台无法解决透明、 有效和高性能的低调调调试器, 因为它们可以检测到指纹、 复杂度和执行限制 。 在本文中, 我们为用户和内核应用程序的高性能和隐性调试提供超高度Dbg 辅助调试器。 要做到这一点, HyperDbg 依赖于今天的CPU 中可用的最先进的硬件功能, 如 VT- x 和扩展的页面表格。 与其他广泛使用的调试器相比, 我们使用自定义的超高端调调调调调调试器, 使其独立于OS 功能或 API 。 我们建议基于硬件的模级模级模级模模模模模和高级调试算器, 只需通过扩展的页面表来提高软化能力。 我们的10, 853 调调调试样的试样分析结果显示, 显示SydDB的比值的变速分析显示, 更快速的变速和变速分析显示, 22级的比级的变速分析显示Slo化, 度, 的比值的比值的变速性变更快的变更快的调, 度分析显示, 度分析显示, 显示, 显示的变式的比的变式的变式的变式的变式的变式的变式的变式的变式的变式的变压, 。