电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

SProtect 最全脱壳教程 原理剖析VIP免费

SProtect 最全脱壳教程 原理剖析_第1页
1/25
SProtect 最全脱壳教程 原理剖析_第2页
2/25
SProtect 最全脱壳教程 原理剖析_第3页
3/25
SProtect最全脱壳教程+原理剖析废话不多说,上步骤!1、什么强度?别问,问就是全保护!2、加壳:超级模式3、导入表:超级模式4、内存校验:虚拟模式5、…..文章内容:1.IAT扫描与修复2.antidump处理3.IAT导入表修复4.写补丁进行修复antidumpIAT扫描之出入01之牛头马面之自动运算扫描大法:超级模式的IAT保护强了点,但是没啥用,加密类型大致分为如下几种模式1、Call到IAT解密2、JMP到IAT解密3、CALL到IAT解密然后Jmp进入虚拟机通过以上的特征进行扫描,扫描大概的原理:1、指定代码段开始与结束(.text),一般代码段的开始地址是0x004010002、扫描代码段和代码段结束的所有call和jmp,并且都是IMM类型3、判断call和jmp的imm是否处于svmp1区段,如果是svmp1区段,则可能是antidump或iat下面通过扫描得出结果:1.2.修复原理:0首先扫描出来的call和jmp要排除antidump1遍历进程所有的模块,取出导出表的各个函数地址,并且记录2跟踪每一个call和jmp,一直到跟踪到ret3判断栈顶[esp]的值是否处于系统库的导出表函数头部4如果栈顶[esp]的值处于某个系统库的导出函数头部,那么[esp]的值就是api地址,这里记录一下api地址(这里还有一种方式可以确定,就是如果[esp]的地址不处于主模块的区间,则就是第系统库或第三方库API地址)5如果确定了[esp]的值就是api,那么[esp+4]的地址如果处于代码段区间就是CALLIAT,如果[esp+4]的地址如果不处于代码段区间,则是JMPIAT类型6如果[esp]的地址处于主模块的区间,那么可能就是MOVR32,IAT类型区分IAT加密的方式分为pushcall和callretn方式:invoke_code_address是扫描出来的调用IAT的地址此时如果[esp+4]-invoke_code_address==5,那么就是pushcall模式,此时iat的开始修复地址就要减1如果[esp+4]-invoke_code_address!=5,那么就是call_retn模式,此时地址,此时iat的开始修复地址就要不需减1引用上述第6点,如果[esp]的地址处于主模块的区间,那么可能就是MOVR32,IAT类型,那么这里需要再次判断[esp]的地址是否处于代码段区间,如果处于代码段区间那么确定就是MOVR32,IAT类型如果确定是MOVR32.IAT类型,则判断api地址–IAT调用的地址如果结果是5且movr32,iat的r32不等于eax,那么就是pushcall模式,否则就是none模式none模式就是原moveax,iat的模式,因为moveax,dwordptrds:[iat]正好够5个字节,所以在修复的地址不需要减1如果结果不等于5,则是callretn模式通过上面的+1或-1以及各种识别操作,可以扫描到IAT如下:if((..||esp4>=g_svmp1_start&&esp4

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

SProtect 最全脱壳教程 原理剖析

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群