Shielden2.04主程序脱壳.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  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文档。上传文档
查看更多
Shielden2.04主程序脱壳 Shielden主程序施用Safengine NetLicensor v2.0.4.0保护.以下分析可能对SE其他版本也同理. 1.Anti: S兄贴了篇Bypass anti分析,原理很透辟了.我补充一下.有点烦琐,大侠们请跳过. SE反调试的几个选项全数是ANTI,可以直接干掉线程,我看了一下主程序,后面也没发现会出问题,当然我没有完整的加一次壳来实验,加壳过程会不会出问题,也没有办法保证.一开始的时候可以改CreateThread,直接归回,到OEP的时候再取消修改,否则程序里的线程也没有办法创建.比如Shielden主程序拖放试练品进入而创建的PE分析线程.如果不取消,将会看到Shielden界面灰色没反应. 干掉诸如检测REGMON等等线程后,主线程里依然有不少ANTI.体此刻对DRX的积极检测.壳会检测TlsValue与DR0~DR3之和是否相当,会mov r32,[r32]经由过程配置r32为DRX来构常,S兄的文章提到过了.当发现不相等或是没出异常,那么壳就获知当前状态为被调试.对第一条S兄采取的办法是在GetThreadContext的时候清掉DRX,并清掉TlsValue.对第二条文本身构造了一个异常.实际上壳在许多处所会进行第二条比较,比较的地址也不同,以是S兄给出的方法可以顺利达到OEP.但是一旦断下然后,在诸如IAT调用什么的的与壳通信的处所,又会被壳检测到.因为可能这搭出现了另外一条mov r32,[r32].而且r32是随机的,不同试练品里不同.DR0~DR3这4个DWORD,不同的试练品也是不同的. 解决办法有两个: 1.OD在F2下断并断下的时候,会无情的清掉DRX.以是还是改改OD这个执拗习惯吧. 修改OD: 代码: 0042EA22 mov ecx,dword ptr ds:[4D8D70] mov esi,400 mov eax,dword ptr ds:[4D8D8C] xor eax,eax mov edx,dword ptr ds:[4D8DA8] mov edx,4D8D78 mov ecx,dword ptr ds:[4D8DC4] nop nop nop nop nop nop nop nop nop nop nop nop这么改当然简单了,如此一来当中断的时候,OD将再也不清DRX了.不过单步也可能会出问题.比如PUSHFD这样指令单步就飞了.如果不满意,那就判断4个DRX是否都为0即可.代码: 0042EA22 jmp 004AF645 004AF645 pushfd cmp dword ptr ds:[4D8D70],0 jnz@Lcmp dword ptr ds:[4D8D8C],0 jnz@Lcmp dword ptr ds:[4D8DA8],0 jnz@Lcmp dword ptr ds:[4D8DC4],0 jnz@Lmov ecx,dword ptr ds:[4D8D70] mov esi,400 mov eax,dword ptr ds:[4D8D8C] xor eax,eax mov edx,dword ptr ds:[4D8DA8] mov edx,4D8D78 mov ecx,dword ptr ds:[4D8DC4] jmp@L@L mov ecx,dword ptr ds:[4D8D70] mov esi,400 mov dword ptr ds:[ebx+4],ecx mov eax,dword ptr ds:[4D8D8C] mov dword ptr ds:[ebx+8],eax xor eax,eax mov edx,dword ptr ds:[4D8DA8] mov dword ptr ds:[ebx+C],edx mov edx,4D8D78 mov ecx,dword ptr ds:[4D8DC4] mov dword ptr ds:[ebx+10],ecx @L popfd jmp 0042EA51代码我不优化了,时间名贵. 这样以后,可以F2而不用担心被ANTI了.当然,依然面对被内存校验到.这搭用S兄的方法,搜刮代码: 9C810C 24000100009D0F31,将rdtsc给N OP掉即可. 2.施用方法1,将可以随意调试而不用担心被SE的检测调试事件给ANTI到了.这搭避免了对G(S)etThreadContext的Hook以免不便(不同程序的mov r32,[r32]代码不同引起HOOK 麻烦)和可能的各种崩溃(本机WIN7,

文档评论(0)

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

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

1亿VIP精品文档

相关文档