2013-09-24 176 views
0

我有一段时间以前写过的exe文件,找不到它的源代码(它是用C++编写的)。在编译好的exe文件中修改dll函数调用

它调用user32.dll中的MessageBoxA函数并将必要的参数传递给它。我想修改flags参数以包含MB_ICONERROR(0x10)标志。

我该如何去查找exe文件中的哪些字节需要修改才能完成?

+0

开始用短祈祷你的DLL *不*验证码签名。 – WhozCraig

+1

步骤1:连接一个调试器。在user32中的MessageBoxA中设置一个断点。触发对话框。查看调用堆栈并将其跟踪到指定要更改的标志的调用。修改可执行文件并重新计算PE校验和。第2步:学习使用修订控制。 –

回答

2

您需要像ICE或IDA这样的反汇编程序。 https://www.hex-rays.com/products/ida/support/download.shtml。 加载可执行文件。在名称窗口中找到Win32 API调用,找到它,只需键入函数名称即可。然后双击代码XREF转到引用的调用者。

enter image description here

然后你得到你想要的东西: enter image description here

只需选择行,然后单击十六进制查看得到的地址。

enter image description here