|

编号为1的结果显示是从偏移0000开始替换的,在我的机器上这个结果不用考虑,因为卡巴斯基软件对于没有PE头的文件是不进行特征码检测的,文件1中恰好是PE头被替换了,自然就不会被删除。(据说别的杀毒软件,比如Norton,不管有没有PE文件头都会进行特征码检测,具体情况要具体分析。)因此初步确定特征码在编号2的文件所表示的范围内,既0x2DC2到0x44A3之间的0x16E1个字节的范围内。0 u1 A" V# J& h3 q; @
重新设置参数为自动,读入原文件,在“用户输入区”直接输入起始位置2DC2和检测大小16E1,不填充0,然后点击添加区段,确定后进入操作窗口。打开监测,单击GO,开始自动检测,操作方法和检测winshell时一样。又经过一番对鼠标右键的折磨,终于得出了结果:3 k4 n" R3 X A* ~0 a, r
-------------定位结果------------
$ K4 d. N! n9 q+ L2 E 序号 起始偏移 大小 结束偏移" `; P s/ Y: }9 Z% U& r
0001 000031C6 00000016 000031DC + n1 \/ v) k- g3 U0 u
0002 00003A16 0000002C 00003A42
1 j# U3 S% }7 d, y8 T" G, ]# P5 N 0003 00003A44 0000002C 00003A70 7 s% k+ l! @4 T$ ^6 h
0004 00003A71 0000002C 00003A9D # B8 T4 {3 l/ Q& F# {% e
0005 00003AA0 0000002C 00003ACC 1 U% V8 K4 D0 N) i/ C$ m2 S0 Z7 G
0006 00003ACD 0000002C 00003AF9
0 ^7 p. P+ P0 d f) g 哇,有6处耶!老规矩,柿子要挑软的捏,我们先来查看范围最小的0001项。OllyDbg打开原文件,找到0x004031C6处,看看是些什么。怎么回事?不是汇编指令啊!除了0就是几个毫无意义的数据。( H& z1 r$ ~/ i# X/ E& n
004031C6 00 db 007 |4 V+ d, a Q4 q
…
0 \! @7 L/ I7 d: w0 s" h004031D4 BA db BA
2 Y; m. }- p+ e, I1 Y i) |004031D5 DA db DA
; y8 E- ~! }1 I( }2 z004031D6 C9 db C9" \3 Q' ]6 e( p6 r6 r( w& ]
004031D7 E7 db E7/ W% t* w7 ~. R" a
004031D8 BB db BB
- I2 q! e5 u8 w/ t, z7 K004031D9 E1 db E1, B2 k8 x& ^" t/ X L
004031DA 00 db 00
6 R4 Y$ O5 K5 V2 e" Q# j5 {…& i9 A7 J! x+ w2 n; m0 y5 T
不是汇编指令,那可不可能是字符串呢?我们在命令行里打“dd 004031d4”,既显示0x004031d4处的内容,然后将数据窗口的显示方式改为“文本ASCII(32)”,随即左下角小窗口中显示出“黑社会”三个字,而且有三处。[见图7]原来“BADAC9E7BBE1”是这三个汉字的ASCII代码。难道杀毒软件就靠文件中的“黑社会”去识别黑社会? 
未了证明我们的想法,我们用32位编辑工具UltraEdit打开原文件,搜索“黑社会”三个字,一共找到了7处。干脆,一不做二不休,我们将7处“黑社 会”全部替换为“白晶晶”。[见图8] 3 H$ I! }" |/ h( f0 q! ]7 ^7 U, k
保存一下,再用杀毒软件检测。我靠,果然认不出来了!黑社会2.0的特征码就这样被我们搞定了,真是得来全不费工夫啊,竟然是直接用汉字作为特征码!运行一下修改过的文件,挺好使,就是“关于”窗口上的标题从“黑社会”变成“白晶晶”了,呵呵! 9 U4 `( a9 S, T7 V
六、 关于多处特征码的一点补充
( J1 y+ u7 P3 H( }. N8 V8 z; T前面两个实战中,我们虽然定位出了多处特征码,但只修改其中一处就可以了,这种情况不一定适用于所有的程序。根据笔者经验,特征码可能有主副之分。主特征码被修改,则无论副特征码是否存在,文件均可以逃过追杀;但如果只修改副特征码,而不修改主特征码,则文件始终会被杀毒软件辩认出来,只不过识别出的版本有所差别。所以,我们修改的目标重点是文件中的主要特征码。
9 V% t/ U: ~: E5 c3 p$ s七、 结语- L8 b( m5 @, N6 d Z& P
差不多了,我们来总结一下吧!
! h( g5 V% f' W- }7 H' T/ Y用CCL定位特征码时,手动替换和自动替换应该互补使用,没有一个方法是全能的。通常为用手动确定大范围,用自动精确定位小范围。定位成功后,看特征码的类型。如果是汇编指令,用“指令顺序调换法”或“万能跳转法”进行修改;如果是字符串等,在不影响原程序运行的情况下,替换掉既可。( U( H5 q4 V! K* ` ]$ Z5 L; \9 l
操作方法也很重要,操作过程中注意和杀毒软件的配合,多试几次,掌握不同杀毒软件的特点,合理设置等待时间和最小定位精度等参数。更重要的是,确保自动检测过程中,杀毒软件对生成文件进行了检测,适当加上点“刺激”(比如我的鼠标右键刺激大法)。8 e6 @* t* H, d3 Q& F+ E8 w9 {$ w
讲到这儿,相信你应该知道怎样打造自己的无敌黑器了吧! |