VMP主程序脱壳分析.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
窗体顶端 NOOBY牛已经玩得差不多了 我来补一刀 ^_^ 引用:55 push ebpE8 30C52800 call 0029D7AE ; 0029D7AE 0001127E 8BC0 mov eax,eax50 push eaxE8 E8E92700 call 0028FC6E ; 0028FC6E8BC0 mov eax,eax55 push ebpE8 5B333700 call 003845E9 ; 003845E9 0001128E 8BC0 mov eax,eax52 push edxE8 FBE02C00 call 002DF391 ; 002DF391 被错位了 写段脚本恢复FF25的错位 引用: luanxu: inc search find search,#E8??????008BC0# cmp $RESULT,0 je exit mov search,$RESULT GCI search,DESTINATION cmp $RESULT,001F3000 //UPX0-VA jb luanxu cmp $RESULT,003DE000 //UPX2-VA jae luanxu GCI search,COMMAND dec search mov [search],#909090909090# asm search,$RESULT jmp luanxu 修复后: 引用:E8 31C52800 call 0029D7AE ; 0029D7AE 0001127D 90 nop 0001127E 8BC0 mov eax,eaxE8 E9E92700 call 0028FC6E ; 0028FC6E90 nop8BC0 mov eax,eaxE8 5C333700 call 003845E9 ; 003845E9 0001128D 90 nop 0001128E 8BC0 mov eax,eaxE8 FCE02C00 call 002DF391 ; 002DF39190 nop 找个CALL跟跟看 有什么新花样 EIP单步 什么都不用看 只看3条 引用: MOV EXX,A LEA EXX,[EXX+B] LEA EXX,[EXX+C] 这个CALL里用到以下3条 引用: 002ADE81 BDmov ebp,57256 002ADE8A 8BAD AF693000 mov ebp,dword ptr ss:[ebp+3069AF] 0034A300 8DAD 626F45AB lea ebp,dword ptr ss:[ebp+AB456F62] 前面2条合起来指向一个DWORD 和最后一条组装成最终的函数地址 引用: [A+B]=[57256+3069AF]=[0035DC05]=D13B2C85----记为R1 R1+AB456F62=7C809BE7--指向我本机的kernel32.CloseHandle NOOBY牛的视频里 找的就是这个 视频里面最后生成的LOG文件里面 每一行的4个成员 后面2个一目了然 是真实函数以及对应的DLL 前面2个则是A+B,C了 这里VMP把A+B拆分成了A和B 使得我们难以在第一次看到A或者B时就能确定是哪个函数(关于NOOBY的VMP1.8脚本可能会另外撰文补充或者等NOOBY牛的BIN ^_^) 经过这3条之后 最终函数的真实地址保存在EXX中 这里的EXX不是固定的 给通用脚本编写增加不少难度 最后保存在EXX中的函数会通过一个 引用: push dword ptr ss:[esp+D] retn E 结构返回真实API地址 这里的D,E也不是固定的 看完FF25后 再来看看IAT调用 一般的DELPHI程序 第一处IAT调用CALL便是这个 引用:53 push ebx83C4 BC add esp,-44BB 0A000000 mov ebx,0A54 push esp 0001143A E8 260E3A00 call 003B2265 ; 003B2265 0001143F F64424 2C 01 test byte ptr ss:[esp+2C],174 05 je short

文档评论(0)

光光文挡 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档