当我用
ollydbg
打开它并附加到此应用程序过程中时,当我按Play键时,我看到的是attached process paused at ntdll.DbgBreakPoint
>
thread ... terminated , exit code 0.
我在寻找反调试功能,所以我在寻找
DbgUiRemoteBreakin
,并找到了它。 > push 8
...
...
..
call ntdll.DbgBreakPoint
.....
我试图找到此功能的作用,因此我在功能的第一行(
push 8
)上做了标记,然后按play键,我看到ollydbg在cmp Byte ptr...
行上停止了。 > 如何解决此反调试问题?
#1 楼
这不是反调试,而是Win32调试API实现进程附加的标准方法。 OS注入了带有DbgBreakPoint
调用的线程,以确保进程停止,因为否则进程可能处于未知状态。大多数调试器应该透明地处理它,但是如果您不这样做,则只需在您感兴趣的某些API上设置断点,然后继续该过程即可。断点线程将退出,但其他线程将继续运行,并有望达到您的断点。另外,您也可以在暂停后仅切换到主线程或另一个线程,然后检查调用堆栈以查看程序在做什么。