远控软件gh0st源码免杀2010-12-13 14:57远控软件gh0st3.6开源了,开源意味

着我们可以在此基础上进行二次开发,同时也意味着杀软可以较容易的查杀该款

远控***,既然要利用,我们就做好源码基础上的***免杀工作。

好久没有来博客了,我把免杀这部分整理了一下,先抛一砖头,有兴趣的朋友可

以接着做,也可以和本人交流。

gh0st远控软件采用驱动级RESSDT过主动,svchost参数启动,替换系统服务的方

式工作的,工作方式较为先进,美中不足的部分是没有进行驱动级或用户级隐藏

,当然这部分可以添加进去。编码利用了VC的编程环境。

一、环境配置

编译环境一定要配置好:DDK+SDK+VC6,DDK用来编译sys文件的,SDK+VC6是用来

编译工程的,配置部分比较简单,网上有很多资料,这里不再详述,有兴趣的朋

友也可以查看DDK和SDK的相关帮助。

二、特征码定位简述

杀毒软件查杀***的原理基本是根据特征查杀的,被查杀的部分我们称之为特征

码,所以我们可以利用特征码定位工具MyCLL定位出病毒的特征码位置,定位工

具原理是将被扫描***分块,利用分段填充的方式,匹配杀软的特征值,找到杀

软查杀病毒的位置。

定位出特征码,如何反向找到源码中的对应位置呢?请看下面分析,

三、二进制文件与源码定位之map文件利用

map文件是二进制和源码之间对应的一个映射文件。

我们假设根据第三步我们定位出了病毒的特征码:

病毒名称 特征码位置 内存地址

svchost.dll 000038AA_00000002 100044AA

svchost.dll 00005F98_00000002

第一步设置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或文本编辑器打开都行),形式如下:

(begin)

Timestamp is 488fcef2 (Wed Jul 30 10:16:18 2008)

Preferred load address is 10000000

---------------------------------------------------------------------

------1----(为方便说明,wrw添加)

Start Length Name Class

0001:00000000 00010a50H .text CODE

0001:00010a50 00000485H .text$x CODE

0002:00000000 000004c8H .idata$5 DATA

......

0003:00000010 00000004H .CRT$XIZ DATA

0003:00000020 00001a50H .data DATA

0003:00001a70 00000688H .bss DATA

0004:00000000 000000a8H .rsrc$01 DATA

0004:000000b0 00000cf0H .rsrc$02 DATA

---------------------------------------------------------------------

-------2---(为方便说明,wrw添加)

Address Publics by Value Rva+Base Lib:Object

0001:00000000 ??0CAudio@@QAE@XZ 10001000 f Audio.obj

0001:000000d0 ??_GCAudio@@UAEPAXI@Z 100010d0 f i Audio.obj

0001:000000d0 ??_ECAudio@@UAEPAXI@Z 100010d0 f i Audio.obj

0001:000000f0 ??1CAudio@@UAE@XZ 100010f0 f Audio.obj

0001:000001e0 ?getRecordBuffer@CAudio@@QAEPAEPAK@Z 100011e0 f

Audio.obj

0001:00000240 ?playBuffer@CAudio@@QAE_NPAEK@Z 10001240 f Audio.obj

0001:000002c0 ?InitializeWaveIn@CAudio@@AAE_NXZ 100012c0 f Audio.obj

......

0001:00003310 ?SendToken@CFileManager@@AAEHE@Z 10004310 f

FileManager.obj

0001:00003320 ?UploadToRemote@CFileManager@@AAE_NPAE@Z 10004320 f

FileManager.obj

0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f

FileManager.obj

0001:00003670 ?StopTransfer@CFileManager@@AAEXXZ 10004670 f

FileManager.obj

......

---------------------------------------------------------------------

-------3---(为方便说明,wrw添加)

Line numbers for .\Release\FileManager.obj

(E:\vtmp\gh0st3src\Server\svchost\common\FileManager.cpp) segment

.text

17 0001:00002630 20 0001:0000267f 21 0001:00002698 24 0001:000026d0

25 0001:000026f8 26 0001:0000273c 29 0001:000027d0 33 0001:000027ee

77 0001:000027f8 36 0001:000027fb 37 0001:00002803 77 0001:0000280d

......

532 0001:0000340f 534 0001:00003414 537 0001:00003428 540

0001:00003440

546 0001:0000345d 547 0001:00003487 548 0001:00003490 549

0001:00003492

551 0001:0000349e 552 0001:000034b8 553 0001:000034cb 554

0001:000034d4

558 0001:000034de 560 0001:000034e9 563 0001:000034ee 564

0001:00003506

......

(end)

我们看下,定位svchost.dll 的第一个特征码内存地址为:100044AA,在第2块

中,我们可以找到RVA+BASE与之很接近的是

FileManager.obj

这样我们可以定位到FileManager.cpp中的FixedUploadList函数,是不是范围缩

小了?

下面我们再缩小代码行

利用这个公式:特征码行偏移 = 特征码地址(Crash Address)- 基地址

(ImageBase Address)- 0x1000

看起来好像很难,其实很简单,我们将100044AA去掉内存基址10000000,再减

1000,因为PE很多从1000开始,可以得到代码偏移地址为34AA。到第3块中找对

应的代码行。

偏移地址34AA在(551 0001:0000349e 552 0001:000034b8 )中间,也就是551

行和552行中间,我们到源程序中查找第551行:

wsprintf(lpszFilter, "%s%s*.*", lpPathName, lpszSlash);

这样就定位出源代码了,要怎么修改就怎么修改它就可以了。

四、实战免杀

A、卡巴免杀

首次编译后,先做卡巴的免杀。卡巴杀sys文件和dll,当然也就杀包装它们的

install.exe,最后卡巴还杀生成的sever,我这里说杀生成好的server不是和前

面的特征码重叠的地方,而是杀配置信息。

第一步、sys免杀

sys重新编译后,增加了输入表的函数,同时系统不同,造成很多地方不同于原

特征,顺利通过卡巴、金山、小红伞等杀软。

第二步、svchost.dll免杀

特征码定位MultiByteToWideChar和"gh0st update"两个位置。这里是通过第3步

map文件得出的。

卡巴怕加花指令, 这个函数MultiByteToWideChar的调用上,可以在这个函数前

面随便加几句无效语句就可以通过卡巴杀软。

字符串调用"gh0st update" ,这个是用于更新用的 ,如果不要在线更新,直接

把这个语句所在代码块删除;嘿嘿,其实搜索工程替换这个字符串为其他的字符

串就可以了^_^,这个方法同时可以过金山杀软。

第三步、server免杀

卡巴定位在最后的配置信息,采取跳转显然是不行的,采用加花的办法,在写入

AAAAAA配置信息之前,随便写些东西,就可以做server免杀。

卡巴免杀完成!

B、Avast免杀

最新的avast杀软再查杀1下,杀install.exe和svchost.dll(也就是杀生成的文

件和其中的资源文件),接着做它的源码免杀。

定位在特征字符串%02d/%02d/%02d和“SYSTEM\CurrentControlSet\Services\%s

”两个地方。

解决方案:

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函数,修改大小写,编译即可通过免杀。

五、添加垃圾代码的小方法

垃圾代码要移动特征码所在的位置,不要跑到堆栈中了,这样的代码没有用。可

以采取添加for循环,做计数,简单统计,采用局部变量,不改变后面的逻辑为

宜。

添加输出表的方法:

有杀输出表的,可以在生成的svchost.dll上添加空函数 ,但是每次编译都要修

改1次资源 ,其实我们在源码上添加如下语句:

extern "C" __declspec(dllexport) bool JustTempFun();//声明

……

extern "C" __declspec(dllexport) bool JustTempFun() //实现

{

return false;

}

编译后,输出表就被改变了,有的杀软就可做到代码免杀。

六、gh0st自动生成6to4ex.dll的修改

看到好多站友提问自动生成6to4ex.dll的问题,有热心站友也提出了自己的见解

,我感觉有些人提出的解决方案不完全正确,有可能造成刚入手人误解,我根据

自己的理解说明1下。

gh0st服务端是通svchost -netsvcs启动的,所以程序要利用netsvcs 服务,服

务端也就是根据netsvcs生成的,故不能说服务端生成是随机的,相对于大多数

系统来讲,基本是固定的,下面看分析。

查看install.cpp里面的InstallService()方法,首先遍历

HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows

NT\CurrentVersion\Svchost中的服务项,查找到一个服务后,程序采取替换服

务的方法,将原服务删除,然后生成对应服务项+ ex.dll的文件替换原服务,

6to4服务一般排在第一位,6to4服务是一种自动构造隧道的方式,作用在于只需

要一个全球惟一的IPv4地址便可使得整个站点获得IPv6 的连接,这个服务对一

般人来讲,基本闲置,所以我们的程序就把6to4服务给替换掉,同时在

windows\system32\目录下生成 6to4ex.dll,以后启动就是6to4ex了,如果把这

个服务跳过去,就依次向下生成Ias、Iprip等服务啦,如果netsvcs项没有可以

替换的服务,则程序将自己添加1个服务,名称就是由 AddsvchostService()方

法产生的netsvcs_0x%d。

这样说不知道关心服务名称的明白了不?

这个不能说是技术问题,但是小技巧问题可以从这里产生,我不知道其他人的

360是怎么过的,但是我觉得可以提示1下的是,如果是360默认系统安全的服务

,它肯定不会报不安全,替换闲置的系统安全的服务则通过360的效果要好的多

by: 绝版敍 少            QQ:374278152                       网址:90cangying.jobidc.com

c语言免杀程序源码,ghost源码免杀教程 步相关推荐

  1. linux是否有免安装程序,在线Ubuntu Linux系统,免安装体验Linux系统

    如果你觉得安装Linux系统有困难,又或者你只想体验一下Linux系统是什么样的,有没有这样的好事?我可以肯定的回答你,有的,今天为你介绍在线Ubuntu Linux系统,你只需要点击Ubuntu在线 ...

  2. 利用C语言编辑画图程序的实现方法

    不知道大家在进行开发县级电网调度自动化系统的时候,是否都会遇到一个问题就是:要绘制一个电力系统一次接线图.大家都应该知道其实电力系统的一次接线图是较为复杂的,如果想要使用一般的编程方法来进行绘制的话, ...

  3. c语言免杀程序源码,Window下基于C/C++源码免杀理论及思路(新手篇)

    作者:冷锋(LengF) [BHST] 博客:www.81sec.com      时间:2011-5-22 0x00 概述 最近搞一个国外的网站,对方是用的赛门铁克的诺顿杀毒软件,而内网又只对外开放 ...

  4. m3u8云切片程序PHP视频切片转码系统易语言源码(支持添加视频水印)

    文章目录 前言 一.m3u8云切片程序PHP视频切片转码系统易语言源码(支持添加视频水印) 二.程序演示与下载 1.程序演示 2.程序下载 前言 这里就不过多赘述了,上篇文章对m3u8也做过介绍了,这 ...

  5. 易语言mysql数据同步程序_易语言mssql和mysql数据自动同步源码

    易语言mssql和mysql数据自动同步源码 易语言mssql和mysql数据自动同步源码 系统结构:RefreshTask,ComputeEndTime,ComputeOneTime,Compute ...

  6. C语言/C++基础之爱心程序源码(附源码)

    C语言/C++基础之爱心程序 程序之美 前言 主体 运行效果 代码实例 结束语 程序之美 前言 爱心是什么?爱心是能鼓起你生命风帆的激励.爱心是什么?爱心是雪中送炭式的资助.爱心是什么?爱心是抚慰你受 ...

  7. 实现tinyc语言的扫描程序_适合编程小白的C语言设计习题,实现自动发牌程序!源码分享!...

    C语言自动发牌程序,供大家参考,具体内容如下: 一副扑克有52张牌,打桥牌时应将牌分给4个人.请设计一个程序完成自动发牌的工作.要求:黑桃用S (Spaces)表示,红桃用H (Hearts)表示,方 ...

  8. C语言小游戏大全,C语言贪吃蛇小游戏(附源码)

    一.C语言小游戏大全,C语言贪吃蛇小游戏(附源码) 贪吃蛇小游戏源码和更多C语言课设项目小游戏源码免 费 下 载 链 接 如下: c语言项目课设小游戏源码资料压缩包.zip-C文档类资源-CSDN下载 ...

  9. mysql 线程池源码模块_易语言Mysql线程池2.0模块源码

    易语言Mysql线程池2.0模块源码 易语言Mysql线程池2.0模块源码 系统结构:GetThis,初始化,关闭类线程,线程_测试,其他_附加文本,连接池初始化,取mysql句柄,释放mysql句柄 ...

  10. 为什么优秀的程序猿都阅读源码

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:后端程序员必备:书写高质量SQL的30条建议个人原创+1博客:点击前往,查看更多 来源: CSDN(ID:CSD ...

最新文章

  1. 吐血整理:24种可视化图表优缺点对比,一图看懂!
  2. (四)spring cloud微服务分布式云架构-配置中心和消息总线(配置中心终结版)...
  3. 【Android】JNICALL could not be resolved
  4. jenkins产生503错误的解决方法
  5. AnkhSVN的自动加锁
  6. HLS:@E Simulation failed SIGSEGV
  7. OpenCV人脸检测
  8. 友善之臂编linux内核,友善之臂NanoPC-T3 Plus,s5p6818编译Linux内核流程
  9. 如何使用SQL Server Reporting Services将数据格式转换为有价值的数据集
  10. Vue事件绑定(非常详细哦~)
  11. 神经网络的归一化(batch normalization)
  12. win10下如何关闭445端口,教程演示
  13. 什么是IPFS - BlockChain Storage 区块链存储 (1)
  14. AI及相关领域国际会议级别
  15. win10升级助手_不用QQ也能电脑远程,win10这功能太良心了!真后悔晚发现
  16. Matlab读取Excel各个子表的数据进行拟合
  17. 从广告图到广告落地页
  18. html表格中怎么将背景颜色虚化,如何在Photoshop中制作效果惊艳模糊背景!
  19. 原生javascript的账号密码登录验证
  20. Debian apache

热门文章

  1. 经纬度距离计算小工具_一个NB工具大合集打网站,总有一款是你需要的
  2. Django下载Excel文件
  3. 线性规划问题及单纯形法-目标函数值极小大M法
  4. c语言酒店管理系统,基于C#的酒店管理系统(V3.1)最新版
  5. nginx源码准备 - Linux C++网络编程(五)
  6. 产品做出来了,我们该怎么办?
  7. 基于SSM的论坛系统
  8. 计算机为什么逻辑判断准确,逻辑判断之评价型答题技巧
  9. Dubbo 源码解析 —— Directory
  10. 【无机纳米材料科研制图——OriginLab 0204】Origin细胞存活率柱状图绘制