彩票走势图

代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化(四)

转帖|使用教程|编辑:李显亮|2020-04-14 10:05:16.380|阅读 305 次

概述:小编大家整理了大佬们的使用技巧和经验与大家分享,希望能够帮助你解决实际运用中遇到的问题。本文继续讲解Handle块优化与壳模板初始化。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

VMProtect是一种很可靠的工具,可以保护应用程序代码免受分析和破解,但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下,才能实现最好的效果。

【下载VMProtect最新试用版】

小编大家整理了大佬们的使用技巧和经验与大家分享,希望能够帮助你解决实际运用中遇到的问题。本文接着介绍关于反汇编引擎。

第四章:Handle块优化与壳模板初始化 

使用struct_VmpOpcodePY_80~A0结构
代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
  1. 目前发现符合if条件的只有register寻址方式的并且是add aXX,BXX这种,每次都是两条组合出现
    代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
  2. 通过i来区分到底取struct_VmpOpcodePY_80、struct_VmpOpcodePY_84~90、struct_VmpOpcodePY_94~A0其中一组
  3. 判断v227->RandomWord_4EE0EC!=4
    代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
    • 第一种:RandomWord_4EE0EC!=4执行流程
      代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
    • 第二种:RandomWord_4EE0EC==4执行流程
      代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
      代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
㈠SetDisassemblyFunction函数分析

如果说Vmp_Disassembly函数是将Opcode解析。那么SetDisassemblyFunction就是将解析后的Opcode再重新组装回去

代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化

判断是否存在前缀

代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化

根据前面Opcode选择读取对应主操作码,假设该Opcode操作码需要依赖Mod寻址就执行sub_49DFD0

代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化

根据ModRm_Mod寻址方式判断,从而构造不同的指令

代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化

总结

  1. 设置struct_DisassemblyFunction的内容
  2. 用struct_DisassemblyFunction 提供的Opcode信息还原回一条完整的汇编指令
  3. struc_SaveAllDisasmFunData与struc_SavePartDisasmFunData1数组里删除该HandleX信息

总结

  1. 第一次执行才使用struct_VmpOpcodePY_80,非第一次都是使用struct_VmpOpcodePY_84~90或则struct_VmpOpcodePY_94~A0
    代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
    代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
    变形成:
    代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
--  未完待续  --

VMProtect正版授权专享在线订购特享超低价格!还不赶紧加入你的订购清单?

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP