1、B.误报警率低。C.不能检查多态性病毒。D.不能对付隐蔽性病毒。2、校验和法运用校验和法查病毒采用三种方式:(1)在检测病毒工具中纳入校验和法,对被查的对象文件计算正常状态的校验和,将校验和值写入被查文件中或检测工具中,而后进行比较。(2)在应用程序中,放入校验和法自我检查功能,将文件正常状态的校验和写入文件笨身中,每当应用程序启动时,比较现行校验和与原校验和值。实现应用程序的自检测。(3)将校验和检查程序常驻内存,每当应用程序开始运行时,自动比较检查应用程序内部或别的文件中预先保存的校验和。校验和法的特点:优点:方法简单、能发现未知病毒、被查文件的细微变化也能发现。缺点:发布通行记录正常态的
2、校验和、会误报警、不能识别病毒名称、不能对什隐蔽型病毒。3、行为监测法利用病毒的特有行为特征来监测病毒的方法。监测病毒的行为特征:A.占有INT 13HB.改DOS系统为数据区的内存总量C.对COM、EXE文件做写入动作D.病毒程序与宿主程序的切换行为监测法的特点:行为监测法的长处:可发现未知病毒、可相当准确地预报未知的多数病毒。行为监测法的短处:可能误报警、不能识别病毒名称、实现时有一定难度。4、软件模拟法在虚拟机中综合运用多种查杀方法就是通常所说的软件模拟法。软件模拟法的特点:软件模拟法的长处:对病毒的判定能力最强(因为综合了多种查毒方法)。软件模拟法的短处:扫描速度慢,查毒往往不准确。最
3、终结论:目前杀毒软件最主要还是依赖特征码识别技术来检测病毒。也就是说,特征码就是杀毒软件为了判定病毒而从病毒本身提取出来的有特点的代码,我们的免杀就是专门针对这些特征码的。也就是说,让杀毒软件找不到这些特征码就可以达到免杀的目的了,不过还有一点要强高速的是,文件本身的功能是不能损坏的,也就是说免杀之后的文件和原文件在功能上要做到完全相同。只有这样才算是真正有效的免杀。=二、常见杀毒软件及其引擎特点1、卡巴斯基俄罗斯出品、扫描未知病毒非常厉害、病毒库很大、扫描速度特别慢、非常占用资源。2、瑞星国产、杀毒能力和卡巴斯基差距很大,主动防御功能模块和卡巴斯基也没办法比、优势就是速度快、系统占用资源相对
4、较少。3、江民杀毒能力不错,耗费资源一般,主动防御功能也很不错。4、诺顿这个杀软是诺顿公司的,性能卓越。病毒库很大,扫描速度慢。不同版本的诺顿占用系统资源的程度相差很大。这个杀软的免杀非常好做。是著名杀毒软件中实力最弱的。5、金山杀毒能力很差,占用资源一般,速度快。6、NOD32这个的查杀机制和其他几个差别很大,针对它的免杀比较难做。如今新版的NOD32加入了主动防御功能,功能上的提升使它成为目前最能对付的杀毒软件。系统占用资源一般,扫描速度非常快。启动扫描特别厉害,查杀未知病毒的性能和卡巴斯基旗鼓相当。7、麦咖啡国外杀毒软件,功能一般,查杀能力一般,占用系统资源一般。高级版对未知病毒的查杀能
5、力很强。8、小红伞启发式扫描很厉害,可以说和NOD32的启发扫描不分伯仲,各有各的特点。9、F-Prot Antivirus:这是一款来自冰岛的杀毒软件。该杀毒软件的查杀能力绝对一流,对未知病毒的查杀能力远在卡巴和NOD32之上。10、微软杀毒依仗着微软在操作系统的占有率,其杀毒软件也有一定的占有率。几乎所有的木马都不能过微软的杀毒软件。对微软杀毒研究相对深入之后,不难发现,目前的微软杀毒引擎和NOD32的杀毒引擎很像,基本都是使用启发式扫描对API函数的调用进行判定和加权。=三、免杀技术的分类1、内部免杀和外部免杀处部免杀又通常称为PE免杀。内部免杀指的是从病毒的源代码入手,通过修改病毒的源
6、代码实现病毒的隐蔽性变种。外部免杀指的是将已经编译连接后的病毒文件通过加密等手段将病毒的代码复杂化,从而干扰杀毒软件对其的判定,使之免杀。内部免杀有一个必要的前提,就是免杀制作者必须要有病毒的源代码,这一条件非常苛刻。外部免杀需要一定的反汇编基础和PE结构知识。内部免杀和外部免杀属同一技术层次,没有高低之分。2、特征码免杀和大范围免杀先进的杀毒引擎使用的杀毒技术依然是围绕特征码展开的,所以修改病毒的特征码在可预见的很长一段时间里还会是免杀技术的中流砥柱。大范围免杀通常又被称为“无特征码免杀”,指的是使用一些例如加花加壳这种可使病毒代码复杂化的方法对病毒进行处理,处理过的病毒很可能会同时免杀掉多
7、种杀毒软件。大范围指的不是直接针对特征码的修改,只是指通过其它方法使代码复杂化,从而间接影响杀毒软件对病毒特征码的识别。3、文件免杀、内存免杀和行为免杀文件免杀指的是计算机硬盘上存放的被某杀毒软件查杀的病毒,经过免杀处理后,再对病毒进行静态的病毒扫描时,该杀毒软件不将这个原本被自己查杀的文件判定为病毒。这种将硬盘上的病毒文件中特定PE区段载入到内存并进行病毒鉴定的方法,被称为对病毒的动态文件扫描,这并不等同于杀毒软件的内存扫描。内存查杀是指在病毒运行的时候,病毒被载入计算机的内存后,杀毒软件在内存中侦测到病毒的运行,并将病毒在内存中击杀。内存免杀指的就是在上述例子中的病毒被载入到内存后系统无法
8、通过杀毒软件的内存扫描功能从内存中找出该病毒。行为免杀的概念出现在文件免杀和内存免杀之后,是一个相对比较新的概念。病毒程序大都有很多共性,如:在系统文件中释放一些动态链接库文件并添加启动项或服务等。杀毒软件可以抓住病毒的这一特性,监控计算机运行的程序,控制程序可能产生的对计算机系统有危害的行为,杀毒软件的这种监控方式就是行为监控,而突破这种监控方式的工作就称为病毒的行为免杀。4、盲免技术盲免技术又被简称为“盲免”,盲免可以说得上是一个隐藏在圈内很久未被公开的免杀技术。盲免指的就是在不使用杀毒软件定位特征码也不需要杀毒软件测试免杀的效果,直接制作出最终的免杀样本。在这看似投机的结果中,其实有很多
9、技术细节和经验在里面,盲免并不是瞎搞,与特征码免杀一样,盲免也是有很强的针对性的。能熟练盲免的免杀制作者,他们对各种杀毒引擎都非常了解,这些都是靠平时做一般性免杀的过程中得到的,有了这个前提,才能在不借助杀毒软件的情况下,判断出杀毒软件对特征码识别的弱点。针对不尽相同的杀毒引擎,修改特征码的方法也各种不同,所以在研究查毒引擎之前,需要掌握好PE结构、反汇编等基础知识。第二章开始讲的是免杀环境的搭建和虚拟机的安装以及使用,这里我就不打上来了。我只说一些常用的工具。工具下载区暗组2010里面应该全都有。常用免杀工具1、程序名:exeScope这是一个典型的资源工具。我们可以能过它来修改被载入文件的
10、资源。2、程序名:LordPe这个工具被称为“最好的PE工具”。通过这个工具,我们可以对PE文件进行修改并查看PE文件的详细信息,如:入口点、区段等。3、程序名:UltraEdit-32这是一个非常好的十六进制编辑工具。功能很强大,免杀常用。4、程序名:Restorator 2007文件资源编辑工具,操作非常简单,界面也很友好,所以被广泛的应用于免杀过程中的导入、导出资源工作中。不过这个工具的综合性能并不好。5、程序名:ZeroAdd v1.0通过这个程序,我们可以对指定PE文件进行加入0区段的工作。并且可以自定义所加区段的区段名和区段大小。这个工具可以说的上是免杀必备工具了。6、程序名:Wi
11、nHex一款简介而又强大的十六进制编辑工具。7、程序名:Peditor 1.7一款PE编辑工具,虽然没有LordPe功能强大,但是操作十分简单,甚是好用。8、程序名:FreeRes 0.94严格来说,它不是脱壳工具,因为它只是把资源释放出来,并没有对被压缩的文件进行解压的反向工程,只要你用这个软件为被压缩的软件建立起一个覆盖资源,即可用任何的资源编辑软件对其进行资源的编辑了。9、程序名:MyCCl这是一个查找文件特征码的工具,免杀必备。10、程序名:multiCCL f这也是一个定位文件特征码的工具。相对于MyCCl来说,这个工具的定位更准确,精度高,但是操作麻烦。11、程序名:ASProte
12、ct.2.3.6.26.Modified一款强壳,几乎是所有壳的综合,功能十分强大,ASPM is short for ASProtect.2.3.6.26.Modified.12、程序名:Mask PE 2.0曾经辉煌一时的免杀工具,功能简单,但是免杀效果极其的好,尤其是它内存免杀方面的作用,更是突出。13、程序名:北斗壳 v3.7中国人自己的壳,又名nspack 3.7,这款壳也被国外的cracker认可。14、程序名:PeLock 1.06通常在破解界,很多人通过来脱这个壳来证明自己的实力。可见这个壳的加壳效果。著名的黑防灰鸽子的控制端就加的这个壳。15、程度名:Themida功能非常强
13、大的壳。著名的黑洞控制端就是加的这个壳。16、程序名:c32asm界面很漂亮的十六进制和静态编辑工具。通过这个工具我们可以修改SYS驱动文件,做免杀必备。17、程序名:OllyICE动态调试工具,我们通常用其来修改特征码,不过这个工具不能加载SYS驱动文件,令人感到遗憾。18、程序名:OllyDbg汉化原版之所以把这个工具和上面的OllyICE分开,是因为这个工具具备OllyICE不具备的功能,那就是在手工查找内存特征码的时候,OllyICE是不能定位准确的,而我们的原版则可以准确定位,不过OllyICE可以调试ring0,而OllyDbg则不可以。19、程序名:UPX一款非常著名的壳程序。因
14、为范围极广。20、程序名:超级巡警自动脱壳机我们可以通过这个简单的工具完成很多脱壳工作。21、程序名:OC一款将被载入文件的RVA转换成实际内存地址的小工具。22、程序名:驱动加载工具(InstDrv-中文版)这个工具可以很容易的查看被载入驱动文件是否工作正常,有了各款工具,可以大大提高我们免杀SYS文件的效率。23、程序名:Resource Binder 2.6一款效果非常好,而且操作很简单的资源重建工具。24、程序名:VMProtect.exe v1.55这是一个非常方便的加密工具,可以加密几乎所有的PE文件,我们在做SYS文件的免杀时常用。25、程序名:Exelnfo PE ver.0.
15、0.1.7.c一款很实用的壳程序。26、程序名:ExeStealth2.75a非常好用的壳,保护措施很多,脱这个壳也很有意思。27、程序名:PPC-Protect 1.1这个算得上是个比较新的壳了,免杀效果不错。建议配合加花技术使用。28、程序名:VMProtect 1.21 相比于前面的1.55版本,这个版本更适合一些精确的特征码加密。非常好的一款工具,值得收藏。29、程序名:ImportREC_fixWindows XP下修复Import表的时候,ImportREC会将ntdll!RtlRestoreLastWin32Error重定位到kernel32!RestoreLastError,而
16、这个函数在以前的win-dows系统下是不存在的,而RestoreLastError和SetLastError实际上是同一个函数,都被转移到对ntdll!RtlRestoreLastWin32Error的调用。这个ImoprtREC_Fix.exe修正版可以用SetLastError代替RestoreLastError函数。30、程序名:花指令伪装器一款加花指令的工具,支持多次加花。31、程序名:PE-Armor一款压缩加密壳,功能很多,单独使用就有很好的免杀效果。32、程序名:超级加花器这也是一款加花工具,介面非常漂亮,功能也很实用,而且这个工具的作者很勤快,工具总是更新很快。33、程序名:
17、svkp v1.43a纯加密壳,强度高,但是兼容性极差。34、程序名:ASP代码加密大师一款N年前出品的加密ASP木马后门的加密工具。35、程序名:吾芝道ASP木马加密免杀工具GUI版这个是个效果特别好的ASP加密工具,也是一款早期的ASP加密工具。36、程序名:HTML混淆器这是GOLDSUN写的一款HTML格式文件处理工具,这个工具可以重复对HTML文件进行处理,而且经过这个工具处理过的HTML文件的体积会比处理之前小很多。37、程序名:加密最终4.0这是最好用的ASP后门加密工具,操作简单,效果极好。重点推荐。38、Webshell免杀工具这个是一款专门对webshell进行免杀的工具。
18、39、蓝星网页加密专家v1.0这个工具是一款可以批量加密脚本文件的免杀工具。40、phpencode这个是一款加密PHP后门木马的工具,命令行下使用三章一、PE结构简单介绍PE究竟是什么,通俗的说,PE是一种格式。PE格式,是微软Win32环境可执行文件的标准格式(所谓可执行文件不光是.exe文件,还包括.DLL/.VXD/.SYS/.VDM等)。PE就是Portable Executable的缩写。Portable是指对于不同的Windows版本和不同的CPU类型上PE文件的格式是一样的,当然CPU不一样了,CPU指令的二进制编码是不一样的,只是文件中各种东西的布局是一样的。PE文件的主要结
19、构:.text是在编译成汇编结束时产生的一种块,它的内容全是指令代码.rdata是运行期只读数据.data是初始化的数据块.idata包含其它外来DLL的函数及数据信息,即输入表.rarc包含模块的全部资源:如图标、菜单、位图等在PE文件中,代码、资源以及重定向定位信息等数据按照属性分类放到不同的区段中(Section),而且每个区段的属性和位置等信息用一个IMAGE_SECTION_HEADER结构来表示,所有的IMAGE_SECTION_HEADER结构组成一个区段表(Section Table),区段表被放在所有区段的前面,用于标志所有区段的属性(如:可读、可写、可执行等属性)。区段通常
20、又被称为节,区段表也通常被称为节表。CPU之所以可以准确的读取内存中的指令和数据,是因为CPU把内存解成了成千上万份,把每一份都标上一个编号,而每一份的编号都是唯一并且有次序的。这个编号被称作内存地址,有了这个唯一的地址,CPU当然就可以准确地定位内存中的指令和数据了。PE文件具有如下地址:1、入口点Entry Point2、文件偏移地址File offset3、虚拟地址Virtual Address 简称:VA4、基地址ImageBase5、相对虚拟地址Relative Virual Address 简称:RVA公式:RVA(相对虚拟地址)=VA(虚拟地址)-ImageBase(基地址)二、
21、DOS文件头和DOS块一个标准的DOS可执行文件部分包含两个结构,分别是DOS文件头和DOS块。DOS文件头是一个IMAGE_DOS_HEADER结构,该结构定义如下:IMAGE_DOS_HEADER STRUCTe_magic WORD ? :魔术数字e_cblp WORD ?文件最后页的字节数e_cp WORD ?文件页数e_crlc WORD ?重定义元素个数e_cparhdr WORD ?头部尺寸.以段落为单位e_minalloc WORD ?所需的最小附加段e_maxalloc WORD ?所需的最大附加段e_ss WORD ?初始的SS值(相对偏移量)e_sp WORD ?初始的S
22、P值e_csum WORD ?校验和e_ip WORD ?初始的IP值e_cs WORD ?初始的CS值(相对偏移量)e_lfaric WORD ?重分配表文件地址e_ovno WORD ?覆盖号e_res WORD 4 dup (?) :保留字e_oemid WORD ?OEM标识符(相对e_oeminfo)e_oeminfo WORD ?OEM信息e_res2 WORD 10 dup (?e_lfanew WORD ? E头部的文件地址IMAGE_DOS_HEADER END结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。在汇编语言中,结构体的定义往往
23、如下:结构体名称 STRUCT结构体字段1 结构体字段类型 初始值结构体字段2 结构体字段类型 初始值结构体字段N 结构体字段类型 初始值结构体名称 ENDS这里还需要进行一下说明,在Win32汇编中,分号(;)为注释符号,注释掉该行为分后面的语句。而“初始值”处的问号(?)表示没有初始值。因为仅仅是为了表明IMAGE_DOS_HEADER结构体的字段,所以所有字段的值都有“?”来表示。其中e_res字段的初始值我用 4 dup(?)表示,这表明该字段占有4个WORD宽度,也就是占有4个该结构体字段对应的结构体字段类型宽度。那么不难理解e_res2字段就是占有10个WORD宽度了。这里我们有用
24、的只有两上字段,他们是IMAGE_DOS_HEADER结构中的第一个和最后一个字段(e_magic和e_lfanew)。e_lfanew字段占一个双字的宽度。其值为一个偏移地址,该地址为DOS块后面的PE头的文件偏移。DOS块就是DOS部分的可执行代码。二、PE文件头PE文件头的结构定义如下:IMAGE_NT_HEADERS STRUCTSignature DWORD ?FileHeader IMAGE_FILE_HEADER OptionalHeader IMAGE_OPTIONAL_HEADER32 IMAGE_NT_HEADERS ENDS而PE文件大部分的文件属性是由Signature
25、字段后面的FileHeader字段和OptionalHeader字段来设定的。FileHeader字段也是由一个结构体定义的,其具体结构如下:IMAGE_FILE_HEADER STRUCTMachine WORD ?0004h -运行平台NumberOfSections DWORD ?0006h -文件的区段数量TimeDateStamp DWORD ?0008h - 文件创建日期和时间PointerToSymbolTable DWORD ?000ch -指向符号表(调试时使用)NumberOfSymbols DWORD ?0010h -符号表中的符号数量SizeOfOptionalHeadder WORD ?0014h -IMAGE_OPTIONAL_HEADER32结构长度Characteristics WORD ?0016h -文件属性IMAGE_FILE_HEADER ENDS在IMAGE_FILE_HEADER结构中各个字段的注释中,“-”前面的部分是该字段相对于PE文件头的偏移,“-”后面的部分是字人面功能注释。Machine字段该字段相对于PE文件头的偏移为0004h,占有一个字的宽度,用于指定文件的执行平台。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1