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

转帖|使用教程|编辑:李显亮|2020-04-02 09:43:03.353|阅读 93 次

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

# 项目交付用正版,省下一台Iphone12 # # 31款JAVA开发必备控件和工具 #

相关链接:

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

【下载VMProtect最新试用版】

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

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

将Jmp Handle跟Jmp VMDispatcher分别存储

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

Jmp Handle处理方法

  1. 首先来看ESI_Matching_Array[0]==6,v52成立的条件

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

  2. 然后拿v214->FunAddr去struc_SaveAllDisasmFunData数组里面找到符合

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

  3. DateTimeToStr_2函数查找过程,查找到返回该数组下标,然后用GetItem_7读取出该数组:
    条件是:v214->FunAddr == struct_DisassemblyFunction->LODWORD_VMP_Address。基础版(struc_SaveAllDisasmFunData):

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

  4. 然后判断ESIResults[Number_1]==1,如果成立将找到的DisassemblyFunction结构体保存起来

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

  5. 最后将该找到的DisassemblyFunction结构保存到v7->Esi_Addr[4 * Number_1]

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

Jmp VMDispatcher处理方法

  1. 直接去struc_SaveAllDisasmFunData数组查找,找到直接保存
  2. 与Jmp Handle相比少了ESIResults[Number_1]过滤跟将结果保存到*(_DWORD *)&v7->Esi_Addr[4 * Number_1]

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

执行完毕结果

IDA定义的结构体:

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

OD显示:

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

Jmp VMDispatcher与Jmp Handle的含义是什么意思?

如图所示:

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

Jmp VMDispatcher就是:看jmp short 00474989这一句,每个Handle块执行完毕都是跳回到VMDispatcher进行下一轮字节解析

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

Jmp Handle就是:VmpHandle块,每个Handle对应不同的功能

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

--  未完待续  --

VMProtect正版授权专享在线订购特享超低价格!还不赶紧加入你的订购清单?>>更多详情可点击咨询购买



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

文章转载自:看雪论坛

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
VMProtect

新一代软件保护系统,将保护后的代码放到虚拟机中运行,代码反编译软件反破解。

在线
客服
咨询
电话
400-700-1020
在线
QQ
购物车 反馈 返回
顶部
在线客服系统
live chat