1

我正在将 dll 注入第三方程序并使用 MSVC 调试该 dll。我已经正常运行了一段时间,直到最近对程序的更新现在导致每次我在注入我的 dll 时将调试器附加到进程时导致 MSVC 崩溃。我的 dll 仍然正常运行,我只是无法调试它,因为附加 MSVC 会使主机程序崩溃。

事件视图显示:

Faulting application name: SomeApp.exe, version: 1.0.1023.0, time stamp: 0x5109728a
Faulting module name: MyDLL.dll, version: 0.0.0.0, time stamp: 0x5114e8b3
Exception code: 0x80000003
Fault offset: 0x006f3b28
Faulting process id: 0x1b80
Faulting application start time: 0x01ce05f71b9d65a9
Faulting application path: C:\SomeApp.exe
Faulting module path: c:\programming\MyDLL\debug\MyDLL.dll
Report Id: 8762e85d-71ea-11e2-a78e-4495fc99073a

如果检测到附加的调试器,应用程序现在是否可能会自行崩溃?我想指出,我的 DLL 是一个合法的服务器端 mod,不违反任何 EULA/TOS 或类似的东西。它通过替换宿主程序中某些对象的某些虚拟方法表 (VMT) 指针(如果相关)来操作。

更新我可以使用 MSVC 调试我的 dll 的 OnAttach() 部分,但是一旦执行返回到主机进程,它就会崩溃。

4

0 回答 0