IDA Hex-Rays Decompiler生成ASM代码问题

时间:2019-05-24 11:58:00

标签: x86 decompiling decompiler ida

很长一段时间以来,我一直在努力使用IDA HexRays插件生成的某些功能似乎已损坏。

一些反编译生成的普通C代码,显示为ASM代码:/

即:

  sqrt(v4);
  __asm
  {
    fstp    [esp+24h+var_C]
    fld     [esp+24h+var_C]
    fstp    [esp+24h+var_14]
    fldz
  }

这可能是什么原因?可能是错误的堆栈指针?我必须承认,有时我还会得到一个著名的sp问题,我总是通过ALT + K修复并调整负堆栈指针,但是生成的ASM代码问题在某些功能发生之前就已经发生了。

请注意,当我将相同的可执行文件加载到另一个IDA实例中并转到相同的功能存储器时,反编译的代码看起来还不错,所以我猜测由于某些更改,我正在处理的数据库实例的方式(可能是结构布局)使功能失败了?

有没有一种方法可以解决此问题,使生成的代码再次看起来像普通的C?我已经尝试取消定义损坏的功能并重新分析它,但是输出代码仍将是ASM。

谢谢!

0 个答案:

没有答案