首页
社区
课程
招聘
[原创][[[给大家看看我使用的前无古人,后无来者的反调试方法]]]
发表于: 2013-9-1 14:11 24999

[原创][[[给大家看看我使用的前无古人,后无来者的反调试方法]]]

2013-9-1 14:11
24999
前言:本反调试方法不同于以往的反调试方法。
    以往的反调试均以摧残调试人员的意志为基本点,目前比较强大的 VMP 与 TMD 之类的也是运用这种方法,这种方法的弊端就是对于意志坚强、好奇心强或者抖 M(就是你给他一巴掌他还发自内心感觉到爽的这一种人)来说,是无效的。目前均能有破解 VMP,TMD 的牛○人士,也证明了这种反调试的瓶颈。本文介绍的反调试方法均是以前其他人没有使用过的、不同于常理的、非常有效的另类反调试方法。这些反调试方法充分体现了以人为......,不透剧了,往下看你就清楚了!

方法一:心理摧残法(Heart Break)/ 跳跃消息(Jump Message)
    此方法对于那些心灵脆弱的人尤为有效,具体方法也很简单:

00401000 | EB 12           JMP SHORT 00401014
00401002 | 46 75 63 ..     ASCII "Fuck your sister"
00401012 | 2E 00           ASCII ".",0
00401014 | B8 02104000     MOV EAX,00401002
00401019 | C3              RETN


    在调试人员的必经之路上加一个 Jump 指令,然后空出的地方你就可以写上一些能够刺痛调试着心灵的并且他能看得懂的话语。俗话说的好:“人生不如意之事十有八九”,你绝对能找到他心灵上的弱点,用你学过的语文上的知识写出一段话,深深刺痛他的心灵。调试含有本反调试技术的程序的人轻则痛哭流涕,重则自杀身亡(到时候别把我供出来),效果非同凡响!

方法二:挑逗法(Come on baby)/ 空函数法(Empty Function)
    当你进入一个 Call,发现里面只有 Retn 指令时,你会是什么样的心情?

00401000 | C3                RETN
00401001 | CC                INT3
..........................................
00401010 | E8 EBFFFFFF       CALL 00401000
00401015 | E8 BE010000       CALL 004011D8
0040101A | 33C0              XOR EAX,EAX
0040101C | C3                RETN


    你可以自己写一个程序,向 PE 文件里面写入很多很多这样的空函数,使得调试者不清楚哪些函数里面有内容,哪些函数里面是空的。本反调试方法可以极大地摧残调试者进入 Call 的欲望,重者可能会产生 Call 恐惧症。

方法三:无聊透顶法(Not Interesting)/ 大量跳转法(Multi-Jump)
    本方法在一处地方大量使用跳转指令,就是像下面这种样子就可以了(给人一种想跳就跳,不想跳就退出的感觉):

00401000 | EB 1A         JMP SHORT 0040101C
00401002 | EB 1A         JMP SHORT 0040101E
00401004 | EB 06         JMP SHORT 0040100C
00401006 | EB 0A         JMP SHORT 00401012
00401008 | EB 1E         JMP SHORT 00401028
0040100A | EB F6         JMP SHORT 00401002
0040100C | EB 14         JMP SHORT 00401022
0040100E | EB F8         JMP SHORT 00401008
00401010 | EB F2         JMP SHORT 00401004
00401012 | EB FA         JMP SHORT 0040100E
00401014 | EB 0E         JMP SHORT 00401024
00401016 | EB 08         JMP SHORT 00401020
00401018 | EB F6         JMP SHORT 00401010
0040101A | EB FA         JMP SHORT 00401016
0040101C | EB F6         JMP SHORT 00401014
0040101E | EB 06         JMP SHORT 00401026
00401020 | EB E4         JMP SHORT 00401006
00401022 | EB E6         JMP SHORT 0040100A
00401024 | EB F4         JMP SHORT 0040101A
00401026 | EB 02         JMP SHORT 0040102A
00401028 | EB EE         JMP SHORT 00401018


    这种方法比较强大,单步步过的能使人反胃,比较厉害的人还可以使用 Call/Pop、Push/Retn、JB(<-JNAE) 等指令进行跳转。本反调试适合对付那种兴趣浓厚的人,能使他们兴冷淡,最终放弃对程序的分析!

方法四:血液流尽法(No More Blood)/ 萌杀法(Moe-Kill)
    这种方法适用于在发现调试器后,弹出一个对话框,对话框上绘制一幅非常萌的图片:



    等调试人员看到这个之后,鼻血连绵,最终会导致全身血液供氧不足而付出生命的代价。其实你还可以把这个换成吓死人的图片,普通的人在没有心理准备的情况下基本上结果都是会去医院的。调试人员还可能把胆吓破,这是一个极其凶残的反调试,慎用!

方法五:震瞎狗耳法(Ear Destruct)/ 音乐卡带法(Music Cut)
    调试过游戏的人大多数都经历过,一旦用调试器断下播放音乐的线程(不是音效),一般情况下游戏的 BGM 就会像卡带一样,人听了非常不爽。你可以在你程序需要执行秘密代码的线程里加上播放音乐的代码(记住,要用 DirectSound,并且不要一次就把音频数据全部写入 Buffer)。一旦有人调试,断下那个线程,嘿嘿,耳膜时刻受到卡带声音的摧残,大脑嗡嗡作响,最后绝对会把显示器扔到窗外。不过这种反调试方法有一个非常致命的弱点就是调试者可以关掉音响……

    如果大家看了上面的方法,说这些是小儿科、无稽之谈、卖萌取宠,并且会质疑 LZ 为什么从碗里跑出来放弃治疗,那么,下面的终极反调试(Ultimate Anti-Debug)方法会让你彻头彻尾地改变对本文的看法!

终极方法:不良引导(Missing Target)/ 色○攻击(Sex Attack)
    食、色性也,如果调试人员看到了有比调试程序更诱人的东西又会怎么做呢?
    (下面的其实是正常视频,别删,不信你就看看,我大 Bilibili 的)

00401485 | E8 ED280000     CALL 00403D77
0040148A | E9 95FEFFFF     JMP 00401324
0040148F | E9 5C690000     JMP 00407DF0
00401494 | 53 65 78 ..     ASCII "SexVideo:http://"
004014A4 | 77 77 77 ..     ASCII "www.bilibili.tv/"
004014B4 | 76 69 64 ..     ASCII "video/av294254/",0


    这种信息写在入口点效果更为明显,因为在调试器中一般(不排除 TLS)程序是断在 OEP 的,然后你就可以在 OEP 的上面或者下面写一些不良的、○秽○情信息或者是网站。其实你也完全可以将整个程序中都加入大量这样的信息。调试带这种反调试程序的人,没有定力的、或者被汇编代码消磨完定力的,基本上都会忍不住的!慢慢地,调试着表情会变得猥琐,行为会变得龌龊,肾功能也会渐渐衰竭,最终○尽人亡!英雄难过美人关,此招一出,谁与争锋!!!!

------------------------------------------------------------------------

    怎么样,上面的技术简单而又厉害吧!其实像这样厉害的技术还有很多,大家慢慢发掘吧!

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (84)
雪    币: 45
活跃值: (55)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
这... 加精吧
2013-9-1 14:17
0
雪    币: 41
活跃值: (197)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

无力吐槽
2013-9-1 14:27
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
LZ你赢了
2013-9-1 14:40
0
雪    币: 1392
活跃值: (5177)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
5
楼主 带我一起。。。摧残我吧,拘束椅子,鞭打滴蜡 灌肠一起来吧
2013-9-1 14:43
0
雪    币: 49
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
个人感觉这个都是小伎俩,放在IDA中,一眼就看出,花这么多心思反调试不如看看加密,无力吐槽
2013-9-1 14:45
0
雪    币: 219
活跃值: (783)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
7
我笑了o_O
2013-9-1 14:50
0
雪    币: 602
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
......0oO
2013-9-1 14:53
0
雪    币: 65
活跃值: (60)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
IDA 的弱点我倒是知道一个,那就是指令重叠,一旦出现指令重叠,IDA 连流程图都画不出来了,给你一个例子,注意下面的反汇编代码其实是一个函数,不是两个函数:

00401090 | 55            PUSH EBP
00401091 | 8BEC          MOV EBP,ESP
00401093 | 8B4D 08       MOV ECX,DWORD PTR SS:[EBP+8]
00401096 | 85C9          TEST ECX,ECX
00401098 | 74 01         JE SHORT 0040109B
0040109A | B8 8BFF33C0   MOV EAX,C033FF8B
0040109F | 5D            POP EBP
004010A0 | C2 0400       RETN 4


00401090 | 55            PUSH EBP
00401091 | 8BEC          MOV EBP,ESP
00401093 | 8B4D 08       MOV ECX,DWORD PTR SS:[EBP+8]
00401096 | 85C9          TEST ECX,ECX
00401098 | 74 01         JE SHORT 0040109B
0040109A | B8            DB B8
0040109B | 8BFF          MOV EDI,EDI
0040109D | 33C0          XOR EAX,EAX
0040109F | 5D            POP EBP
004010A0 | C2 0400       RETN 4
2013-9-1 15:01
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
虽然我不认为LZ的方法有效,但非常有意思。
2013-9-1 15:39
0
雪    币: 112
活跃值: (57)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
11
激怒调试者不是好方法.
不是有句话 "不怕贼偷, 就怕贼惦记".
2013-9-1 15:40
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我能不能回答的
2013-9-1 15:45
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
强大得无以复加~~必须试试 lz的方法
2013-9-1 15:57
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这个,挺有意思的
2013-9-1 15:58
0
雪    币: 117
活跃值: (1557)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
楼主太给力了 对付我这种菜鸟,足矣1
2013-9-1 16:06
0
雪    币: 180
活跃值: (80)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
16
上述办法对我无效!
2013-9-1 16:08
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kvm
17
说啥好呢  真是无力吐槽了
2013-9-1 16:22
0
雪    币: 129
活跃值: (2768)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
看完我跪了
2013-9-1 16:35
0
雪    币: 104
活跃值: (27)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
19
真心服了
2013-9-1 17:07
0
雪    币: 211
活跃值: (118)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
LZ ,地球已经无法容纳你了,。。。
2013-9-1 17:49
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
lz的方法属于社会工程学范畴!
2013-9-1 18:03
0
雪    币: 2835
活跃值: (2643)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
22
给跪了123456
2013-9-1 18:04
0
雪    币: 135
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
前几招对我基本没什么影响  直接跪倒在最后一招。
2013-9-1 18:07
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
24
LZ很天真,这思路就跟VMP代码膨胀,加垃圾指令花指令一样的
另外,无效的垃圾花指令多到一定程度时,某些自动脱壳压缩脚本就会派上用场
无需手工处理,所以LZ的这些心理摧残法,无聊透顶法...之类的,毫无意义
人家也没必要在这上面浪费时间...
2013-9-1 18:11
0
雪    币: 81
活跃值: (100)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
启发式反汇编不怕这个的吧

另外是送你4个字 哗众取宠
2013-9-1 18:13
0
游客
登录 | 注册 方可回帖
返回
//