首页
社区
课程
招聘
[原创]常见反调试手段及其规避方法(一)-IsDebuggerPresent
发表于: 2018-5-4 17:48 24151

[原创]常见反调试手段及其规避方法(一)-IsDebuggerPresent

2018-5-4 17:48
24151

软件中会使用各种手段防止Craker调试程序,为此我们必须了解常见的反调试技术的原理及规避方法。

调试器:OllyDbg

环境:win7 64位真机

首先我们打开这个程序,是可以正常打开的


使用OD载入目标程序,点击F9运行,左上角一开始是显示“暂停”,F9以后变为显示:已终止。也没弹窗,直接终止了。换言之用户打开就能正常运行,用调试器打开就会自动退出。为什么呢?

因为有IsDebuggerPresent函数在检测调试器,如果检测到正在调试就会退出。如何证实呢 你可以直接bp IsDebuggerPresent,发现确实能断下;也可以打开函数列表,或者按下ctrl+n查看,发现的确有这个函数。

确定用户是否在用调试器,是的话返回非零值。返回0就表示没有被调试。

在段首下断,断下,Ctrl+f9执行到段尾,大部分函数的返回值基本上都在eax里,此时EAX非零


看到,第二行执行了IsDebuggerPresent,之后第5行跳过了后面的获取文本框里的消息GetDlgItem,换言之是跳过了程序的正常的执行顺序。

执行关键跳后即将执行postquitmessage提交/发送退出信息,看来程序马上就要退出了。如下图


然后执行会执行ExitProcess,程序退出。那么这个IsDebuggerPresent究竟执行了什么呢

Mov eax,dword ptr fs:[18]

Mov eax,dword ptr ds:[eax+30]

Movz eax byte ptr ds:[eax+2]


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2018-5-6 11:18 被r0Cat编辑 ,原因:
收藏
免费 7
支持
分享
最新回复 (16)
雪    币: 7135
活跃值: (4075)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
GOOD......
2018-5-4 22:39
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习了
2018-5-17 10:17
0
雪    币: 2694
活跃值: (80)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
2018-5-18 00:10
0
雪    币: 120
活跃值: (1597)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
good,内容不错
2018-5-25 00:08
0
雪    币: 3676
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
老师好,我等小白也能看的明白。谢谢老师
2019-1-7 23:00
0
雪    币: 192
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
可是。。。插件呢大哥
2019-2-1 16:48
0
雪    币: 5734
活跃值: (1737)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
噗 这个就是peb里的标志位
2019-2-2 12:58
0
雪    币: 83
活跃值: (1087)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
9
反调试 看雪文章太多了 建议参考一下 
2019-2-11 08:55
0
雪    币: 8715
活跃值: (8619)
能力值: ( LV13,RANK:570 )
在线值:
发帖
回帖
粉丝
10
killpy 反调试 看雪文章太多了 建议参考一下
是的,的确是
2019-2-13 14:46
0
雪    币: 9251
活跃值: (1640)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
11
不错不错啊,感谢分享…
2019-2-14 08:47
0
雪    币: 861
活跃值: (683)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
12
fs:[18] 是TEB,在内核中也有一个数据结构叫ETHREAD,在TEB结构偏移0x30处保存有PEB的地址,这个PEB结构中有2处可以标记调试位,第一个就是楼主说的PEB偏移0x2的DeingDebugged位,当此位置值是1说明被调试;还有一个是偏移0x68处的NtGlobalFlag,,值为0x70时说明被调试
2019-5-7 14:16
0
雪    币: 463
活跃值: (2711)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
13
学习了
2019-7-6 19:11
0
雪    币: 14541
活跃值: (17589)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
14
mark,楼主辛苦了
2019-7-6 20:02
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
插件在哪里下啊,大佬
2020-4-3 22:14
0
雪    币: 244
活跃值: (174)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
把代码拷贝进来弄的方法确实之前没遇到过
2021-7-9 17:34
0
雪    币: 4251
活跃值: (6286)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
谢谢分享
2022-4-9 13:29
0
游客
登录 | 注册 方可回帖
返回
//