5- Windows病毒分析 - 企业信息化培训资料.ppt

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

计算机病毒 Computer Virus;SMC;SMC样例;SMC样例;ShowMessage proc ;这里用“::”的话,就能够使标号成为全局性的 ShowMessageStart:: invoke MessageBox, NULL, addr szMsg1, addr szCaption, MB_OK ShowMessageEnd:: ? ;用nop来预留空间,以便后面的SMC能够成功执行; ;否则如果空间不够,将有可能产生不可预测的错误: nop ret ShowMessage endp ?ReplaceMent proc ;将要用来SMC的代码: ReplaceMentStart:: invoke MessageBox, NULL, addr szMsg2, addr szCaption, MB_OK or MB_ICONINFORMATION ReplaceMentEnd:: ret ReplaceMent endp end main;Win32 PE病毒原理;Win32 PE病毒原理;Win32 PE病毒原理;Win32 PE病毒原理;mov ecx,[esp] ;将堆栈顶端的数据(返回Kernel32的地址)赋给ecx xor ?edx,edx getK32Base: ? ? dec ?ecx ? ? ? ? ;逐字节比较验证,也可以一页一页地搜 ? ? mov ?dx,word ?ptr [ecx+IMAGE_DOS_HEADER.e_lfanew] ? ;就是ecx+3ch ? test dx,0f000h ;Dos Header+stub不可能太大,超过4096byte ? ? jnz ?getK32Base ? ? ? ? ? ? ? ?;加速检验 cmp ecx,dword ptr [ecx+edx+IMAGE_NT_HEADERS.OptionalHeader.ImageBase] ? ? jnz ?getK32Base? ?;看Image_Base值是否等于ecx即模块起始值 ? ? mov [ebp+offset k32Base],ecx ?;如果是,到kernel32的Base值 ……;a)已知函数的导出序号 (1)定位到PE文件头。 (2)从PE文件头中的可选文件头中取出数据目录表的第一个数据目录,得到导出表的地址。 (3)从导出表的Base字段取得起始序号。 (4)将需要查找的导出序号减去起始序号,得到函数在入口地址表中的索引。 (5)检查索引值是否大于等于导出表中的函数个数。如果大于的话,说明输入的序号无效。 (6)用该索引值在AddressOfFunctions字段指向的导出函数入口地址表中取出相应的项目,这就是函数的入口地址RVA值,当函数被装入内存后,这个RVA值加上模块实际装入的基址(ImageBase),就得到了函数真正的入口地址。 ;b)从函数名称查找入口地址 (1)定位到PE文件头。 (2)从PE文件头中的可选文件头中取出数据目录表的第一个数据目录,得到导出表的地址。 (3)从导出表的NumberOfNames字段得到以命名函数的总数,并以这个数字做微循环的次数来构造一个循环。 (4)从AddressOfNames字段指向的函数名称地址表的第一项开始,在循环中将每一项定义的函数名与要查找的函数名比较,如果没有任何一个函数名符合,说明文件中没有指定名称的函数。 (5)如果某一项定义的函数名与要查找的函数名符合,那么记住这个函数名在字符串地址表中的索引值(如x),然后在AddressOfNameOrdinals指向的数组中以同样的索引值x去找数组项中的值,假如该值为m。 (6)以m值作为索引值,在AddressOfFunctions字段指向的函数入口地址表中获取的RVA就是函数的入口地址,当函数被装入内存后,这个RVA值加上模块实际装入的基址(ImageBase),就得到了函数真正的入口地址。;Win32 PE病毒原理;WIN32_FIND_DATA STRUCT dwFileAttributes DWORD ? //文件属性, //如果改值为FILE_ATTRIBUTE_DIRECTORY,则说明是目录 ftCreationTime FILETIME //文件创建时间 ftLastAccessTime FILETIME //文件或目录的访问时间 ftLastWriteTime FILETIME //文件最后一次修改时间,对于目录是创建时间 nFileSizeHig

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档