第6讲:设计PE型病毒1
由于某些代码过于危险,在此不会完整的编写出来,只给出思路。思路是属于个人的,给出鄙人的,你也仅仅是理解了我的,真正的还是希望大家举一反三,把所学的东西按自己的思路组合起来,其实也是打造自己程序的一种途径了。
切忌,危险的活动请不要对内,我们要一致对外,在此严重鄙视分裂祖国的XX组织。
最终病毒的功能如下
病毒功能:
自动搜索硬盘上的PE文件(包括exe和dll),在文件中插入病毒体,使该PE文件在执行时先执行病毒体后执行原有程序。
病毒流程(原始文件):
1.查找LoadLibrary和GetProcAddress函数的地址,将其地址保存在数据段两个变量中。
2.将数据段的那两个保存函数地址的变量的地址保存在代码段的存储区中(以下病毒体开始)
3.根据代码段存储区中保存的值调用LoadLibrary和GetProcAddress得到病毒所需要的函数的入口地址,并保存在代码段存储区中
4.搜索硬盘上的所有文件
5.检查该文件是否是合法的PE文件,如果不是,转1
6.检查该文件是否已经被感染,如果是,转1
7.根据节表计算病毒体大小和该PE文件代码段的空隙,如果病毒体不可以完全插入空隙则转1
8.寻找PE文件的引入表,查找LoadLibrary和GetProcAddress函数如果没有找到,转1
9.记录这两个函数的地址在PE文件装载时被存放的位置
10.更新代码段存储区中原来用来存放这两个函数的地址的空间的地址的单元
11.保存旧的入口地址
12.根据代码段的开始偏移和代码段大小计算新的入口地址
13.更新PE文件的入口地址
14.修改代码段的属性成为可读可写可执行
15.写入标志(PUKE)
16.计算病毒代码写入的偏移
17.将病毒体写入PE文件
18.计算从病毒代码跳回源代码的偏移
19.在病毒的末尾写入跳转指令