我实际上正在开发一个注入进程的DLL。这个DLL在可执行文件的代码周围设置了几个INT3中断,这些代码被调用了很多。我的DLL的异常处理程序捕获那些INT3来更改几个寄存器值和类似的东西,然后它恢复这个过程,这样它就可以继续工作了。
问题是:当我需要调试DLL(通过在visualstudio中启动应用程序)时,所有这些INT3都由visualstudio处理。有什么方法可以告诉visualstudio将这些异常传递给应用程序的(dll)异常处理程序吗?
重要提示:
- 我不能禁用那些INT3,因为当这些异常发生时(在处理程序上),实际的dll代码就会发生
- 可执行文件已编译。我没有源代码
感谢
INT3是调试中断指令,因此DLL是一个调试器。您刚刚发现调试调试器的乐趣。
不,Windows不知道是谁添加了INT3,是你还是Visual Studio。因此,它将所有中断传递给Visual Studio。Visual Studio确实会跟踪,但所有意外的断点(即不是由Visual Studio自己设置的)都会交给用户。原因是这会捕获断言等。