当前,我正在尝试使用IDA pro从PE文件生成汇编代码并重新编译。
首先
我基本上是这样知道的:
File -> Produce File -> Create ASM File

似乎是asm文件生成的结果无法直接重新编译。
第二
使用IDA中的一些IDC或Python脚本提取有用的asm指令,将它们放在一起并重新编译,
这种解决方案可以从一些学术论文,但没有一个人给出了有关如何执行此任务的详细说明...
有人可以给我一些有关此问题的说明吗?。
谢谢!

评论

更具体地说明失败的步骤。您尝试使用哪些工具来编译ASM?必须进行哪些编辑才能修复ASM,并引发什么错误?

IDA生成的ASM文件不用于直接重新编译,您必须进行一些更改,例如固定地址,解析导入等。

@ExtremeCoders您好,能否请您告诉我解决“更改”问题的解决方案吗?在32位x86 Windows平台上看起来是如此复杂..谢谢!

解决“变更问题”的解决方案需要您自己努力。该站点不是在这里为您服务,而是在您证明自己努力之后遇到的问题的帮助。

#1 楼

很多年前,我编写了一个非常粗糙的脚本,使用大多数与nasm兼容的语法将当前功能(由光标位置定义)转储到输出窗口中。您可能会进行修改以将输出保存到文件中并遍历数据库中的每个函数。该脚本位于此处:nasm dumper

#2 楼

我会回答这部分


按顺序将它们放在一起并重新编译


如果反编译包含函数块,请注意使用接受函数环境之外的其他代码,并且也要注意防止数据执行。

有关函数块的更多信息:分块函数(组成函数的代码的不连续块)