我正在寻找一种(最好是免费的)工具,它可以从(非.NET)Windows PE 文件(*.exe 或 *.dll)生成“正确的”反汇编列表。
重要要求:应该可以通过 Windows 汇编程序(nasm、masm 或其他)运行清单并再次获得工作 exe(不一定与原来的相同,但它应该以相同的方式运行)。
预期用途是在源不可用时将新子例程添加到现有代码中。
理想情况下,工具应该能够检测函数/段边界、API 调用,并为跳转生成适当的标签(不过,我可以在没有循环/跳转标签的情况下生活,但函数边界检测会很好),并保留程序资源/段到位。
我已经知道 IdaPRO(不是免费的),OllyDBG(对就地黑客有用,不生成反汇编列表,AFAIK),ndisasm(输出不适合汇编程序),dumpbin(有用,但 AFAIK,输出不适用于汇编程序)和“代理 dll”技术。
想法?或者也许有一本书/教程解释了某种替代方法?