南京邮电大学恶意代码——实验:Pe病毒编写

前言

修改PE文件一般有两种思路。

  1. 第一种是通过编程语言来修改,这种方式的Visual Studio的Windows.h头文件里面有完全的PE相关管理结构的完整定义,通过编程来修改比较烦,但是优点是可以自动化进行,并且不需要去找相关的工具;
  2. 第二种方法是通过一些二进制工具来进行修改,这种方式是交互式的,能够直观的感受到整个过程,缺点是需要熟悉相关工具的UI使用方式,而且修改大量方式的时候市面上的这些工具一般都不提供编程接口;

因为本次实验仅仅是一个探索,所以就采用第二种方式。

需要的工具

本次实验用到的工具如下:

  • CFF Explorer:用于结构化查看PE管理结构,同时也提供方便的PE文件修改(之前不知道的时候一直是用Winhex直接修改的);
  • Winhex:用于在二进制层面修改PE文件,在本次实验中主要用于在新添加的节里面添加自己的代码;
  • Ollydbg:用于调试自己的ShellCode;
  • 相关能够生成本地字节码的编译环境:用于生成和观察相关汇编指令的字节码

实验前需要注意的事项

由于PE文件中的很多字段是相互关联的,这里需要先列一下要修改/注意的事项,等到修改的时候对照清单一步一步的看:

  • FileAlignment:文件中的节对齐大小,等下设置新的节的时候节大小必须对齐;
  • SectionAlignment:内存中的节大小,设置节内存起始偏移的时候必须对齐;
  • SizeofImage:内存中的PE镜像对齐后的总大小
  • SizeofHeader:这个值是按照FileAlignment的值对齐的,也就是说大部分情况下Header的地址范围内是有空洞的,可以利用,如果没有空洞的话这个值需要修改,并需要依次后移PE文件的数据;
  • AddressOfEntryPoint:入口点
  • NumberOFSections:节表长度

整个的修改流程应该是:

  1. 计算新增加的节的内存布局范围
  2. 修改NumberOFSections
  3. 使用Winhex扩展新节
  4. 在新节里面填入汇编代码
    任意选择一个PE文件,我这里选择的是DbgView,一款用于查看OutputDebugString函数输出字符串的软件。

新增一个节

计算PE新增加的节的内存布局

首先需要先观察一下原PE文件的内存布局:
在这里插入图片描述我们选择在最后一个节后面插入自己的节,这里列一下计算过程:

  1. Name:随便取
  2. Virtual Size:都可,这里为了方便起见就去0x1000吧
  3. Virtual Address:这里是RVA,之前的的节的地址范围为[0x55000,0x55000+0x31FBB+(0x1000-0x31fbb%0x1000)-1],所以实际的范围应该是[0x55000,0x86fff],那么新的节的起始地址应该是0x87000
  4. Raw Size: 这里取最小的粒度0x200
  5. Raw Address:0X3D000+0x32000=0x6F000
  6. Reloc Address、Linenumbers…:PE文件中不是很重要的东西;
  7. Characteristics:属性,这里取和.text段属性一样的值,顺便提一嘴这个位图实际上包括了两种类型的标记,一种是内存管理的属性&#
有关病毒方面课程的实验内容 实验PE结构分析及DOS病毒感染与清除 一、实验目的 1.熟悉PE文件结构 2.掌握DOS系统下.EXE文件病毒感染与清除方法 二、实验要求 1.实验之前认真准备,编写好源程序。 2.实验中认真调试程序,对运行结果进行分析,注意程序的正确性和健壮性的验证。 3.不断积累程序的调试方法。 三、实验内容 1)手工或编程从user32.dll中获得MessageBoxA的函数地址; 2)查阅资料,结合第2章内容,根据PE结构编写一个小的工具软件,或者用PE Explorer、PEditor、Stud_PE等工具软件查看、分析PE文件格式。针对PE文件格式,请思考:Win32病毒感染PE文件,须对该文件作哪些修改; 3)示例病毒exe_v感染原理及其清除 实验二 Windows病毒分析与防治 一、实验目的 掌握Windows病毒感染与清除方法 二、实验要求 1.实验之前认真准备,编写好源程序。 2.实验中认真调试程序,对运行结果进行分析,注意程序的正确性和健壮性的验证。 3.不断积累程序的调试方法。 三、实验内容 1)编程实现Immunity病毒; 2)修复被Immunity感染的host_pe.exe 3)编程实现脚本病毒或宏病毒,参考相关章节爱虫/梅丽莎病毒;修复被上述病毒感染的系统 实验三 蠕虫/木马的分析与防治 一、实验目的 掌握蠕虫/木马感染与清除方法 二、实验要求 1.实验之前认真准备,编写好源程序。 2.实验中认真调试程序,对运行结果进行分析,注意程序的正确性和健壮性的验证。 3.不断积累程序的调试方法。 三、实验内容 1)实现“冲击着清除者”病毒; 2)实现远程线程动态嵌入技术的木马并验证; 3)实现木马远程监视/控制; 4)修复被上述病毒感染的系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值