-
-
[原创]解决IDA的F5(hexray 1.5)不能用于FPU栈用满的情况
-
发表于:
2014-10-19 13:55
5123
-
[原创]解决IDA的F5(hexray 1.5)不能用于FPU栈用满的情况
尝试分析一段fpu指令,测试了让fpu stack占用到7个(st0~st6)都没问题,一旦使用到st7,hexray插件就会打一个inconsistent fpu stack然后直接给汇编。
比如这样的代码:
fld1
fld1
fld1
fld1
fld1
fld1
fld1
faddp st(1), st
faddp st(1), st
faddp st(1), st
faddp st(1), st
faddp st(1), st
faddp st(1), st
F5可以正确反编译:
return 1.0 + 1.0 + 1.0 + 1.0 + 1.0 + 1.0 + 1.0;
可只要用到ST7:
fld1
fld1
fld1
fld1
fld1
fld1
fld1
fld1
faddp st(1), st
faddp st(1), st
faddp st(1), st
faddp st(1), st
faddp st(1), st
faddp st(1), st
faddp st(1), st
就报告inconsistent fpu stack并给出这样的结果:
__asm
{
fld1
fld1
fld1
fld1
fld1
fld1
fld1
fld1
faddp st(1), st
faddp st(1), st
faddp st(1), st
faddp st(1), st
faddp st(1), st
faddp st(1), st
faddp st(1), st
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)