首页
社区
课程
招聘
[旧帖] [求助]强制修改EIP,为什么会exception? 0.00雪花
发表于: 2012-8-13 09:47 1629

[旧帖] [求助]强制修改EIP,为什么会exception? 0.00雪花

2012-8-13 09:47
1629
如题,在虚拟机QEMU里面,32位windows xp系统, 直接强制修改EIP寄存器,或通过中断方式强制修改。

EIP地址处有正常指令,正常翻译。执行了几十条指令(4个translation blocks)以后就exception了。有时候系统崩溃,有时候里面的软件(firefox)崩溃,有时候什么也不发生(通过中断方式)。

EIP指向的地方有正常指令,而且能正常执行,cr3也对的。为什么执行了一些之后会exception呢? 谢谢指导。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
主要是堆栈平衡。
2012-8-13 09:52
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
能说的具体点吗?系统是怎么检测出exception的?
2012-8-13 10:09
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
强制改eip在某些情况下会崩溃的,比如正常执行, cmp eax,0,jne b,b:mov [eax],5
这几条是判断eax不是0的时候就赋值[eax]单元为5,但是如果直接修改eip到b:的语句,就不排除mov [0],5,而0单元显然会异常的,所以说随便修改eip会出错了,因为程序中某些指令必须执行而你不执行直接跳到某处,肯定会出错,这是根据各个程序的具体情况而异的。
2012-8-13 10:18
0
游客
登录 | 注册 方可回帖
返回
//