博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
源码免杀处理的技巧与tips
阅读量:5950 次
发布时间:2019-06-19

本文共 1158 字,大约阅读时间需要 3 分钟。

hot3.png

首先,要了解编译中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或文本编辑器打开都行),形式如下:

12132428_lF0W.jpg

用MYCCL定位DLL的瑞星主要特征码为00014ba8和00014bbb(还有4个特征码在源码免杀了这两个之后都过了),定在了DLL的输出表的SERVICEMAIN和RESETSSDT上面.

我们在生成的.MAP文件中找跟这两个地址接近的项,如图:

12132428_KvJw.jpg

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

达到免杀特征码的目的
打开GH0ST源码,点击CLASSES VIEW>>>>GH0ST CLASSES>>>>>CIOCPSERVER,来到如图位置:

12132428_nfMZ.jpg

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

12132428_ohSU.jpg

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

12132428_9r92.jpg

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

12132429_wMTV.jpg

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

12132429_M1IM.jpg

这样,空函数添加完成了,保存一下.因为金山还杀GH0ST的GH0ST UPDATE字符串,我们利用advanced find and replace替换一下就OK了,道理同SYS的免杀

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

转载于:https://my.oschina.net/rookier/blog/399159

你可能感兴趣的文章
SQLServer系统变量使用
查看>>
不同服务器数据库之间的数据操作
查看>>
SQL删除重复数据只保留一条
查看>>
ssm框架搭建(转)
查看>>
C#委托及事件
查看>>
【教你解决Win系统盘渐渐变小的问题】
查看>>
js中arguments
查看>>
通过HttpClient来调用Web Api接口,实体参数的传递
查看>>
js常用加解密函数汇总
查看>>
HTTP协议学习笔记(二)
查看>>
MySQL之存储过程.触发器学习整理
查看>>
c#记录代码运行的耗时。
查看>>
angularJS1笔记-(20)-模块化加载机制seajs
查看>>
spark mapPartition方法与map方法的区别
查看>>
第三章 表单
查看>>
解析Unicode转义序列带来的问题
查看>>
ubuntu开启ROOT用户自动登录教程
查看>>
socket通信
查看>>
wp学习站点
查看>>
让backspace键默认为删除键
查看>>