C++ 在已编译的exe中修改dll函数调用

C++ 在已编译的exe中修改dll函数调用,c++,executable,compiled,C++,Executable,Compiled,我有一个前一段时间编写的exe文件,但找不到它的源代码(它是用C++编写的) 它调用user32.dll中的MessageBoxA函数,并向其传递必要的参数。我想修改flags参数以包含MB\u ICONERROR(0x10)标志 如何查找exe文件中需要修改哪些字节才能完成此操作?您需要ICE或IDA之类的反汇编程序。 加载可执行文件。找到Win32 API调用名称窗口,要找到它,只需键入函数名。然后双击“代码外部参照”转到被引用调用方 然后你得到你想要的: 只需选择该行并单击Hex Vi

我有一个前一段时间编写的exe文件,但找不到它的源代码(它是用C++编写的)

它调用
user32.dll
中的
MessageBoxA
函数,并向其传递必要的参数。我想修改flags参数以包含
MB\u ICONERROR
(0x10)标志


如何查找exe文件中需要修改哪些字节才能完成此操作?

您需要ICE或IDA之类的反汇编程序。 加载可执行文件。找到Win32 API调用名称窗口,要找到它,只需键入函数名。然后双击“代码外部参照”转到被引用调用方

然后你得到你想要的:

只需选择该行并单击Hex View即可获得地址


先做一个简短的祈祷,祈祷您的DLL没有经过身份验证码签名。步骤1:附加调试器。在user32的MessageBoxA中设置断点。触发对话框。查看调用堆栈并将其追溯到指定要更改的标志的调用。修改可执行文件并重新计算PE校验和。第二步:学习使用修订控制。