彩票走势图

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

转帖|使用教程|编辑:李显亮|2020-05-08 09:34:34.047|阅读 237 次

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

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

相关链接:

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

【下载VMProtect最新试用版】

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

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

构造出PushRegister那几条指令

1、将不符合条件的全部删除,直到找到push 0xFACE0002这条为止

2、因为Vmp保存寄存器环境代码是随机性的,原始壳模板的是固定的所以要替换掉

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

3、因为 pushfd pushad模板后面必然是push 0xFACE0002

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

4、根据寄存器不同而设置不同的VmpOpcode,进行构造填充struct_DisassemblyFunction结构

5、返回:lods byte ptr ds:[esi]在数组第几个元素

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

OD最终效果图如下:

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

OD数组struc_SaveAllDisasmFunData->ArrayAddress排列顺序如下:(注意 struc_SaveAllDisasmFunData->ArrayAddress排列顺序 就是最终代码显示顺序)

代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
处理lods byte ptr ds:[esi]指令

1、初始化v245跟v246数组,具体用处待定

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

2、找到处理的地方Vmp == 0x36

3、struct_DisassemblyFunction结构重新赋值

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

4、找到该struct_DisassemblyFunction所在的数组位置

5、并重新new个新的struct_DisassemblyFunction

6、根据随机数构造命令:INC、Add、lea,实际上只要实现esi+1都行

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

7、OD最终效果图:

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

8、原始模板

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

9、前面的构造出了inc esi(add lea),那么还差一句mov al,[esi]

10、注意v158 = GetRandInt0123((int)&savedregs);这一句是随机获取0~3,也就是Reg:0=al、1=cl、2=dl、3=bl

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

11、注意这一句跟后面的指令都是有关联的,换了后面影响的指令都要换不同的Reg

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

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

标签:

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

文章转载自:

为你推荐

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


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP