在 IDA Pro 中压缩伪代码行

逆向工程 艾达 六线谱
2021-07-02 05:11:31

在 IDA 6.6 中,是否可以压缩或以其他方式重新排列 Hex-Rays 反编译器给出的伪代码行?例如

if ( !iFile2Size
  || *pFile2BufferCopy == *pFile3BufferCopy
  && (iFile2Size <= 1
   || pFile2BufferCopy[1] == pFile3BufferCopy[1]
   && (iFile2Size <= 2 || pFile2BufferCopy[2] == pFile3BufferCopy[2])) )
  blah;

是有点眼出血。不过,我终其一生都无法弄清楚如何重新安排它。

1个回答

我所知道的唯一可靠的方法是编写 HexRays 插件。 在这里这里,您有一个操作反编译器输出的插件示例 - 不完全是您需要的方式,但可能会给您一些指导。IdaPython 中此类插件的示例(可能无法工作且已过时)可以在其旧的 Google 代码存储库中找到(请参阅此处的v*.py

此外,您可以操作反编译器配置。正如它在这里写的那样您可以减少或增加RIGHT_MARGIN参数,这可能会让您能够操纵反编译器输出的单行大小(这将改变您的条件的表示等)。可以通过编辑/插件/与 hexrays 相关的东西/(抱歉,我现在没有安装 HexRay)菜单访问相同的设置。