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

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

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

【下载VMProtect最新试用版】

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

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

找到填充虚拟机上下文的Handle块

1、根据GetSize的返回值填充v223数组

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

2、根据大小跟助记符再过滤一遍Handle块,将符合条件的下标保存起来

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

3、符合条件的有2处(填充虚拟机上下文的Handle块):

{ 0x06,0x01,0x01,0x00,0x02,0x02,0x00,0x00, }//0047499B 80E0 3C and al,0x3C//0047499E FF3407 push dword ptr ds : [edi + eax],{ 0x06,0x01,0x02,0x00,0x02,0x02,0x00,0x00, }//00474AC3 80E0 3C and al, 0x3C//00474AC6 8F0407 pop dword ptr ds : [edi + eax]; 123.0047499B

4、未初始化的地方填充随机数

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

5、效果图:

实际有用的只有22跟0,其他都是随机数填充的

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

1、其实这部分代码都是针对部分特殊指令进行变形替换

例如:jmp可以变成 jmp+ret;例如:lods byte ptr ds:[esi]可以变成 mov aXX,[ESI] INC esi 等等

2、涉及重定位的代码还是没有修复

例如:

push 0xFACE0002

mov edi,0xFACE0003

jmp dword ptr ds:[eax*4+0x474FCF]

jmp short 00474984

3、找到填充虚拟机上下文的两个Handle块


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

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

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

相关推荐

发表回复

登录后才能评论