Visual c++ MSVC&x2B+;导致“上的碰撞0x8000003”;“附加到流程”;

Visual c++ MSVC&x2B+;导致“上的碰撞0x8000003”;“附加到流程”;,visual-c++,dll,visual-studio-debugging,dll-injection,Visual C++,Dll,Visual Studio Debugging,Dll Injection,我正在将一个dll注入第三方程序,并用MSVC调试该dll。我已经正常运行了一段时间,直到最近对程序的更新导致MSVC崩溃,每次我在注入dll时将调试器附加到进程。我的dll仍然正常运行,我只是无法调试它,因为附加MSVC会使宿主程序崩溃 事件视图显示了以下内容: Faulting application name: SomeApp.exe, version: 1.0.1023.0, time stamp: 0x5109728a Faulting module name: MyDLL.dll,

我正在将一个dll注入第三方程序,并用MSVC调试该dll。我已经正常运行了一段时间,直到最近对程序的更新导致MSVC崩溃,每次我在注入dll时将调试器附加到进程。我的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是一个合法的服务器端模块,它不违反任何EULA/TOS或类似的规定。它通过替换宿主程序中某些对象的虚拟方法表(VMT)指针(如果相关的话)进行操作


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

0x8000003是调试器断点异常。它应该被调试器检测到,允许调试器控制程序。很明显,您的主机首先会拦截它,将其视为未处理的异常。这很可能是故意的,会妨碍调试。或者是疏忽,请与主机应用程序的程序员交谈。是的,经常这样做是为了防止。。。好吧,你不会再做这种事了。啊,谢谢你的洞察力。正如我所说的,开发人员对服务器端mod没有问题,他们实际上认可了我制作的mod,但是我可以看到这被用来防止不太体面的追求。我已经问过他们了,因为现在有可能了,不过有些事情似乎很奇怪。就像我可以调试不修改任何VMT指针的简单注入DLL一样。