彩票走势图

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

转帖|使用教程|编辑:李显亮|2020-05-20 11:17:53.573|阅读 175 次

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

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

相关链接:

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

【下载VMProtect最新试用版】

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

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

处理Jmp Ret指令

1、通过随机数决定jmp ret指令是变换成:

随机数==2
lea exx,dword ptr ds:[eax*4+0x474FCF]
jmp [exx]
随机数==1
push dword ptr ds:[eax*4+0x4051BB]
retn

2、注意v238 = GetRandInt0123((int)&savedregs);这一句,表示它的Mod.Reg寄存器是随机的0~3

代码保护软件VMProtect学习笔记——Handle块优化与壳模板初始化
处理Handle里面的Vmp_Ret函数

跟前面一样,将popad复杂化,变成pop eax、pop ecx等等

1、ESI_Matching_Array[2] == VMOpcode,符合条件的是:Vmp_Ret指令(pop xx popad popfd这种)

,{ 0x06,0x01,0x09,0x00,0x00,0x02,0x00,0x00, }

//00474FCB 58 pop eax; 123.0047499B

//00474FCC 61 popad

//00474FCD 9D popfd

,{ 0x06,0x00,0x08,0x00,0x00,0x02,0x01,0x00, }

//00474FC7 58 pop eax; 123.0047499B

//00474FC8 61 popad

//00474FC9 9D popfd

2、将popad跟popfd删除,直到遍历到ret就退出

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

3、将前面v7->struc_PushRegister保存的寄存器递减方式存储,注意去掉Esp寄存器

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

4、总结

原始的:

pop eax

popad

popfd

ret

修改成:

pop eax

pop xx

pop xx

pop xx

xxxxx

ret

--  未完待续  --

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

标签:

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

文章转载自:

为你推荐

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


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP