
病毒
文章平均质量分 61
onion____
这个作者很懒,什么都没留下…
展开
-
关于PE病毒编写的学习
首先声明,因为害怕被删帖,我肯定不会展示正确完整病毒代码,但是会介绍可行的学习方法。网上有很多关于介绍PE病毒编写的帖子,但基本上都是分析源码FunLove和《计算机病毒分析与对抗》中PE病毒的代码翻版。事实上这两个代码是用于原理展示,前者根本通不过编译,后者编译后并不能正确运行,虽然有部分帖子对其做了修改,受到正统汇编教材代码的影响,导致其修改方法是错误的。关于病毒编写充满了各种各样的迷信和谬论,因此在学习的过程中,我走了不少弯路,让我来一一说明:误区1:PE病毒一定要用汇编来写,其生成文件小,效率高,病转载 2010-11-06 22:38:00 · 843 阅读 · 0 评论 -
关于PE病毒编写的学习(二)
这篇说一下,PE病毒需要那些技术积累,以及这些技术的学习方法和重点是什么。1.先说汇编吧 其实我说的汇编关于两个方面:汇编语言设计 和 微机原理 汇编语言设计,它也是两方面: 常规教材讲的 和 病毒的技巧 常规教材上讲的基本都得学会,最基本的8086/8088肯定都得会,各种书籍视频很丰富,学起来不难。80x86也是必须得学,建议看一下《80x86汇编语言程序设计》(杨季文著,清华大学出版),这本书的后半本写的很精彩,至于罗云杉的那本,明白意思就行了,因为使用Radasm,简化转载 2010-11-06 22:45:00 · 638 阅读 · 0 评论 -
关于PE病毒编写的学习(六)——关于PE文件结构操作的程序编写
对PE文件结构的各个值定义和作用,这里不提了,网上资源很多,百度一下就好了。所以,本章只说一下,作为代码编写者对PE文件结构操作的方法和技巧。还是通过改进代码,来体会一下吧。 你应该记得前面的BOOL IsPEFile(HANDLE hFIle) 这个函数吧,它的作用是判断文件是否为PE格式文件。它把文件句柄作为参数,虽然许多函数需要文件句柄这个参数,但是作为对PE文件结构操作的函数,这样做是不恰当的,因为如果这样做就要频繁的使用SetFilePointer()、ReadFile()、WriteFile(转载 2010-11-07 08:33:00 · 668 阅读 · 0 评论 -
关于PE病毒编写的学习(七)——重定位的谬误和它的正确写法
1.为何需要重定位?病毒的生存空间就是宿主程序,而因为宿主程序的不同。所以病毒每次插入到宿主程序中的位置也不同。那么病毒需要用到的变量的位置就无法确定。所以这就是病毒首先要重定位的原因。在我们编写程序的时候,所用到的变量的位置都是相对与程序某一个位置的偏移,正常的程序加载的地址是唯一的,所以它们不需要重定位。而病毒的加载是随机的所以就有了重定位的过程。虽然加载的位置不一定,但是变量到某一个位置的偏移却是固定的。所以重定位的基本原理就是找到这个特殊的位置。具体的方法有很多种。这里说几种常见的。前面介绍的“前置转载 2010-11-07 08:33:00 · 1808 阅读 · 0 评论 -
关于PE病毒编写的学习(八)——定位API的N种方法(2010年10月25更新)
由于大部分的文件感染型病毒框架都不可以像“前置病毒”那样拥有自己的输入表,因此需要自行定位API说一千道一万,想要定位API,大方向是要定位Kernel32.dll的基地址。总结所以这些方法,可以分为是五个小方向,它们又产生很多变种。一、定位kernel32.dll基地址的方法(1)硬编码方式 由于kernel32.dll的基地址在相同版本windows下,基本上它的位置是固定的。这种方法在早期的PE病毒中很常见,现在已经很少使用了。(2)利用程序初始化时,首先寄存器或堆栈中保留的kernel32.d转载 2010-11-07 08:34:00 · 774 阅读 · 0 评论 -
关于PE病毒编写的学习(九)——追加病毒的编写(上)
OK,兑现我的承诺,从本章开始讲述“追加病毒”的编写方法。我们将实现一个只弹出对话框的良性病毒,但是考虑到这个代码可能造成的危害,我会在感染模块中写入一个小Bug。不过,对于大家的学习是毫无影响的。 回到正题,先介绍一下“追加病毒”,在DOS时代中,这种病毒相当常见。由于.com文件的入口点是固定的,而且我们知道DOS平台程序可以随意使用中断,因此追加病毒只要将病毒代码追加到宿主文件尾,然后修改入口点代码成“jmp [病毒入口点]”,病毒执行完成后,再jmp到宿主程序。 到了win32平台下,这种方法转载 2010-11-07 08:34:00 · 730 阅读 · 0 评论 -
关于PE病毒编写的学习(四)——关于历遍磁盘的讨论
在上一章中的“前置病毒”中,由于它只是一个测试病毒,因此该病毒只是搜索病毒文件所在文件夹的exe文件。显然,为了让它具有更好传染性,能够历遍整个磁盘或某些重要文件夹的特性,是十分重要的。开始讨论历遍之前,先让我们来改进原来的代码首先在上一章的代码中,只要结尾是“.exe”的文件就被判断为"可执行程序",这种方法在大多数情况下是正确的,但是如果程序经过压缩或加密后,该文件的PE结构会有改变,虽然它实际上让然能履行可执行程序的功能,但针对PE文件的操作可能出错。因此,确定.exe后缀之后,做更加详细的文件类型检转载 2010-11-07 08:31:00 · 640 阅读 · 0 评论 -
关于PE病毒编写的学习(十)——追加病毒的编写(下)
原本这一篇应该和上一篇同时发,但是我的原来代码写得很烂,而且由于我的目标是编写一个“追加病毒”框架,代码又要具备良好的模块特征。这两天改来改去,已经头脑混乱了,所以还是先发文章把原来的代码挂上,有时间再改,我会配上说明。 另外提一句,我把一个bug写再AddSection这个函数里,很多教学码也故意写这个错误,这个错误本意是修改由于PE文件头的修改使“xx值”应适当变化,实际写入的是空位置,这个值不应该变化,这个画蛇添足的行为会导致被感染文件出现一个对齐问题的错误,使系统认为它不是一个有效文件。自己独立转载 2010-11-07 08:35:00 · 792 阅读 · 0 评论