ICEY 发表于 2023-3-13 22:32

反调试CM

仿照一个面试题的CM做的,应该算是弱化版吧。
成功条件:

调试器运行或附加的情况下,成功运行(调试),点击测试按钮 弹出以下消息框。

CM下载:



随便带上源码吧哈哈哈,没思路就可以参考一下源码:


nug 发表于 2023-4-7 23:42

最近想学习反调试,正好看到楼主这个帖子,对于想入门又找不到门的我非常合适,很感谢楼主的整理,因为菜鸡一个,看的过程中有些疑问,不是很理解
疑点1. DbgPrompt 的反调试原理是什么,如果ring3会抛异常,那调试器也属于ring3啊。难到也和debugport有关系吗?
疑点2. NtSetInformationThread(GetCurrentThread(), 17, NULL, 0);//ThreadHideFromDebugger 设置隐藏调试 ,让调试器无法接受断点,可以这么理解吗?
疑点3. NtQueryInformationThread(GetCurrentThread(), 0x11, &out1, 1, NULL);通过out判断,out=1,没有调试,out=0,有调试,这个不是很理解,
疑点4:刚开始就设置PEBBase=0xf5,感觉有点反反调试了


最后对于楼主的
从内核角度认识反调试基本原理
https://www.52pojie.cn/thread-1681048-1-1.html
(出处: 吾爱破解论坛)
甚是震惊,到现在很多地方都没看懂,再接再厉

最后 再次感谢楼主的分享~~~~{:1_893:}{:1_893:}{:1_893:}

随风起舞 发表于 2023-3-14 02:32

好像没有反调试吧,我用普通版的都能了。。。

ICEY 发表于 2023-3-14 08:21

随风起舞 发表于 2023-3-14 02:32
好像没有反调试吧,我用普通版的都能了。。。

:Dweeqw 是这样的啦,检测走的都是常规的系统函数调用,整个稍微强一点的插件都能过了。

qrmq136 发表于 2023-3-14 13:05

不错,学习了,。感谢

cxor 发表于 2023-3-14 17:50

可以的 跟大佬多多学习

嘟囔嘟囔 发表于 2023-3-14 21:24

自己写自己破   壳网上有一堆直接加

110120130 发表于 2023-3-15 13:08

学习学习

DSJ6278099 发表于 2023-3-15 13:50

支持 一定要坚持

ICEY 发表于 2023-4-8 00:51

nug 发表于 2023-4-7 23:42
最近想学习反调试,正好看到楼主这个帖子,对于想入门又找不到门的我非常合适,很感谢楼主的整理,因为菜鸡 ...

好问题哈哈哈
1.DbgPrompt 触发 int 0x2d 这个中断能让KdIsThisAKdTrap返回1。将异常强制发往内核调试器(如果有内核调试器的话)这样就可以检测内核调试器(看我这篇帖子https://www.52pojie.cn/thread-1663524-1-1.html)。能检测用户调试器是因为,触发 int0x2d时,CPU执行环境是x64,不是x32,我们平常使用的调试器是 x32dbg,Od之类的,只能拿到x32的异常,拿到x64的异常时,就默认直接返回异常已经处理,所以就能检测到调试器啦。
2.是的,设置调试隐藏后,这个线程的异常就不发往调试器了(https://www.52pojie.cn/thread-1681048-1-1.html 这篇帖子最下面有写)
3.这个检测是和你第二个问题对应。检测线程的调试隐藏是否被恢复。
4.被你发现了
页: [1] 2
查看完整版本: 反调试CM