| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4973 人关注过本帖, 1 人收藏
标题:[分享][开源]pe病毒原理
取消只看楼主 加入收藏
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏(1)
 问题点数:0 回复次数:14 
[分享][开源]pe病毒原理
终于在开学以前完成了这个程序,经过几周的学习,对用汇编编写pe文件病毒有了简单的理解,就写了这个程序
如果有时间会继续学习病毒的编写
此程序实现了当前文件夹及其子文件夹的exe文件的感染
并没有加入破坏系统的代码
大家可以放心试验
希望不要将此程序用于非法途径,不然也违背了我将程序发上来的初衷。
我们学习的是知识,研究的是技术。


现在发最新版本 修改以前版本的BUG 希望大家帮忙测试 看看有什么问题
2fOz0IpU.rar (6.02 KB) [分享][开源]pe病毒原理

这个是添加了线程的版本

[此贴子已经被作者于2007-11-14 15:02:05编辑过]



plhl0rJt.rar (5.47 KB) [分享][开源]pe病毒原理



CMKeFUCX.rar (5.9 KB) [分享][开源]pe病毒原理



wcoR84Bb.rar (5.26 KB) [分享][开源]pe病毒原理



wdiq2oV1.rar (5.6 KB) [分享][开源]pe病毒原理

搜索更多相关主题的帖子: 原理 开源 分享 
2007-08-29 14:22
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
运行之前先运行一个我插入的消息框

win32汇编
病毒 加密
目前兴趣所在
2007-08-29 14:36
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
是么 难道我程序有问题? 我怎么用都好使呢 我再看看

win32汇编
病毒 加密
目前兴趣所在
2007-08-29 15:32
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
目前没有找到什么原因 不能正常感染某些文件
在附件中附带了一个用来感染的测试文件 先用着吧

win32汇编
病毒 加密
目前兴趣所在
2007-08-29 15:46
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 

有些目标文件不能感染 原因是由于目标文件中存在.data?段 其中的内容编译器会认为程序在开始执行后才会用到
所以在生成可执行文件得时候只保留了大小的信息 不会占用磁盘空间 有些程序的最后一段为这个段 SizeOfRawData
PointerToRawData这两个值都为0 我的程序实现原理是添加一个节将程序插入并修改pe头 因为在添加节的过程中需要增加我添加节的IMAGE_SECTION_HEADER 上面提到的这两个值是根据上一节(也就是原程序最后一节)的这两个值修改的 所以导致修改的值出错 结果导致有些被感染的文件出现不是有效的win32程序的错误

问题还没有解决 不知道有没有高手能替我解答一下


win32汇编
病毒 加密
目前兴趣所在
2007-08-31 10:34
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
可以将变量在宿主程序中找到正确的位置

win32汇编
病毒 加密
目前兴趣所在
2007-09-06 17:45
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 

这是我在网上找的 你自己看看吧



在讲解重定位方法之前,我们有必要复习一下call指令。

call指令一般用来调用一个子程序或用来进行转跳,当这个语句执行的时候,它会先将返回地址(即紧接着call语句之后的那条语句在内存中的真正地址)压入堆栈,然后将IP置为call语句所指向的地址。当子程序碰到ret命令后,就会将堆栈顶端的地址弹出来,并将该地址存放在IP中,这样,主程序就得以继续执行。

假如病毒程序中有如下几行代码:

call delta ;这条语句执行之后,堆栈顶端为delta在内存中的真正地址

delta: pop ebp ;这条语句将delta在内存中的真正地址存放在ebp寄存器中

……

lea eax,[ebp+(offset var1-offset delta)]

;这时eax中存放着var1在内存中的真实地址

当pop语句执行完之后,ebp中放的是什么值呢?很明显是病毒程序中标号delta处在内存中的真正地址。如果病毒程序中有一个变量var1,那么该变量实际在内存中的地址应该是ebp+(offset var1-offset delta),即参考量delta在内存中的地址+其它变量与参考量之间的距离=其它变量在内存中的真正地址。有时候我们也采用(ebp-offset delta)+offset var1的形式进行变量var1的重定位。当然还有其它重定位的方法,但是它们的原理基本上都是一样的。这里不在叙述。


win32汇编
病毒 加密
目前兴趣所在
2007-09-07 10:27
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
我已经解决了程序其中一些问题
可以感染应该感染的EXE文件 并跳过一些不应该感染的文件
可是源码在家没法发上来
有空一定弄上来

win32汇编
病毒 加密
目前兴趣所在
2007-09-16 20:10
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
以下是引用F104TW在2007-9-25 18:40:32的发言:
其实啊病毒分非常多种啦

我已经说明了我写的是感染PE文件的病毒的原理了 呵呵


win32汇编
病毒 加密
目前兴趣所在
2007-09-27 10:39
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
程序更新啦  大家关注一下

win32汇编
病毒 加密
目前兴趣所在
2007-11-01 17:27
快速回复:[分享][开源]pe病毒原理
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015375 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved