- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
东华大学计算机病毒PE病毒实验报告
PAGE \* MERGEFORMAT17
计 算 机 病 毒
实验报告
姓 名:
学 号:
老 师:
日 期:
一.PE文件感染实验
一:参照病毒感染PE文件的7个步骤,记录病毒是如何感染文件 (文字和截屏形式)
病毒感染文件过程(以感染文件KeyMaker.exe 为例):
重定位,获得所有API地址:
通过软件Stud_PE可查看可执行文件KeyMaker.exe的结构可查看文件内容:
1.判断目标文件开始的两个字节是否为“MZ”:
2.判断PE文件标记“PE”:
3.判断感染标记,如果已被感染过则跳出继续执行宿主程序,否则继续:
4.读取IMAGE_FILE_HEADER的NumberOfSections域,获得Data Directory(数据目录)的个数,(每个数据目录信息占8个字节):
5.得到节表起始位置。(数据目录的偏移地址+数据目录占用的字节数=节表起始位置)。
6.得到节表的末尾偏移(紧接其后用于写入一个新的病毒节信息)
节表起始位置+节的个数*(每个节表占用的字节数28H)=节表的末尾偏移。
7.开始写入节表,感染文件:
二:在掌握Stud_PE工具的基础上,比较文件感染前后有哪些变化。
感染前:
感染后:
由上两图可以看出,感染前后有4处发生了变化:
1:PE文件头中入口点:
感染病毒后KeyMaker.exe程序的入口点变成了病毒文件的入口点。
2:PointerToRawData域值,即该文件的偏移量发生了变化;
3:imag的大小发生了变化;
4:Number of sections的数量发生了变化。
由.exe文件感染前后变化可知,PE病毒感染过程即在文件中添加一个新节,把病毒代码和病毒执行后返回宿主程序的代码写入新添加的节中,同时修改PE文件头中入口点(AddressOfEntryPoint),使其指向新添加的病毒代码入口。
程序染毒后运行结果:
1:首先执行病毒程序:
2:病毒代码执行完后执行宿主程序:
三:针对病毒源代码,指出与感染PE文件步骤相对应的程序段
1.判断目标文件开始的两个字节是否为“MZ”。
lea eax,[ebx+offset szMsg1]
push eax
call SingleTest
2.判断PE文件标记“PE”。
cmp word ptr [edi],IMAGE_DOS_SIGNATURE
jne PageError
mov esi,edi
add esi,[esi+003ch]
cmp word ptr [esi],IMAGE_NT_SIGNATURE
jne PageError
mov dwReturn,edi
jmp @f
3.判断感染标记,如果已被感染过则跳出继续执行宿主程序,否则继续。
mov ecx,[esi+74h] ;
imul ecx,ecx,8
lea eax,[ecx+esi+78h]
movzx ecx,word ptr[esi+6h]
imul ecx,ecx,28h
add eax,ecx
sub eax,28h
cmp dword ptr[eax],SI
je @f
4.获得Data Directory(数据目录)的个数,(每个数据目录信息占8个字节)。
pop esi
add ebx,4
inc edx
cmp edx,[esi].NumberOfNames
jl @b
jmp Error
5.得到节表起始位置。(数据目录的偏移地址+数据目录占用的字节数=节表起始位置)
mov esi,hModule
add esi,[esi + 3ch]
assume esi:ptr IMAGE_NT_HEADERS
mov esi,[esi].OptionalHeader.DataDirectory.VirtualAddress
add esi,hModule
assume esi:ptr IMAGE_EXPORT_DIRECTORY
6.得到节表的末尾偏移(紧接其后用于写入一个新的病毒节信息)
节表起始位置+节的个数*(每个节表占用的字节数28H)=节表的末尾偏移。
mov [ebx+hFile],eax
push 0
push eax
call [ebx+lpGetFileSize]
cmp eax,-1
je CloseFile
mov [ebx+dwFileSize],eax
add eax,1000h
7.开始写入节表
x
文档评论(0)