首页
社区
课程
招聘
[原创]解决IDA的F5(hexray 1.5)不能用于FPU栈用满的情况
发表于: 2014-10-19 13:55 5123

[原创]解决IDA的F5(hexray 1.5)不能用于FPU栈用满的情况

2014-10-19 13:55
5123

尝试分析一段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期)

收藏
免费 3
支持
分享
最新回复 (1)
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
这个bug怎么找到地址的?
调试了几天,都尼玛太复杂了~
2014-10-19 21:15
0
游客
登录 | 注册 方可回帖
返回
//