如何使用API​​窗口反汇编exe文件?

时间:2014-02-04 12:21:46

标签: c++ c visual-c++ assembly

我编写了一个打开exe文件的程序。我希望该程序在exe文件中读取一些特定的汇编指令及其地址。例如JAM或Call。 那么,我应该使用哪些API函数。如果你知道任何其他有用的资料,请告诉我;)

2 个答案:

答案 0 :(得分:3)

如果您想阅读 Windows PE文件(可移植可执行文件)中的代码,首先必须找到代码部分。

如何找到这个取决于exe是32位还是64位(尽管它们的内部结构几乎相同),但我建议你研究PE格式http://msdn.microsoft.com/en-us/magazine/cc301805.aspx

之后,您必须找到您的呼叫代码或您想要的任何地址所在的地址。你想用二进制代码做什么取决于你,如果你打算把它翻译成asm人类可读的代码,你需要一个翻译器(或者你自己编写一个代码......对初学者来说很难),比如distorm(GPL和商业许可证)。

我希望这能让你开始做你想做的事。

答案 1 :(得分:0)

一个非常好的开始将是使用反汇编库,Capstone就是其中之一,但更多存在。

然后您将需要解析PE可执行格式以提取要发送到反汇编库的代码...

但在该域中,库也存在,例如radare支持大多数体系结构和格式(并且它可以与多个反汇编库一起使用,包括Capstone)