首页
社区
课程
招聘
[原创]小菜写的一个病毒雏形
2010-6-11 01:56 8065

[原创]小菜写的一个病毒雏形

2010-6-11 01:56
8065
好晚了,哎哎... 不过刚把俺的小小病毒调好.... 有点兴奋啊...
这个病毒其实很简单.... 功能也很有限,所以不要笑话哈. 好吧, 现在来简单的说一下原理吧.说简单一点就是在一个PE文件里面添加自己的代码,执行一些见不到人的事情,嘿嘿... 关于PE文件结构这里就不详细阐述了,这脱壳论坛不知道PE文件结构不现实啊,呵呵
一开始当然是要打开所需要的exe文件了,当然我这里只是以普通权限打开的,打开以后就来判断该文件是否是已经被感染的文件,如果是的话,自然就不需要进行重复感染了. 打开以后就是判断该文件是否有足够的空间来添加一节表, 如果没有空间, 那就又失败了 ,很多的不足,还需要继续努力啊.... 打开文件以后就把文件定位到程序的映射入口点, 将它的值替换为,自己代码的执行处...然后在自己代码的结尾调回来就万事大吉了... O(∩_∩)O哈哈~
写到这里就成功一半了,虽然听起来比较简单,但是写起来还是有那么点问题啊,因为我没搞清楚那个jmp指令,纠结了好一阵子....
如果要实现自己程序的功能,就需要使用winapi函数了,当然您也可用不用winapi,全用汇编... O(∩_∩)O哈哈~ 对于牛人俺一直都是很崇拜的, 因为那个CreateProcess函数是在kernel32.dll里面,程序由这个函数创建的,具体的过程还是比较繁琐的,<windows内核情景模拟分析>里面讲的很详尽... 看那本书很头大... 唉... 主要是水平不够...所以根据esp中的值就能找到kernel32模块, 然后再查找kernel'32.dll的IAT表,就能得到LoadProcess和GetProAddress函数的地址.... 然后一般想要的函数地址就全部拿到了...(具体的代码就附件吧,里面有注释的)
还有一个问题就是重定位了... 因为代码是在其它的程序中运行的,变量的映射地址不一样嘛....
写到这里就差不多了吧... 详见代码吧... (申明下,代码很挫...也没经过优化... 最原始的嘛... 适合新手学习)

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞6
打赏
分享
最新回复 (7)
雪    币: 145
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ufofind 2010-6-11 19:55
2
0
请问楼主实现了代码的自我复制没有,你写的代码是不是参考了罗云杉的
(病毒是自我复制的0
雪    币: 171
活跃值: (132)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
古越魂 1 2010-6-11 21:35
3
0
参考了一些... 比如获得Kernel32.dl的基址和获取其中API函数地址,病毒也实现了自我复制的功能,搜索E盘的.exe文件,并注入代码,实现感染
雪    币: 145
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ufofind 2010-6-11 21:52
4
0
关键是进行自我的复制,变形,加壳,躲过杀毒软件
雪    币: 171
活跃值: (132)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
古越魂 1 2010-6-11 22:21
5
0
恩, 任需继续努力
雪    币: 38
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
DarkFirer 2010-6-12 08:40
6
0
有进步啊,我感觉不错的说。
雪    币: 225
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
dayed 1 2010-6-12 11:04
7
0
呵呵,努力
雪    币: 80
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
铁血佣兵 2010-6-15 00:32
8
0
哈哈  不错下下来看看
游客
登录 | 注册 方可回帖
返回