高层次来看,与其他调试器一样,HyperDbg被设计用于在目标系统(称为Guest)内执行分析。源调试指令通常从一个外部系统(称为调试器Host)发送。图1说明了HyperDbg子系统和执行流程的高层次概述。如图所示,调试器是一个端到端框架,通过通信接口(例如串行)连接客户机和主机系统。虽然核心构建块都部署在客户机侧的虚拟化水平上,但主机侧提供了一个CLI界面与用户交互,并部署了汇编/反汇编程序以及用于调试功能的前端引擎。多个调试子系统都部署在客户机VMX-root模式下,直接利用硬件特性(例如EPT)进行功能实现。如图1所示,调试命令由主机接收,在那里它们经过(反)汇编并通过脚本引擎解析1。然后,命令通过通信渠道发送到客户机。这些命令在客户机hypervisor-level上的脚本引擎后端进行解释处理。根据请求的调试例程,在4中可以针对客户端任何用户或内核模式debuggee程序代码,并直接访问执行流程。基于事件触发例程(第3.2节),按照每个子系统所示,命令和功能的顺序执行。最后,子系统功能利用基于硬件的特性(例如EPT)来执行它们的操作3。我们在第4节中详细描述了每个子系统的部署。需要注意的是,在实际调试过程中,主机和客户机之间需要双向通信。但如图所示,使用脚本引擎,如果必要,HyperDbg可以将通信限制在客户机内核模式下自动化程序中。
翻译On the high level, like other debuggers, HyperDbg is designed to perform a level of analysis within a target system referred as the Guest. The source debugging instructions are usually sent from an external system known as the debugger Host. Fig...
本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=3356
发表列表
评论列表
还没有评论,快来说点什么吧~