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