彩票走势图

代码保护软件VMProtect学习笔记——反汇编引擎学习(中)

转帖|使用教程|编辑:李显亮|2020-03-10 11:32:17.690|阅读 652 次

概述:小编大家整理了大佬们的使用技巧和经验与大家分享,希望能够帮助你解决实际运用中遇到的问题。本文讲解反汇编引擎学习。

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

相关链接:

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

【下载VMProtect最新试用版】

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

Decode_SetReg函数分析

代码保护软件VMProtect学习笔记——反汇编引擎学习

一共有3组,每组0x17个字节,包含结尾表示0xFFFFFFFF,这些都是保存目标操作数或则源操作数信息的

代码保护软件VMProtect学习笔记——反汇编引擎学习

v6 = (v9 >> 3) & 7;首先v9=0x74,继续我们的查表

转换成二进制如下:0x74=‭‭01 110 100‬

代码保护软件VMProtect学习笔记——反汇编引擎学习

很明显v6=ModRM.reg(Esi)‬

代码保护软件VMProtect学习笔记——反汇编引擎学习

分析Decode_ModRM结构

首先解析ModRm判断寻址模式‬

代码保护软件VMProtect学习笔记——反汇编引擎学习

首先先将ModRM转换下‬

代码保护软件VMProtect学习笔记——反汇编引擎学习

转换成二进制如下:0x74=‭‭01 110 100‬‬

代码保护软件VMProtect学习笔记——反汇编引擎学习

0x40=01,0x80=10,0xC0=11以此类推

判断是否需要SIB寻址方式

代码保护软件VMProtect学习笔记——反汇编引擎学习

R/M==8(100),只有ModRM.mod寻址模式是11(寄存器是不带SIB的).第一种这里是ModRM.mod 提供寻址模式: 11 = register(寄存器)。直接保存ModRM.r/m

代码保护软件VMProtect学习笔记——反汇编引擎学习

第二种情况存在SIB寻址方式。根据上文找到的地址发现是[--][--]”,表示有SIB表。SIB结构如下:

代码保护软件VMProtect学习笔记——反汇编引擎学习

转换成2进制如下:0x24=‭00101100‬

代码保护软件VMProtect学习笔记——反汇编引擎学习
  1. 读取SIB字节
  2. ((unsigned __int8)v10 >> 3) & 7; // SIB.index 提供 index 寄存器寻址
  3. v9->SIB_base = SIB & 7; // SIB.base 提供 base 寄存器寻址
  4. if ( v9->ModRM_Reg_Or_SIB_index_Or_ModRM_rm == 4 )// SIB.index 提供 index 寄存器寻址是否是none 4 = (100)
  5. 假设index寄存器!=4就保存SIB.scale 提供 index 寄存器乘数因子 scale
  6. 判断SIB.base 提供 base 寄存器寻址是否是[*] 5 = (101)
代码保护软件VMProtect学习笔记——反汇编引擎学习
代码保护软件VMProtect学习笔记——反汇编引擎学习

最后读取Displacement_Immediate‬

代码保护软件VMProtect学习笔记——反汇编引擎学习

还有一些Opcode需要ModRM进行补充的。单纯的一个FF无法表达它到底是CALL、INC、jmp、push需要ModRm辅助的,具体看ModRm.Reg

代码保护软件VMProtect学习笔记——反汇编引擎学习

Vmp_Disassembly使用的结构体如下,所有解析后的数据都保存在struc_SaveAllDisasmFunData结构里面

代码保护软件VMProtect学习笔记——反汇编引擎学习

代码保护软件VMProtect学习笔记——反汇编引擎学习

代码保护软件VMProtect学习笔记——反汇编引擎学习

代码保护软件VMProtect学习笔记——反汇编引擎学习


--  未完待续  --

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



标签:

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


为你推荐

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


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP