【问题标题】:Leave INT3 breaks to application's exception handler on visual studio将 INT3 中断留给 Visual Studio 上的应用程序异常处理程序
【发布时间】:2015-05-31 08:09:29
【问题描述】:

我实际上是在开发一个注入到进程中的 DLL。这个 DLL 在可执行文件的代码周围设置了几个 INT3 中断,这被调用了很多。我的 DLL 的异常处理程序捕获那些 INT3 以更改几个寄存器值和类似的东西,然后它恢复进程以便它可以继续工作。

问题是:当我需要调试 DLL(通过在 Visual Studio 中启动应用程序)时,所有这些 INT3 都由 Visual Studio 处理。 有没有办法告诉 Visual Studio 将这些异常传递给应用程序的 (dll) 异常处理程序?

重要提示:

  • 我无法禁用这些 INT3,因为实际的 dll 代码在这些异常发生时发生(在处理程序上)。
  • 可执行文件已编译。我没有源代码。

谢谢

【问题讨论】:

    标签: c++ visual-studio debugging exception-handling debugbreak


    【解决方案1】:

    INT3 是调试中断指令,因此您的 DLL 是一个调试器。您刚刚发现了调试调试器的乐趣。

    不,Windows 不知道 添加了 INT3,是您还是 Visual Studio。因此它将所有中断传递给 Visual Studio。 Visual Studio 确实会跟踪,但所有意外的断点(即不是由 Visual Studio 本身设置的)都会交给用户。原因是这样会捕获断言等。

    【讨论】:

    • 所以,在简历中:我被卡住了,我无能为力吗?有什么方法可以忽略 VS 上的 int3?
    猜你喜欢
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2014-05-04
    相关资源
    最近更新 更多