我试图调试一个 Windows 应用程序,但是当我用 Ida 调试它时,它停止了int 3指令。
我读了那个int 3catch 调试器,所以我无法调试。
我怎样才能取消这个int 3?
怎么调用int 3?
如果我将此十六进制更改为nop会被取消吗?
我试图调试一个 Windows 应用程序,但是当我用 Ida 调试它时,它停止了int 3指令。
我读了那个int 3catch 调试器,所以我无法调试。
我怎样才能取消这个int 3?
怎么调用int 3?
如果我将此十六进制更改为nop会被取消吗?
好吧int 3,它是专门用于调用调试器的操作码。
它用于即软件断点。你可以用nop's替换它们,你应该很高兴。虽然我会首先找出为什么它们被执行,也许有一些条件可以避免它们被执行。
你如何开始解决这个问题。我假设您能够在 Ida 下启动程序并在内存中找到 int3 位置。如果不是这种情况,您应该更详细地描述到底发生了什么。
这只是一个如何开始的例子。当然还有其他可能的方法来解决这个问题。例如,当 Ida 在您的 int3 处中断时,尝试回溯以查找包含 int3 的代码序列是从哪里调用的。这应该连接到反调试代码,因为我假设在没有调试器的情况下运行时不会调用您的 int3。
这个东西最重要的是:不要放弃,即使它完全让你感到沮丧(这是反调试的唯一目的)。