VMProtect是一种很可靠的工具,可以保护应用程序代码免受分析和破解,但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下,才能实现最好的效果。
【下载VMProtect最新试用版】
第四章:Handle块优化与壳模板初始化
使用struct_VmpOpcodePY_80~A0结构
-
目前发现符合if条件的只有register寻址方式的并且是add aXX,BXX这种,每次都是两条组合出现
- 通过i来区分到底取struct_VmpOpcodePY_80、struct_VmpOpcodePY_84~90、struct_VmpOpcodePY_94~A0其中一组
-
判断v227->RandomWord_4EE0EC!=4
-
第一种:RandomWord_4EE0EC!=4执行流程
-
第二种:RandomWord_4EE0EC==4执行流程
-
第一种:RandomWord_4EE0EC!=4执行流程
㈠SetDisassemblyFunction函数分析
如果说Vmp_Disassembly函数是将Opcode解析。那么SetDisassemblyFunction就是将解析后的Opcode再重新组装回去
判断是否存在前缀
根据前面Opcode选择读取对应主操作码,假设该Opcode操作码需要依赖Mod寻址就执行sub_49DFD0
根据ModRm_Mod寻址方式判断,从而构造不同的指令
总结
- 设置struct_DisassemblyFunction的内容
- 用struct_DisassemblyFunction 提供的Opcode信息还原回一条完整的汇编指令
- struc_SaveAllDisasmFunData与struc_SavePartDisasmFunData1数组里删除该HandleX信息
总结
-
第一次执行才使用struct_VmpOpcodePY_80,非第一次都是使用struct_VmpOpcodePY_84~90或则struct_VmpOpcodePY_94~A0
变形成:
— 未完待续 —
VMProtect正版授权专享在线订购特享超低价格!还不赶紧加入你的订购清单/span>>>更多详情可点击咨询购买
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!