如何使用 API 窗口反汇编 exe 文件? [关闭]
Posted
技术标签:
【中文标题】如何使用 API 窗口反汇编 exe 文件? [关闭]【英文标题】:How to disassembler exe file With API windows? [closed] 【发布时间】:2014-02-04 12:21:46 【问题描述】:我编写了一个打开 exe 文件的程序。我希望该程序读取一些特定的汇编指令及其在 exe 文件中的地址。例如 JAM 或 Call。 那么,我应该使用哪些 API 函数。如果您知道任何其他有用的资源,请告诉我;)
【问题讨论】:
【参考方案1】:如果您想读取 Windows PE 文件(便携式可执行文件)中的代码,您首先必须找到代码部分。
如何找到这个取决于 exe 是 32 位还是 64 位(尽管它们的内部结构几乎相同),但我建议你研究 PE 格式:http://msdn.microsoft.com/en-us/magazine/cc301805.aspx
之后,您必须找到您的呼叫代码或任何您想要的地址所在的地址。你想用那个二进制代码做什么取决于你,如果你打算将它翻译成asm人类可读的代码,你需要一个翻译器(或者自己编写一个代码......对于初学者来说很难),例如distorm(GPL 和商业许可)。
我希望这能让你开始做你想做的事。
【讨论】:
我照你说的做了。我翻译有问题。我不知道真正的反汇编是如何工作的 您有想要解释为 asm 代码的十六进制代码?我建议你使用我链接的库,它简单有效。否则从这里开始(假设 x64 系统):intel.com/content/www/us/en/processors/… 我读取了 exe 文件并将它们保存在内存中,这就是十六进制。 我有开始部分的地址 我会用它告诉你结果。谢谢哥们;)【参考方案2】:使用反汇编库是一个很好的开始,Capstone 就是其中之一,但还有更多。
然后你需要解析PE可执行格式来提取代码发送到你的反汇编库...
但在那个领域库也存在,例如radare 支持大多数架构和格式(并且它可以与多个反汇编库一起使用,包括 Capstone)
【讨论】:
以上是关于如何使用 API 窗口反汇编 exe 文件? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在keil调试中黄色箭头不出现汇编窗口而是停在main主函数上