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

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

【下载VMProtect最新试用版】

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

壳主要干了什么/strong>

①初始化壳模板:指令变形、等价替换。例如:

jmp = push + retn 或则 lea + jmplods byte ptr ds:[esi] = mov al,[esi] + inc esi 或则 mov al,[esi] + add esi,1

②优化Handle块代码,将不使用的直接删除

ESIResults[X] == 0表示不使用,这种就会优化ESIResults[X] == 1表示使用

③找出填充虚拟机上下文的两个Handle块

1、找出壳模板push 0xFACE0002与mov edi,0xFACE0003

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

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

总结:

  • 代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
  • 所使用的结构体如下:

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

2、根据pNtHeader_OptionalHeader.Magic筛选ESI_Matching_Array数组

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

首先我们得到的信息有:

  • ESI_Matching_Array每一组是8个字节,一共有0Xcc组,也就是总长度是0x660=8*0xCC,目前已知:
    ESI_Matching_Array[0] == 与Magic有关
    ESI_Matching_Array[1] ==
    ESI_Matching_Array[2] == VMOpcode
    ESI_Matching_Array[3] ==
    ESI_Matching_Array[4] ==
    ESI_Matching_Array[5] == Size
    ESI_Matching_Array[6] ==
    ESI_Matching_Array[7] == 未使用,都是0
  • v184数组保存所有结果0或则1
  • 第一个判断:v16 = _bittest(v15, Type & 0x7F)成立条件。目前只讨论win32PE结构,Type都是=1,我们发现*(byte*)(ESI_Matching_Array+0)的值只有6(110或则4(100

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

    6=0110 bt 1 第一位的值给CF,就是1,不成立继续执行第二个判断

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

    4=0100 bt 1 第一位的值给CF,就是0,成立v17=0,不继续执行第二个判断

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

总结:

  • v184保存结果的什么时候使用、区别这个有什么意义跟0有什么区别/span>
    1表示使用,0表示未使用(后期优化掉)

    代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
  • ESI_Matching_Array与VmHandle块对应(我整理了一份,未必全对的只作为参考)

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

3、判断用户解析Opcode有没有需要特殊处理的指令

这些都是一些不常用的指令,如果存在就在ESIResults[X]=1,表示使用

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

假设找到的话执行Vmp_GetVmHandleIndex函数

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

v184==ESIResults就是我们前面筛选的,如果有就在指定位置+1,表示使用

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

—  未完待续  —


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

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年1月27日
下一篇 2020年1月27日

相关推荐

发表回复

登录后才能评论