杀毒软件的查杀病毒的原理以及木马、病毒的免杀伎俩(论杀或者不杀 )

无意中在网上看到的,描述通俗易懂,基本全是基础知识,权当了解吧。

====================================================================================================

你杀或者不杀我,我就在那里不悲不喜 借用黑客防线的名言:在攻与防的对立统一中寻求突破! 小甲鱼从现在开始就厚着脸皮跟大家来谈谈杀毒软件查杀病毒、木马的原理以及病毒、木马如何做出应对和反击的措施。  

第一篇 杀毒软件的查杀病毒的原理以及木马、病毒的免杀伎俩。

杀毒软件查杀病毒的原理

话说当年中国第一批病毒石头和小球病毒跟随着软盘悄悄地通过香港和美国进入了中国内地,并在人们得懵懵懂懂之间在大型企业和研究所之间广为传播,那时候中国人们猛然惊醒,甚至有带着口罩使用计算机的闹剧发生。

事实上我们要认识到,病毒也是一段程序,跟普通程序看上去并没有什么差别,只是实现了一些比较“不和谐”(小甲鱼似乎很喜欢这词哈~文明社会,注意和 谐!)的功能罢了。况且病毒的种类很多,木马事实上严格归类也是属于病毒的一种。不同病毒的代码各不相同,因此杀毒软件不能用一个固定的模型来判别所有的 病毒程序。这么一来,计算机病毒就存在不可识别性,查杀病毒就必须先搜集已知病毒的样本,然后通过剖析病毒,再将病毒传播感染的过程逆向过来,使得被感染 的计算机程序恢复原状。(杀软真伟大,我要写病毒我一定把原来的PE文件删得面目全非,看你怎么逆向……邪恶了……)

现在常见的杀毒软件查杀病毒技术主流有两种:特征码查杀和启发式查杀。

所谓特征码查杀技术,就是指杀毒软件将已知的病毒进行分析后,提取出该病毒的一组特征码,什么是特征码,我们知道,任何程序代码都有他自己的特点。就像世 界上永远没有两片相同的叶子,世界上永远没有两个讲课会讲苍井空的小甲鱼一样,特征码病毒文件中一句或者几句特殊的代码。通过特征码,杀毒软件就能认出这 程序是病毒程序。

病毒的特征码主要分为:文件特征码(病毒存放在硬盘上的阶段)和内存特征码(病毒存已经到内存中的阶段)等。

病毒特征码的提取主要还是要辛苦杀毒软件背后默默付出的分析人员的主观分析。他们绝对是园丁式的人物,日日夜夜的对着病毒代码进行跟踪、调试、反汇编,最 终在长达几千字节的病毒文件中提取最典型最独特的十几个字节程度的特征代码……由于不同的杀毒软件有不同的园丁哈,所以同一个病毒程序做了特征码免杀,他 丫丫这个过了杀软免杀,那个确还是被杀,简直没完没了的原因就是:特征码因为是园丁不辞辛苦提取出来的,所以不同杀软对同一病毒总是提取出不同的特征码~ 有些童鞋可能会问了:“一个病毒有那么多特征码呀?”那小甲鱼又会这么回答:“难道你除了生殖器官长得跟别人不一样之外,其他都一样吗?!”同理可证 哈…… 又有童靴会发问了:“要是丫丫的刚好有一个正经的程序也纯在这么一个相同的特征码组合的话怎么办?”小甲鱼笑笑答道:“这就会产生传说中的……误杀!”。 事实上这比中彩票要难点哈,小甲鱼给大家举个例子:就当一段特征码有十个字节,那么每个字节有八位,十个字节有多少种不同组合的排列?赶紧的算,中学概率 题的说……答案是:2^8^10(^代表次方),捏手算下大概结果是1208925819614629174706176种不同的组合,你说中彩票容易还 是误杀容易??

所谓启发式查杀技术,说白了就是蜜罐策略。什么是蜜罐策略呢?这个技术可先进了去……一般情况下是通过虚拟机技术通过虚拟一个运行环境的方式来执行需要检 查的文件,只要你的文件发作,呵呵,他不就知道你是病毒咯~那他怎么知道你发作呢?事实上我们说过了,病毒也是一段程序哈。但是呀,病毒终归是病毒,它始 终是要做坏事的,例如感染、而已删除文件、感染正常PE文件、修改注册表、添加自启动等等,他也可能通过调用系统底层函数来免杀杀软,或者进行更深层的 rootkit隐藏……这一切一切因为他都是要调用系统的api 函数来进行操作的,所以这个虚拟环境就能够由此侦测出来咯~

但是虚拟机技术由于存在误杀可能性比较大,目前仅是作为特征码查杀技术的一种补充而已,用于防范未知病毒。 
为啥误杀的可能性比较大?嘿嘿,你想想系统搞那么多api 函数来干啥?不就是来用的嘛~要是用一下这个函数就说是病毒,那跟那把水果刀在家里切黄瓜(小甲鱼又邪恶了)就被警察以杀人罪枪毙有何不同??

第二篇 揭开常见病毒免杀手法的面纱

由 前一篇我们知道,杀毒软件虽然技术日益更新,但主流的查杀方案还是通过特征码的方式来查杀病毒木马的:当一个新的病毒木马或可疑程序一旦出现在网络上后, 会被杀毒软件厂商截获并进行分析。分析程序执行的操作和特征,如复制、删除文件,修改注册表,新建并启动服务,格式化硬盘,打开并监听端口等,确认其存在 安全风险后,由杀软公司的分析员研究该程序的文件结构,找出并定位程序的特征码。最后将特征码保存到杀软公司的数据库,下次杀软更新后就能对此程序“免 疫”啦~

小甲鱼猜到应该有些朋友会有疑问了:杀软厂商哪来那么大的本事,能够最快和最全的收集到网络上出现的新病毒木马或者恶意程序呢?

其实,来源主要有两个:
第一是由用户提交可疑程序给杀软厂商分析,一般提交后24小时内会被处理并答复(卡巴大叔据说这方面效率奇快,一般两个小时内会有回复),更新下病毒数据库后就可以免疫该病毒了;

第二是布置大量蜜罐和蜜网系统让病毒、黑客自己往里钻。虾米是蜜罐系统?其实蜜罐技术由来已久,蜜罐好比是情报收集系统。蜜罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对贵公司服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。

哎呀,小甲鱼讲课总喜欢天马星空,想到啥就顺便讲讲啦,希望各位别介意哈~
我们继续回归到本文题目来~

根据特征码查杀原理,目前市面上演化出的免杀方法有很多,主要可以分为对木马程序结构的修改和源代码的修改两种。简单的说免杀就是做整容,整得连老妈都不认得就行了。以下小甲鱼给大家概括一下市面上的基本免杀方案:

修改特征码:利用特征码定位工具(如MyCCL, CCL, multiCCL等)跟踪定位某杀软针对程序的所有特征码,并通过修改实现免杀(一般NOP掉)。

加花指令:就 是在程序开头加入一段计算用的汇编指令和一些入口点内存地址的乱跳转。因为计算与跳转的最后结果是没有实质的意义(让CPU做无用功而已),所以这么做并 不影响程序的正常运行。但能使一些杀毒软件无法正确识别木马程序(因为杀软并非完全智能,也并非有很多空闲一直跟踪你),从而达到免杀的效果。今后小甲鱼 会教大家自己写花指令,其实花指令无非就是一堆相当让人郁闷的代码。需要汇编基础,建议学习小甲鱼的零基础入门学习汇编语言……

修改程序入口点:程序入口点修改就是改变入口点,通常用到的方法是在入口点的地址加1或把入口点地址拆开,也有加花指令之后把原入口点修改到花指令的入口点上令电脑先处理那段没意义的指令,再在花指令后再加跳转代码,跳转到程序执行数据的入口点上,令程序正常运行。
参考以下典型代码:

<span style="font-family:KaiTi_GB2312;font-size:18px;">mov ebp,esp push ebp        ;把基址指针寄存器压入堆栈
pop ebp         ;把基址指针寄存器弹出堆栈
push eax        ;把数据寄存器压入堆栈
pop eax         ;把数据寄存器弹出堆栈
nop             ;不执行
add esp,1       ;指针寄存器加1
sub esp,1       ;指针寄存器减1
inc ecx         ;计数器加1
dec ecx         ;计数器减1
sub esp,1       ;指针寄存器加1
sub esp,-1      ;指针寄存器加-1
push 321BA      ;跳到内存入口地址321BA
retn            ;反回到入口地址
jb 456CD        ;跳到内存入口地址456CD
jnb 321BA       ;跳到内存入口地址321BA
mov eax,456CD   ;跳到内存入口地址456CD
jmp eax         ;跳到程序入口地址
jmp 321BA       ;跳到程序入口地址
push 123AB      ;把入口地址123AB压入堆栈
mov eax,123AB   ;把入口地址123AB转送到数据寄存器中。
jmp 123AB       ;跳到入口地址123AB(程序执行数据的入口点)</span>

修改程序入口点:通用手段,将程序入口点+1处理。

乾坤大挪移:人为修改打乱 PE 段的位置,或者将 PE 段转移到空白处。

源码免杀:关键先要有源码,如 gh0st 等开源软件可以获取其源代码,通过修改被定位特征码位置的源代码(加注释、用等同语句替换、加冗杂语句等),使得源代码面目全非后并不影响原来的执行就行哈~


修改程序的输入表:每 个可执行文件一般都有输入表,用于定位动态链接库文件中的函数的地址,因为即使是病毒,在 windows系统的“呵护”下,所有的“恶意”操作都只能是通过调用 API函数来实现(windows妈妈有点像米国哈,啥都管! の对了…… windows好像也是米国的……怪不得……)。查找到输入表函数名并将其移位。

加密:对文件被定位特征码的区段进行加密,一般推荐选用 VMprotect,玩破解的童鞋都知道,这个不好搞。

加壳:其 实加壳本来就分加密壳和压缩壳,上边提到的 VMprotect本身就是一个虚拟机加密壳软件,有点重复,但为了显得小甲鱼经验丰富点,嘿嘿,分出来吧,毕竟还是有点差别。加壳嘛,可以尽量加,用不 同的壳加,当然要确认加了几次壳后程序能不能正常运行哈,毕竟有时候代码会相互覆盖就不好了。

…… ……小甲鱼技术粗鄙,其实还有的,大家自己发挥发挥就出新玩意啦~

最 后,需要说明的是,不同的杀软对特征码的定位位置并不相同,因此一种技术很难做到全体免杀的效果。不过一般来说全局性的搅乱(变种)会使大部分杀毒软件认 不出来的。最后,技术原理才是核心,别人教你怎么免杀,但是等会换了个杀软或者换种杀法就懵了。小甲鱼想说的是,免杀技术绝对要懂得汇编,要懂得计算机原 理,要懂得杀毒软件运作原理,这样才能知己知彼百战不殆。

本文来自:鱼C工作室<http://www.fishc.com> 

杀毒软件的查杀病毒的原理以及木马、病毒的免杀伎俩(论杀或者不杀 )相关推荐

  1. 计算机感染木马或病毒后,计算机中木马病毒的症状

    大家好,我是Time Fortune.com的明智客户服务.我将为您解答以上问题. 计算机中的木马病毒的症状是: 1.文件或文件夹无故消失 如果发山词霸和QQ管理器,这三种主流的国内安全保护软件都具有 ...

  2. Powershell 挖矿病毒处理与防范,该病毒特性:病毒每天自动运行,生成的病毒程序杀毒软件能查到,但无法阻止powershell病毒的自动运行,每天都会生成新的病毒文件

    Powershell 挖矿病毒处理与防范 最近,一种利用Powershell的挖矿病毒在企业网络中频繁爆发,该病毒其利用了WMI+Powershell方式进行无文件攻击,并长驻内存进行挖矿. Powe ...

  3. linux 服务器 病毒,Linux 服务器中木马病毒及清除过程

    一.背景 晚上看到有台服务器流量跑的很高,明显和平常不一样,流量达到了800Mbps,第一感觉应该是中木马了,被人当做肉鸡了,在大量发包. 我们的服务器为了最好性能,防火墙(iptables)什么的都 ...

  4. [回顾]2007年木马病毒“英雄榜”,你中过几个

    相信点击本帖的朋友每位都中过可恶的木马病毒,而且有几次还记忆犹新或者心有余悸.哪个木马最让你痛彻心扉?正好这里有一份榜单,大家可以"旧梦重温",对号入座一下,欢迎补充 ***200 ...

  5. termux怎么生成木马_一个木马病毒是如何诞生的?

    相信大家都有这么一个经历,我们使用电脑,在某些来历不明的网站上下载一些程序,然后打开这些程序的时候,可能会出现以下的情况. 嗯没错,你电脑中的杀毒软件会给你发出温馨的提示,提醒你该程序可能含有木马病毒 ...

  6. 计算机木马犯罪类型,计算机木马病毒犯罪研究..doc

    计算机木马病毒犯罪研究..doc 本科生毕业设计(论文) 中文题目 计算机木马病毒犯罪研究 学 号 1108063006 姓 名 原梓诚 学 院 政法学院 指导老师 刘君 专 业 法学 完成时间 摘 ...

  7. Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结...

    Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结 1. ,免杀技术的用途2 1.1. 病毒木马的编写2 1.2. 软件保护所用的加密产品(比如壳)中,有 ...

  8. 杀毒软件可以查杀所有计算机病毒吗,好的杀毒软件可以查杀任何病毒,对还是错?...

    一款好用的杀毒软件可以帮助我们节省很多精力,也能很好地拦截各类病毒,那么,有人说,好的杀毒软件可以查杀任何病毒,对吗?还是错的?我们可不这么认为呢. 今天,智能设备在我们身边越来越多,电脑是很有必要安 ...

  9. 病毒木马查杀实战第019篇:病毒特征码查杀之编程实现

    前言 上次我们已经简介过了病毒特征码提取的基本方法,那么这次我们就通过编程来实现对于病毒的特征码查杀. 定义特征码存储结构 为了简单起见.这次我们使用的是setup.exe以及unpacked.exe ...

最新文章

  1. 可解释性 or 准确性?AI 模型就一定不能两者兼得吗?
  2. ARM 发布新一代 GPU 架构,还有一个机器学习处理器
  3. mysql 分库分表架构与方案
  4. POJ 1149 PIGS
  5. .NET跨平台实践:用C#开发Linux守护进程
  6. 【GPU】nvidia-smi输出内容释义及使用
  7. 将一个二维数组合并成一个一维数组
  8. 外接鼠标键盘无反应处理
  9. iPhone/iPad各种文件路径详解 帮助了解自己的iphone和ipad
  10. Pico Neo3 4VR一体机破解版游戏资源合集安装包下载及安装教程分享
  11. 计算机竞赛acm试题,ACM-ICPC 2018 总决赛赛题
  12. 支持超过4000字节的varchar2类型
  13. Chromium浏览器扩展JS对象方法
  14. FISCO BCOS最强学习路径,汇聚全网资源(2022更新版)
  15. QT项目负责人必须掌握的Ui设计师功能——Promote to !
  16. 【Python】5行代码缩小图片尺寸
  17. 分享一个MySQL数据库表结构导出word文档最方便的方法
  18. 用户画像 各维度表的结构图
  19. 【Orangepi Zero2 全志H616】语音刷抖音 / 手机连接Linux热拔插相关
  20. Android 字体库的使用

热门文章

  1. 量化交易领域主流的框架以及实用工具汇总
  2. MathJax和相关的Latex语法。
  3. Java学习笔记14(接口+工厂模式)
  4. idea 谷歌浏览器配置 通过浏览器打开页面 open in brower
  5. 这可是全网eNSP安装最完整,最详细的图解,没有之一(常见问题)
  6. mavros连接px4失败的usb-ttl原因
  7. 面向对象程序设计的五个基本原则
  8. 网红直播无线麦克风出口美国FCC认证介绍
  9. 视频教程-photoshop cc2017全套视频课程 从基础到实战案例PS海报-Photoshop
  10. html流星雨页面,纯CSS流星雨背景的示例代码