木马免杀原理与心得
[size=4][color=blue]因为驱动文件不能用OD载入给我们带来了很多麻烦,其实驱动文件和其他文件一样,只不过麻烦一点而已.1.首先用MultiCCL来定位特征码(不会的话看我前面写的帖子,和做动画),我这里是用的真实的数据,这里定的是卡巴的特征码,结果如下:
文件地址:00001269 00001289
2.用OC转一下,把文件地址转成内存地址.结果如下:
内存地址:00011269 00011289
3.因为不能用OD,所以我们用C32asm载入.选择文件-->打开十六进制文件-->打开PcHide.sys-->选择编辑-->跳转-->OFFSET:00001269-->右键单击-->选择对应汇编模式编辑-->这样我们就来到特征码的反汇编地方啦.
4.我们参看内存地址,把特征码Copy一下:
00011268: 8B55 F8 MOV EDX,[EBP-8]
0001126B: 52 PUSH EDX
0001126C: 8D45 C8 LEA EAX,[EBP-38]
0001126F: 50 PUSH EAX
00011270: 8B4D C4 MOV ECX,[EBP-3C]
00011273: 51 PUSH ECX
00011274: 8B55 C0 MOV EDX,[EBP-40]
00011277: 52 PUSH EDX
00011278: E8 73FEFFFF CALL 000110F0
0001127D: 6A 00 PUSH 0
0001127F: 8B45 FC MOV EAX,[EBP-4]
00011282: 50 PUSH EAX
00011283: FF15 00030100 CALL [10300]
00011289: 6A 00 PUSH 0
这里插一句,有兄弟说MyCCL和MultiCCL有什么区别呢?这里如果你选用MyCCL可能定位的结果是:
00011268: 8B55 F8 MOV EDX,[EBP-8],就这么一句或两句,代码很短,有的时候碰上CALL,
JMP,IN,OUT啦,没法改的!不过用MultiCCL就不一样了.为什么会是这样?请你参看我写的"木马免杀原理与心得(一)"上面写的很详细啦!回过头来,继续看我们的代码~
0001127D: 6A 00 PUSH 0
0001127F: 8B45 FC MOV EAX,[EBP-4]
注意看这两句,第一句是往堆栈里压入0,第二句是把DS:[EBP-4]中的数据转移到EAX中,这两句没什么影响,可以交换指令顺序!改之
5.驱动文件校验
为什么要校验?如果你不校验一下,驱动就不好使~~用PeEdit打开改过的PcHide.sys文件,选择校验和,点修改,然后就哦了.
6.最后测试一下,看看免不免杀,用冰刃载入一下,看驱动正不正常.完[/color][/size]
页:
[1]