luketowne

基于源码的免杀

3.6源码出来这么久了.在网上搜一下,几乎见不到可以用的动画或者教程,估计大家都想留着技术换钱吧.这里提供大家一个我自己的源码免杀方法,希望能起到抛砖的作用,毕竟源码的免杀
是丰富多彩的,希望高手别笑我

源码的解锁:这里不多说了,有动画教程,改版权之前最好看看,不然硬盘出事了别找别人(已经有很多例子了)

SYS文件的免杀:一样有教程,大体思路是用advanced find and replace替换SYS源码中的RESSDT为其他任意等长度字符串达到免杀效果,自己看看动画就懂的

这里主要说说DLL文件的源码免杀过程(免杀好DLL之后,生成的EXE也没几个特征码了,随便改改就过了)

首先,要了解编译中MAP的利用:
   第一步设置VC编译环境生成Map文件。
在 VC 中,点击菜单“Project -> Settings”选项页(或按下 Alt+F7),选择 C/C++ 选项卡,并在最下面的 Project Options 里面输入:/Zd ,然后要点击 Link 选项卡,选中“Generate mapfile”复选框,并在最下面的 Project Options 里面输入:/mapinfo:lines,表示生成 MAP 文件时,加入行信息。
设置完成。
   第二步编译VC工程,设置活动工程编译即可,这个不用说明。这个步骤完成后,在release(或debug)目录,多了一个.map文件(比如svchost.map)。
   第三步打开map文件(用UE或文本编辑器打开都行),形式如下:



我用MYCCL定位DLL的瑞星主要特征码为00014ba8和00014bbb(还有4个特征码在源码免杀了这两个之后都过了),定在了DLL的输出表的SERVICEMAIN和RESETSSDT上面.
我们在生成的.MAP文件中找跟这两个地址接近的项,如图:



00014BA8和00014BBB正好是在图中00014AC0和00014BE0之间,对应的是源码里的一个IOCPSERVER.OBJ,这样我们就通过MAP文件把特征码和源码联系起来了,通过修改源码来
达到免杀特征码的目的

打开GH0ST源码,点击CLASSES VIEW>>>>GH0ST CLASSES>>>>>CIOCPSERVER,来到如图位置:



COICPSERVER好像是一个跟WINSOCK有关的东西,这里汇编高手可以直接通过修改代码达到免杀,而我则加了一个无意义代码达到相同的效果(水平问题),如图:




这样,这处源码免杀就OK了.不过要想达到到更好的免杀效果,我们还需要手动在输出表里面添加几个空函数,点击FILE VIEW>>>>GHOST FILES>>>>SVCHOST.CPP来到如图位置



看到SERVICEMAIN和RESETSSDT没有,这里,我手动添加了一个新函数,函数名任意,我取了个"FUCKRUIXING".添加完后如图:



这样子空函数还没完全添加进去,我们还需要在后面加入一段说明这个函数的代码,如图:



这样,空函数添加完成了,保存一下.因为金山还杀GH0ST的GH0ST UPDATE字符串,我们利用advanced find and replace替换一下就OK了,道理同SYS的免杀
至于过360的源码修改方法,论坛里也有,这里不多说了,大家自己去找找

最后按F7编译出来丢到虚拟机里测试下,DLL和SYS过了卡巴,瑞星,金山和NOD32(虚拟机里只装了这几个常用的杀软),可以上线,功能没问题





关闭GH0ST再打开,两分钟之后正常上线,重启后,正常上线,该是没问题了

posted on 2009-03-05 15:51 露露 阅读(1456) 评论(0)  编辑 收藏 引用