加密解密软件VMProtect入门使用教程(二):分析、破解和保护软件

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C++、Visual Basic(本机)、Virtual Pascal和XCode编译器。

同时,VMProtect有一个内置的反汇编程序,可以与Windows和Mac OS X可执行文件一起使用,并且还可以链接编译器创建的MAP文件,以快速选择要保护的代码片段。

为了轻松实现应用程序保护任务的自动化,VMProtect实现了内置脚本语言。VMProtect完全支持Windows系列的32/64位操作系统(从Windows 2000开始)和Mac OSX(从版本10.6开始)。重要的是,无论目标平台如何,VMProtect都支持所有范围的可执行文件,即Windows版本可以处理Mac OS X版本的文件,反之亦然。

静态和动态分析

一个软件产品可以使用静态或动态分析方法来进行分析。静态分析意味着保护破解算法基于反汇编结果分析或受保护应用程序的反编译。破解加密或动态变化的可执行文件需要动态分析,因为使用静态分析来达到此目的是十分困难的。

对于动态分析,正在破解的程序在调试器框架中执行。这样的话,程序运行期间发生的一切都可以由调试器控制。在动态分析期间,破解者使用调试模式逐个绕过程序的所有保护算法,特别是注册密钥生成和检查过程。 另一个经常使用的动态分析工具是跟踪破解程序查询的文件,系统服务,端口和外部设备。

保护应用程序免受破解的主要工具是软件保护程序。大多数保护器提供的保护基于原始可执行文件的打包和加密,重点放在保护解包/解密过程上。

这种算法通常不足以提供可靠的保护。如果应用程序受到打包保护,黑客可以在解包器完成其工作后立即进行内存转储,从而轻松获取原始解压缩文件。此外,还有多种自动化工具可以破解最流行的保护器。 加密也是如此:在获得适当的许可证密钥(通常是合法购买)之后,破解者可以解密受保护的代码部分。

反调试技术

一些软件保护器使用多种反调试技术。但是,它们中的每一个都会影响受保护程序的性能。此外,反调试方法仅对动态分析有效,对静态分析完全无效。更重要的是,现代保护者使用的所有反调试方法都是众所周知的,破解者已经编写了许多实用程序来避免或绕过它们。活动监视器完全不受内置反调试保护的影响。

混淆和虚拟化

保护应用程序的更有效方法是混淆和虚拟化,这会使受保护应用程序代码的分析变得复杂。通常,这些保护方法的高效率是基于人为因素的:代码越复杂,应用程序使用的资源越多,破解者就越难理解程序逻辑,从而无法破解和保护。

混淆通过向应用程序添加过多的指令来“纠缠”应用程序的代码。虚拟化将源代码转换为由特殊解释器执行的字节码,该解释器模仿具有特定命令集的虚拟机。因此,虚拟化导致生成代码的复杂度高且不可降低,如果应用得当,用这种方法保护的代码不包含显式恢复原始代码的方法。因此,虚拟化的主要优点是代码的虚拟化片段在执行过程中不会转换为机器语言命令,这反过来又可以防止破解者获取应用程序的原始代码。

虚拟化片段的逆向工程被简化为分析虚拟机的架构,为虚拟机模拟的处理器的相应架构构建反汇编程序,并分析反汇编代码。正确实现的虚拟机使得为其创建反汇编程序成为一项困难的任务。虚拟化的唯一缺点是执行速度比较慢,所以这种方法应该只适用于对执行速度不重要的部分代码。

如今,大多数保护者并没有过多关注混淆和虚拟化,这允许破解者在自动或半自动模式下移除此类保护。现代保护程序的另一个瓶颈是使用未记录的 Windows 功能,这会导致受保护应用程序在较新版本的操作系统中或启用 DEP 时的操作受限。如有软件下载需求,请私信我~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值