| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
免费服务 我要发布 在线破解 黑客游戏 精华收集 免费空间 网络硬盘 独家报道 黑器点播 免费 FTP 交换资源
收费服务 黑客培训 光盘刻录 黑客书籍 视频下载 主力频道 空间域名 网站建设 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> 编程 >> 其它编程 >> 正文 用户登录 新用户注册
驱动级的特征码修改         ★★★ 【字体:
驱动级的特征码修改——终级免杀之PcShare
作者:不详 文章来源:华盟收集 点击数: 更新时间:2008-7-5

  PcShare可算国内最优秀的远程控制软件之一,其特有的驱动级隐藏技术让PS的隐蔽性有了质的提升。可再好的隐藏也必须先过安装这一关,由于杀软的特征码库中早已有PS的代码,所以在开监测的情况下,当服务端释放*.D1L和*.SYS两个文件时杀软会报警,因此没法儿安装。这时应该做什么?当然是免杀。加壳是没用的,要改特征码。改文件和内存特征码在前几期的黑防都已介绍过,照旧修改就可以。关键PS中有个驱动程序PcHide.SYS,它的特征码又应该怎么修改呢?这里就和大家交流一下含驱动的程序特征码修改,使用的杀软是最新的KV2006,PS使用的是黑基下载的黑盟玫瑰破解完全版。(用盗版只是测试,大家多支持正版。)其它工具包括特征码修改器CCLv2.7.1、IDA pro 4.7、OllyDbg、PeInfo、IceSword及UltraEdit。

  1.驱动程序PcHide.SYS的修改

  上来就是重头戏,先来修改驱动的文件特征码吧。第一步是用CCL确定其特征码位置,CCL的使用过程就不再赘述了,直接用自动定位功能,检测大小为10,检测范围为text既代码段。直接看定位结果如下:

  0001 000003DC 0000001F 000003FB

  0002 000003FC 0000003E 0000043A

  0003 00001C78 0000001F 00001C97

  0004 00001C98 0000003E 00001CD6

  0005 00001CD7 0000003E 00001D15

  看看结果,聪明的你应该发现虽然有5处数据,但前2段和后3段分别相连,也就是说PcHide.SYS总共只有两处特征码,分别在000003DC到0000043A和00001C78到00001D15。像这样两处相连而又相隔较远的情况,一般说来两处必须都要修改。(在结果较多且较分散时,判断起来会麻烦一点,所以我给CCL加了个功能,可以很快确定至少要修改几处,修改哪几处。将在下文介绍。)

  下面是IDA反汇编,看代码。先来看3DC处。看来不是汇编指令。没关系,在IDA中切换到Hex View窗口观察,原来是字符串“D:\PcShare\瘝鐗堟湰\PcHide\objfre\i386\PcHide.pdb”。中间的乱码没关系,因为我们看到了PcShare和PcHide。改字符串最简单的方法是改大小写,原则是不能干扰原文件执行。这里的字符串给出了一个pdb文件(符号文件?)的路径,虽然我不知道它的具体作用,但大小写改变应该没问题。于是,在UltraEdit中将该处的大写字母全改为小写,完后保存。

  光修改这处不行,KV检测一下还会报警,也证实了前面的判断——两处都要修改――是正确的。再来看第二处1C78的代码,修改该处代码既是重点又是难点。

  …

  .text:00011C78 xor ecx, ecx

  .text:00011C7A cmp byte_12280, cl

  .text:00011C80 jz locret_11D68

  .text:00011C86 push esi

  .text:00011C87 cli

  .text:00011C88 mov eax, cr0

  .text:00011C8B and eax, 0FFFEFFFFh

  .text:00011C90 mov cr0, eax

  .text:00011C93 mov edx, dword_130EC

  .text:00011C99 mov edx, [edx]

  .text:00011C9B mov esi, dword_130E0

  .text:00011CA1 mov eax, ds:ZwQuerySystemInformation

  …

  修改的难点有二,一是该段中包含跳转指令jz,二是指令的顺序没法交换。驱动程序是在内核执行的文件,所以修改时一定要注意,能不添加代码就不要添加,尽量不改变原代码的整体大小。因此,这里用了个特殊的方法。注意这一句and eax,0FFFEFFFFh。要知道eax是CPU最常用的寄存器,因此操作eax的指令通常既短小速度也快,我们看一下这句指令的十六进制编码:25 FF FF FE FF。很明显,25是指令,FFFFFEFF是参数。而and ebx,FFFFFEFF的编码是什么呢?最方便的查看指令编码的工具就是OD了,用OD任意打开一个可执行文件(OD不能直接打开驱动文件),做一下试验,得到编码为:81E3 FFFFFEFF。呵呵,多了一个字节。(看一下Intel指令参考就知道,81代表and指令,E3代表ebx及操作方式,确实eax的指令被优化了。)我们的思路,将这里的寄存器改为ebx。但多出的一字节怎么办呢,不能将所有的代码都向下平移吧!呵呵,我们要在下面的代码中将这个字节找回来。看mov edx, dword_130EC,它的编码为:8B 15 EC 30 01 00,足足6字节。把这里的edx换为eax会怎么样,同样在OD中键入mov eax,dword ptr ds:[130EC],看到了吧,它的编码为:A1 EC300100,只有5个字节,这样代码的大小就平衡了。

  还有一个问题要注意,为什么可以将edx改为eax,如果eax存有其它的值怎么办,那不就改变原程序的执行结果啦。不会的,因为向下三行有这样的代码:mov eax, ds:ZwQuerySystemInformation,说明eax的值在这里被更新,因此可以判断出修改eax的值不会影响程序执行。方法已经有了,下面修改。先在OD中将如下代码键入(加黑体的是我们修改的地方。

  10003817 0F20C3 mov ebx,cr0

  1000381A 81E3 FFFFFEFF and ebx,FFFEFFFF

  10003820 0F22C3 mov cr0,ebx

  10003823 A1 EC300100 mov eax,dword ptr ds:[130EC]

  10003828 8B10 mov edx,dword ptr ds:[eax]

  5句代码共19个字节,与未修改时的一样。由于OD不能直接打开SYS,所以我们用UltraEdit打开PcHide.SYS,直接修改十六进制数据。修改完后保存,再用KV检测。怎么样,文件免杀成功。

[1] [2] [3] 下一页

责任编辑:朱倩  联系方式  Email:朱倩
电话:51228163
  • 上一篇编程:

  • 下一篇编程: 没有了
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关编程
    修改特征码掌握的知识
    灰鸽子篇之DLL释放型后门的特征码
    汇编”免杀”基础知识总结说明
    灰鸽子篇之DLL释放型后门的特征码
    灰鸽子篇之DLL释放型后门的特征码
    delphi编程实现免杀捆绑
    灰鸽子篇之DLL释放型后门的特征码
    用C语言写的鼠标驱动程序
    关于VB写网马生成器和免杀问题
    简单的无驱动嗅探启动后门
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号