
木马与病毒分析实战
bobopeng
这个作者很懒,什么都没留下…
展开
-
关于PE病毒编写的学习(8)
OK,兑现我的承诺,从本章开始讲述“追加病毒”的编写方法。我们将实现一个只弹出对话框的良性病毒,但是考虑到这个代码可能造成的危害,我会在感染模块中写入一个小Bug。不过,对于大家的学习是毫无影响的。 回到正题,先介绍一下“追加病毒”,在DOS时代中,这种病毒相当常见。由于.com文件的入口点是固定的,而且我们知道DOS平台程序可以随意使用中断,因此追加病毒只要将病毒代码追加到宿主文件尾转载 2014-07-20 20:58:56 · 650 阅读 · 0 评论 -
C++设计一个简单的壳(2)
本文中的代码均来自《黑客免杀攻防》,如要转载,需写明来源,请勿用于非法用途,作者对此文章中的代码造成的任何后果不负法律责任。本文接上一篇简单的壳1.2.加壳部分 写这个部分的时候我自己对于这部分的代码也没有做到很熟悉,因为这部分相对于前一部分来说复杂了许多,后面就会看见。所以我也是通过再次巩固来进一步理解加壳的基本步骤。废话不多说,首先还是从声明部分说起。对了在这之前,最好转载 2014-07-20 21:08:13 · 1024 阅读 · 0 评论 -
关于PE病毒编写的学习(10)——空隙覆盖病毒的实现方法
这类病毒名字很多,选这个名字主要是它比较形象说明其感染方式,即将病毒代码分成多份,分别注入到程序各节由于对齐产生的空白中。 1.核心——病毒描述表 将病毒代码分割成多份,分别注入到未知地址的区域内,却能完整运行。这看似神奇,其实实现方法却很简单———建立病毒分割描述表 病毒分割描述表举例(汇编): Virus_Distribution struct;病毒片段描述符转载 2014-07-20 21:01:41 · 574 阅读 · 0 评论 -
关于PE病毒编写的学习(7)——定位API的N种方法
由于大部分的文件感染型病毒框架都不可以像“前置病毒”那样拥有自己的输入表,因此需要自行定位API说一千道一万,想要定位API,大方向是要定位Kernel32.dll的基地址。 总结所以这些方法,可以分为是五个小方向,它们又产生很多变种。 一、定位kernel32.dll基地址的方法(1)硬编码方式 由于kernel32.dll的基地址在相同版本windows下,基转载 2014-07-20 20:55:10 · 866 阅读 · 0 评论 -
PE病毒技术剖析
任何语言只要表达能力足够强,都可用于编写PE病毒。但现存的绝大部分PE病毒都是直接用汇编编写的,一方面是因为汇编编译后的代码短小精悍,可以充分进行人工优化,以满足隐蔽性的要求;另外一方面之所以用汇编是因为其灵活和可控,病毒要同系统底层有时甚至是硬件打交道,由于编译器的特点不尽相同,用高级语言实现某些功能甚至会更加麻烦,比如用汇编很方便地就可以直接进行自身重定位、自身代码修改以及读写IO端口等操作,转载 2014-07-20 18:24:48 · 1745 阅读 · 0 评论 -
关于PE病毒编写的学习(9)
原本这一篇应该和上一篇同时发,但是我的原来代码写得很烂,而且由于我的目标是编写一个“追加病毒”框架,代码又要具备良好的模块特征。这两天改来改去,已经头脑混乱了,所以还是先发文章把原来的代码挂上,有时间再改,我会配上说明。 另外提一句,我把一个bug写再AddSection这个函数里,很多教学码也故意写这个错误,这个错误本意是修改由于PE文件头的修改使“xx值”应适当变化,实际写入的是空位置,转载 2014-07-20 20:59:48 · 674 阅读 · 0 评论 -
关于PE病毒编写的学习(6)——关于PE文件结构操作的程序编写
对PE文件结构的各个值定义和作用,这里不提了,网上资源很多,百度一下就好了。所以,本章只说一下,作为代码编写者对PE文件结构操作的方法和技巧。还是通过改进代码,来体会一下吧。 你应该记得前面的BOOL IsPEFile(HANDLE hFIle) 这个函数吧,它的作用是判断文件是否为PE格式文件。它把文件句柄作为参数,虽然许多函数需要文件句柄这个参数,但是作为对PE文件结构操作的函数,这转载 2014-07-20 20:56:02 · 662 阅读 · 0 评论 -
关于PE病毒编写的学习(4)——关于遍历磁盘的讨论
在上一章中的“前置病毒”中,由于它只是一个测试病毒,因此该病毒只是搜索病毒文件所在文件夹的exe文件。 显然,为了让它具有更好传染性,能够历遍整个磁盘或某些重要文件夹的特性,是十分重要的。 开始讨论历遍之前,先让我们来改进原来的代码首先在上一章的代码中,只要结尾是“.exe”的文件就被判断为"可执行程序",这种方法在大多数情况下是正确的,但是如果程序经过压缩或加密后,该文件的P转载 2014-07-20 20:53:15 · 692 阅读 · 0 评论 -
关于PE病毒编写的学习(5)——病毒如何做标记和记录信息
1.做标记和记录信息的区别 做标记:它是为了其它病毒识别自己,而在固定或符合一定规则的位置上记录的符号信息。 记录信息:它是为了病毒本身正确运行,而存储的某些信息,甚至是部分代码,比如解密程序的随机密匙、所感染宿主文件的某些信息 2.那些地方可以做标记和记录信息 (1)可标记的位置 1/程序的入口区域和尾部区域;并非一定是开头和结尾,比如转载 2014-07-20 20:51:59 · 827 阅读 · 1 评论 -
关于PE病毒编写的学习(3)
历史上,在windows95发布后,用高级语言编写的外壳病毒,经过简单地改造编译,就能从DOS平台迁移到windows平台上。并且在这当中很多“前置病毒”,仅仅需要重新编译。 另外之所以用“前置病毒”作为第一分析样本,理由如下:1.它具有基本病毒功能模块,这些模块在文件型病毒中是通用的2.其框架结构,所需病毒技巧极少3.拓展方便,通过不断地加入新功能,循序渐进的学习各种病毒转载 2014-07-20 20:49:39 · 749 阅读 · 0 评论 -
关于PE病毒编写的学习(2)
这篇说一下,PE病毒需要那些技术积累,以及这些技术的学习方法和重点是什么。 1.先说汇编吧 其实我说的汇编关于两个方面:汇编语言设计 和 微机原理 汇编语言设计,它也是两方面: 常规教材讲的 和 病毒的技巧 常规教材上讲的基本都得学会,最基本的8086/8088肯定都得会,各种书籍视频很丰富,学起来不难。80x86也是必须得学,建转载 2014-07-20 20:51:12 · 958 阅读 · 0 评论 -
关于PE病毒编写的学习(1)
首先声明,因为害怕被删帖,我肯定不会展示正确完整病毒代码,但是会介绍可行的学习方法。 网上有很多关于介绍PE病毒编写的帖子,但基本上都是分析源码FunLove和《计算机病毒分析与对抗》中PE病毒的代码翻版。事实上这两个代码是用于原理展示,前者根本通不过编译,后者编译后并不能正确运行,虽然有部分帖子对其做了修改,受到正统汇编教材代码的影响,导致其修改方法是错误的。 关于病毒编写充满了转载 2014-07-20 20:49:56 · 1967 阅读 · 0 评论 -
C++设计一个简单的壳(1)
本文中的代码均来自《黑客免杀攻防》,如要转载,需写明来源,请勿用于非法用途,作者对此文章中的代码造成的任何后果不负法律责任。看了一遍书本的第11章,感觉内容确实比较高级,之前虽然自认为是热衷于搞C/C++开发,但是运用windows API的开发真的是太少了。先来看看一个简单的壳的编写。 这个加壳脱壳程序分为三部分,首先是用MFC写的界面程序,这个自然不用多说,主要功能就是转载 2014-07-20 21:08:51 · 1780 阅读 · 0 评论 -
使用memcpy缓冲区溢出了
今天继续编写远控,但是原创 2014-07-26 02:23:24 · 8048 阅读 · 1 评论