Dyingchen 发表于 2020-4-24 13:46

被调试软件hook了ntdll.dll的ZwContinue和DbgBreakPoint两个函数导致无法调试如何处理

本帖最后由 Dyingchen 于 2020-4-24 13:47 编辑

如题,最近遇到一个软件无壳但有反调试,分析时运行到ntdll.dll的ZwContinue就会退出,估计hook了ntdll的debug相关函数导致调试器附加之后运行到DbgBreakPoint就会被检测然后程序退出,有没有什么比较简单便捷的方法过这个反调试呢?

魔弑神 发表于 2020-4-24 15:09

Dyingchen 发表于 2020-4-24 14:44
师傅能否具体一点?我在想一般r3的调试器都是走这个函数调用的那么用驱动调试器是否可以绕过?

对于这种的你要确保是这个调试器创建线程-软件检测到的问题
如果是这样的话 可以看看有没有应用层钩子 然后去分析 或者使用Sharpod的附加功能
如果都无效 那么不是这个问题了 可能是一些线程检测暂停什么的 (or 驱动

Dyingchen 发表于 2020-4-24 16:02

萜一下附加调试之后调试器的代码,直接退出了06580000   /EB 10         jmp short 06580012
06580002   |6A 00         push 0x0
06580004   |6A FE         push -0x2
06580006   |FF15 0E005806   call dword ptr ds:               ; ntdll.RtlExitUserThread
0658000C^|EB F4         jmp short 06580002
0658000E   |70 56         jo short 06580066
06580010   |4D            dec ebp
06580011   |77 68         ja short 0658007B
06580013    2000            and byte ptr ds:,al
06580015    58            pop eax
06580016    06            push es
06580017    33C0            xor eax,eax
06580019    64:FF30         push dword ptr fs:
0658001C    64:8920         mov dword ptr fs:,esp
0658001F    CC            int3
06580020    90            nop
06580021^ EB DF         jmp short 06580002

huzpsb 发表于 2020-4-24 14:06

StrongOD在R0解决了这个问题的

Dyingchen 发表于 2020-4-24 14:14

huzpsb 发表于 2020-4-24 14:06
StrongOD在R0解决了这个问题的

论坛od我记得有strongOD啊,可是我还是无法调试

huzpsb 发表于 2020-4-24 14:17

Dyingchen 发表于 2020-4-24 14:14
论坛od我记得有strongOD啊,可是我还是无法调试

(要手动开?

魔弑神 发表于 2020-4-24 14:34

huzpsb 发表于 2020-4-24 14:17
(要手动开?

如果软件在ZwContinue做处理检测返回值 那么sod也没用了 参考某游戏r3保护

zxcvbnm12 发表于 2020-4-24 14:35

哦豁,这个问题我越看越头晕啊

romobin 发表于 2020-4-24 14:37

换个调试器, 或者运行后附加不可以吗?

Dyingchen 发表于 2020-4-24 14:39

huzpsb 发表于 2020-4-24 14:17
(要手动开?

应该不是这个问题,我去重新设置了一遍strongOD,依旧没法调试,堆栈回溯显示退出停在call ntdll.ZwWaitForWorkViaWorkerFactory上,可能去弄个驱动调试器更快捷一点

Dyingchen 发表于 2020-4-24 14:42

romobin 发表于 2020-4-24 14:37
换个调试器, 或者运行后附加不可以吗?

附加不行,多数调试器结果大同小异,这软件在启动之后检测完成会重启一次就很难受

Dyingchen 发表于 2020-4-24 14:44

魔弑神 发表于 2020-4-24 14:34
如果软件在ZwContinue做处理检测返回值 那么sod也没用了 参考某游戏r3保护

师傅能否具体一点?我在想一般r3的调试器都是走这个函数调用的那么用驱动调试器是否可以绕过?
页: [1] 2 3
查看完整版本: 被调试软件hook了ntdll.dll的ZwContinue和DbgBreakPoint两个函数导致无法调试如何处理