带有混淆功能的AxProtector

Lars Møller avatar

WIBU

2023-03-27

软件加密工具AxProtector广受软件开发者青睐及关注。近期,其应用于Windows、Linux和macOS等本地应用程序的工具喜添新成员。

软件加密工具AxProtector广受软件开发者青睐及关注。近期,其应用于Windows、Linux和macOS等本地应用程序的工具喜添新成员。

AxProtector CTP编译时保护技术

AxProtector CTP适用于Windows、Linux和macOS,其中引入了多种新处理方法和新保护。
2023年2月发布的AxProtector11.20即已包含AxProtector CTP功能,即日起可从官网下载使用。现在,只需拥有AxProtector Windows、Linux或macOS的相关授权,即可对在这三种操作系统上的应用程序实现全自动加密、分模块授权、代码保护(IP Protection)、文件加密以及全新功能-编译时保护功能。而AxProtector CTP的保护机制在构建系统的编译过程中集成。

AxProtector CTP推出原因

首要原因是苹果公司对其ARM平台上的macOS操作系统进行了修改,自macOS 12.3版本开始实行了更为严格的代码签署准则。如运行受保护的软件,特别是插件,运行时解密变得更加困难。虽然目前暂不影响在英特尔Rosetta系统上运行的受保护的苹果软件。
另一个原因则是为了提高软件保护的安全水平,特别是对于只做代码保护防止逆向工程而不做授权控制(IP Protection模式)的软件。AxProtector软件加密的传统保护方法是依赖于对用户设备内存中的可执行代码进行加密和临时解密。这意味着,可执行代码在内存中的执行必须切换成明文形式,尽管只是在极短的时间内。

AxProtector CTP工作原理

通过创新技术实现混淆本地应用程序的代码。这种本地代码混淆的工作方式与传统混淆方法类似。
使用经过特殊设置的LLVM编译器进行编译时,可通过以下三步实现函数保护。
首先,部分代码加密:函数名称和文本字符串通过加密变得不可读。
第二步,混淆代码块:额外的代码块和序列分支使代码更加不明显。
此时可执行代码的大小已增加。
第三步,逻辑混淆:通过间接调用取代代码块之间的逻辑链。
二进制文件中的可执行代码的逻辑连接不能再被断裂的分支所识别,使得代码连接逻辑被安全地保护起来,可有效防止逆向工程。
该方法可有效防止逆向工程的原因是可执行代码从未以碎片化和混淆的形式之外的形式进入工作存储器,从而使得代码分析变得几乎不可能。

AxProtector CTP授权管理

该创新技术不仅能保护代码,也能实现对软件或不同组件进行授权控制。所有授权配置选项与AxProtector .NET NC的配置选项一样。
通过AxProtector集成的许可验证的代码在原始代码中极难被辨认,只能通过相应的许可证密钥执行。

AxProtector CTP应用要求

集成AxProtector CTP提供的保护技术需要特殊的构建环境,需要兼容修改过的CLANG编译器和威步提供的额外插件。软件开发者可通过威步提供的设置指南对编译器进行极小的调整从而激活特殊插件。
AxProtector CTP当前版本随编译器CLANG 14.05一同交付。
由于常见开发环境如Visual Studio和Xcode均支持CLANG编译器,AxProtector CTP可连同标准AxProtector跨平台保护技术立即可用。AxProtector支持Windows、Linux和macOS系统以及Intel、ARMHF和AARCH64等平台。
版本推荐
威步将继续支持和开发标准版AxProtector Windows、AxProtector Linux和AxProtector macOS,软件开发者可以继续使用这些版本。macOS用户建议macOS插件开发者使用AxProtector CTP保护机制,尤其适用于在加载加密插件的主程序没有受到AxProtector保护的情况。macOS应用程序开发者也应该考虑AxProtector CTP,因为AxProtector CTP将成为macOS的标准保护系统。
Windows、Linux用户
AxProtector CTP能有效地保护软件代码防止代码反编译,且通过混淆处理为代码增加了安全性。如果系统要求能够满足,建议也可以转为AxProtector CTP。
性能
经验告诉我们,使用AxProtector或AxProtector CTP保护的应用程序在运行时的性能水平相似。只有当混淆功能应用于某些关键运行时功能时,可能会有些影响,但性能影响主要还是取决于系统的情况。因此,我们建议使用AxProtector CTP集成的 Profiler性能分析工具进行测试。
实际使用
首次评估该加密流程时,威步可以提供已经预配置好的CLANG编译器和编译器插件,以便方便地集成至构建系统中。威步也可提供插件说明,开发者可自己调整编译器。
AxProtector CTP的配置与AxProtector .NET NC或AxProtector Python NC的几乎完全相同。
图1:配置样本
​AxProtector包括一系列强大的功能,包括全自动加密、分模块授权(许可列表)、IP Protection模式和文件加密。通过AxProtector CTP新增编译时混淆选项,该功能可通过配置轻松激活。但需要特定许可证才能使用该功能。AxProtector功能所对应的产品编码列表。
图 2: AxProtector功能编码列表
AxProtector CTP使用LLVM编译器中间文件格式,可支持多种编程语言和平台,包括C、C++、Rust和Swift等。
图3:Clang编译器的结构
未来计划
威步将不断完善和提升应用于Windows、Linux和macOS 本地应用程序加密的AxProtector和AxProtector CTP。软件开发者根据需要选择最适合的保护机制。下一步将在AxProtector CTP中单独增加CodeMoving功能。
免费试用
0