首页
社区
课程
招聘
[求助]ODbgScript插件BUG?
发表于: 2011-9-28 23:53 4070

[求助]ODbgScript插件BUG?

2011-9-28 23:53
4070
写了一个当CPU读取到指定浮点数就发生中断的脚本,但是发现貌似ODbgScript貌似有BUG啊,每次当ST0中就是我需要的浮点数时,当执行fucompp比较后,(两数其实已经相等,在OD中手工运行,结果就是正确的,fst =4000),实际结果常常FST为7800,也就是说插件运行貌似影响了浮点的状态寄存器,这下怎么搞啊,俺可要用到那东东呢,ODbgScript有不能直接访问浮点的状态寄存器.高手们有没有办法呢指点下小弟啊


脚本很简单,单步运行程序,每个指令执行完后,检测st0是不是我想要的那个浮点数,如果跟我指定的浮点数相等就中断并弹出消息.
问题就在浮点比较指令总是返回异常的结果,真是郁闷啊.

脚本代码如下:
var dw_800
var status
mov dw_800, 42F60000  //浮点数的HEX值

begin:
sti    //单步过

exec   
pushad
fstenv [esp]           //保存浮点处理器的状态
push eax          //保存eax
ende

mov eax,dw_800  //要比较的数

exec
fld st
push eax
fld  dword ptr [esp]
ende

exec
fucompp
fstsw ax          //就这里很郁闷,就算st0和st(1)是同一个数,结果也是错得
ende
mov status,ah
exec
sahf
ende

exec  //恢复状态
pop eax
pop eax
fldenv [esp]
add esp,20
ende

cmp status,40
je Find_OK
jmp begin

Find_OK:
bp eip
MSG "Int"

[培训]传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 13
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
算了   换了个脚本  解决了
2011-9-29 12:18
0
游客
登录 | 注册 方可回帖
返回