首页
社区
课程
招聘
vt通过MTF设置调试并进行事件注入后陷入vmm的神奇特性!
2023-5-5 19:48 6099

vt通过MTF设置调试并进行事件注入后陷入vmm的神奇特性!

2023-5-5 19:48
6099


当我设置MTF调试标志位并注入 #DB 事件后,vm进入 #DB handler 的第一条指令后陷入vmm。

当我查看异常处理栈是数据是正常的,但是执行一些无关内存的指令后,异常处理栈中的数据却被莫名其妙的被修改了!


图1为陷入vmm是的guest.rip,图2为异常处理栈。


vmm中的汇编如下:

仅仅是执行简单的 mov 寄存器操作,异常处理栈中的数据就被修改了。但事实上我并未执行修改内存的任何操作!



神奇的是异常处理栈顶 rip, cs, rflgas, rsp, ss 被修改,而且rip的位置刚好对应于当前vmm的rip!


仔细检查了一下,发现随着vmm指令的执行,异常处理栈中的数据会自动被改变!

恰好是 rip, cs, rflgas, rsp, ss 。

每步调试时,对应的数据就会被修改,而直接 g 的话数据将不会被修改。



有相关设置让其相关数据不被修改吗?


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 2413
活跃值: (3994)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
ALwalker 2023-5-6 11:35
2
0
有了解陷入异常处理后发生 MTF exit 相关属性的牛牛吗?我现在想在发生 MTF vm-exit 后进行一些操作再返回异常处理,但是相关栈帧会被修改
雪    币: 12837
活跃值: (8998)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
hzqst 3 2023-5-6 13:16
3
1
不是,为什么会有人用windows自己的调试机制去调vmm这种理论上应该对os透明的东西啊
游客
登录 | 注册 方可回帖
返回