ZBLOG

翻译5.2 Kernel-level Script Engine Modern day debuggers fall short in providing a high-performance and highly customizable scripting framework. Striving to address this gap and faced with the lack of support for direct access to memory in VMX-root ...

5.2 内核级脚本引擎 现代调试器在提供高性能和高度可定制的脚本框架方面存在不足。为了解决这一差距,并面临VMX-root模式下无法直接访问内存的支持缺失,我们从头设计了一个启用VMX的脚本引擎。据我们所知,这是唯一在VMX-root模式下提供诸如操作系统自旋锁、内存检查以及辅助功能(例如printf和strlen)等优点的脚本引擎解决方案。如图4a所示,脚本引擎由一个后端(使用LL(1)和LALR(1)解析器实现最大效率)和一个前端组成,前端使用MASM风格语法与C关键字(例如if、else、for)以及易于定制的语法。

用户输入的脚本被传递到前端主机,在通过词法分析器扫描后被解析为中间表示形式(IR),然后通过串行接口发送到客户端内核VMX-root模式中执行。之后,一个缓冲区逐渐填充着执行结果并传回到主机。与普通调试器使用双向方法(逐行发送和解析命令和脚本)相比,这种方法通过将整个脚本发送到VMX-root模式中,并以单向流的方式将响应返回到用户模式,提供了相当大的性能改进。

如图4b所示,还可以将脚本设置为事件的动作。在这种情况下,解析后的IR脚本被存储在VMX-root内核中一次,一旦触发对应事件,则在本地执行IR,从而提高脚本引擎的执行性能。附录E提供了一个带有详细说明的样例脚本。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=3359

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?