首页
社区
课程
招聘
[原创]用IDAPython实现的反反调试小脚本
发表于: 2018-5-24 18:19 15136

[原创]用IDAPython实现的反反调试小脚本

2018-5-24 18:19
15136

加一个github地址DBGHider,里面加了inline hook。

许多人喜欢用IDA进行静态分析,用OllyDbg进行动态分析,似乎很少人喜欢使用IDA进行调试。然而我这个菜鸟不会用OD,所以没有体会它的强大之处,我更喜欢用IDA的调试器。

IDA的调试器功能也很强大。

由于IDA 7.x更改的SDK的API,就带来了一个很尴尬的事情,没有使用于IDA 7.x的反反调试插件,所以利用空闲时间写了一个小脚本,实现了对部分反调试方法的绕过。

就我个人的理解,反调试的方法可大致分为以下3类:

在IDAPython中,可以通过idaapi.DBG_Hooks类挂钩调试器的行为,进行一些操作。利用DBG_Hooks可以挂钩程序的开始,退出,加载dll,卸载dll等操作。具体挂钩点可以参考下面的Python脚本,这个脚本取自https://github.com/idapython/src。

脚本实现的方式是,对于PEB->BeingDebugged类的反调试方法,可以利用dbg_process_start函数,在进程建立之初就清楚掉BeingDebugged,也一举解决了NtGlobalFlag等标志。对于函数调用类反调试,在程序的入口点处,给相应函数的入口下断点来Hook函数,更改函数行为。对于触发异常类反调试,不用脚本处理,更改调试器的设置即可。

目前实现的功能有:

由于IDA的改动,此脚本只适用于IDA 7.x

实现的脚本如下:

使用了ScyllaHide中的ScyllaTest_x86.exe看雪.TSRC 2017CTF秋季赛中的第三题CrackMe做了测试,结果如下。

ScyllaTest_x86.exe

CrackMe,其特点是用了很多反调试手段,但是由于作者的失误,导致出现了多解,并且其中一个解还会在调试过程中以明文的形式作为memcmp的参数。


测试Crackme时对异常的设置

反调试的方法很多,一个脚本肯定是解决不完的,只有搞清楚了反调试原理才能更好的对付反调试。写这个小脚本,是为了学习windows平台下各种反调试技术,同时学习一下IDAPython

 
 
 
 
 

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2018-6-19 15:48 被iweizime编辑 ,原因:
收藏
免费 5
支持
分享
最新回复 (15)
雪    币: 2694
活跃值: (80)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
2
2018-5-25 08:26
0
雪    币: 375
活跃值: (186)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
牛人,支持
2018-5-25 09:11
0
雪    币: 8093
活跃值: (1930)
能力值: ( LV8,RANK:122 )
在线值:
发帖
回帖
粉丝
4
2018-5-25 11:26
0
雪    币: 3549
活跃值: (941)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
2018-5-25 12:49
0
雪    币: 8772
活跃值: (4968)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jgs
6
2018-7-28 21:11
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
厉害了,这个脚本
2018-7-28 21:42
0
雪    币: 228
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
厉害
2018-8-9 10:31
0
雪    币: 48
活跃值: (248)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
大佬有没有学习IDAPython的资料分享一下啊
2019-1-24 14:35
0
雪    币: 930
活跃值: (1328)
能力值: ( LV15,RANK:750 )
在线值:
发帖
回帖
粉丝
10
一生热爱 大佬有没有学习IDAPython的资料分享一下啊
https://leanpub.com/IDAPython-Book 免费的电子书
2019-1-24 21:39
0
雪    币: 48
活跃值: (248)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
iweizime https://leanpub.com/IDAPython-Book 免费的电子书
嘤嘤嘤
2019-2-14 16:16
0
雪    币: 1759
活跃值: (2334)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
12
请问大佬用的哪个版本的IDA?
2020-3-11 20:30
0
雪    币: 930
活跃值: (1328)
能力值: ( LV15,RANK:750 )
在线值:
发帖
回帖
粉丝
13
又见飞刀z 请问大佬用的哪个版本的IDA?[em_13]
7.x 版本,可能是7.1
2020-3-17 22:45
0
雪    币: 83
活跃值: (1087)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
14
2020-3-18 05:07
0
雪    币: 10
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
7.0版本可以么
2020-4-19 11:06
0
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
可以的
2020-4-20 21:41
0
游客
登录 | 注册 方可回帖
返回
//