在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参数,这可能使您能够处理反编译器输出的单行大小(这将改变您的情况表示)。可以通过edit / plugins /与hexrays相关的内容/访问相同的设置/(抱歉,我现在没有安装HexRay)菜单。

评论


谢谢w s。对于其他阅读此文档的人,可以在edit / plugins / Hex-Rays Decompiler下找到反编译器设置,然后按“选项”按钮可以更改注释缩进/禁止注释/右边距。

–本杰明·蒂尔曼(Benjamin Tillman)
2015年11月9日在17:05