VMProtect是一种很可靠的工具,可以保护应用程序代码免受分析和破解,但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下,才能实现最好的效果。
【下载VMProtect最新试用版】
第四章:Handle块优化与壳模板初始化
根据前面符合Jmp Handle满足条件的Number_1作为循环因子
 
 
- 
经过前面筛选Number_1=0XCC,一般HandleX与ESI_Matching_Array都是一一对应,大小都是0xCC 
 - 只是设置的基本的Mod信息跟VmpOpcode=0x23 
 - new出来的struct_VmFunctionAddr结构只是设置了助记符=0xB 
 - 强行扩充到0xFF大小,不足的new struc_SavePartDisasmFunData和struct_VmFunctionAddr结构,具体作用不明 
 
将不符合条件的struc_SaveAllDisasmFunData和struc_SavePartDisasmFunData1从数组中删除
 
 
- 专门找ESIResults[X] == 0的
 - ESIResults[X]与v7->Esi_Addr[4 * X]一一对应
 - 找到VmpOpcode值是:0~9、0xC则退出,符合条件的基本上是:Jmp VMDispatcher找到后把该数组元素删除
 - 清零v7->Esi_Addr[4 * X] = 0
 - 看了一圈基本上是把整个HandleX解析信息的都删除,jmp XXXX标志结束
 - 
未被删除的如下:
 
总结
- ESIResults[X]与v7->Esi_Addr[4 * X]一一对应
 - ESIResults[X]==0,那么取对应的v7->Esi_Addr[4 * X]数组内容(struc_SaveAllDisasmFunData结构体)
 - struc_SaveAllDisasmFunData与struc_SavePartDisasmFunData1数组里删除该HandleX信息
 - 
判断到jmp XXXX为结束点,也就是整个Handle解析的信息都清除掉
 - ESIResults[X]==0就是不使用的了
 
随机数填充struct_VmpOpcodePY_80结构
 
 
sub_49FB90函数分析:
 
 
 
sub_49F958函数分析:
 
 
 
- 通过随机数取word_4EE0D8数组的下标,符合条件的跳到赋值的地方
 - 
退出条件是:要Add添加几组元素由Constant(参数2)决定,外加一句RandInt(1),百分之50%几率再来一次
 - 
它们使用的结构如下:
 
总结
- 
变形总结对照  
RandomWord_4EE0EC是对add al,bl的变形
RandomWord_4EE0D8是对add bl,al的变形
 - 填充这些数据到底怎么使用br>
 - 
struc_47数据使用。我们发现执行完毕后一共有6组  
- 
第一组: 
struc_47->RandomWord_4EE0D8=0x29 ->inc
struc_47->AddrRandomBuff=0x1 - 
第二组: 
struc_47->struc_47->RandomWord_4EE0D8=0x43 ->rol
struc_47->struc_47->AddrRandomBuff=0x5 - 
第三组: 
struc_47->struc_47->RandomWord_4EE0D8=0x5C ->not
struc_47->AddrRandomBuff=0x5 - 
第四组: 
struc_47->RandomWord_4EE0D8=0x34 ->sub
struc_47->AddrRandomBuff=0xB0 - 
第五组: 
struc_47->struc_47->RandomWord_4EE0D8=0x5C ->not
struc_47->AddrRandomBuff=0x0 - 
第六组: 
struc_47->RandomWord_4EE0D8=0x05 ->xor
struc_47->struc_47->AddrRandomBuff=0x7A 
刚好对应以下6句,因为1、3、5是单操作数所以struc_47->AddrRandomBuff不使用

 - 
第一组: 
 - 
struct_VmpOpcodePY_80->RandomWord_4EE0EC使用
- 
第一种RandomWord_4EE0EC=0x4,注意看405069跟40507B这两句是add  
 - 
第二种RandomWord_4EE0EC=0x34,注意看405069跟40507B这两句是sub   
 - 
第三种RandomWord_4EE0EC=0x5,注意看405069跟40507B这两句是xor  
 
 - 
第一种RandomWord_4EE0EC=0x4,注意看405069跟40507B这两句是add  
 
— 未完待续 —
 VMProtect正版授权专享在线订购特享超低价格!还不赶紧加入你的订购清单/span>>>更多详情可点击咨询购买 
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!