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
修复原理: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是扫描出