
Categories: Protection
带有代码混淆功能的 AxProtector
威步为 Windows、Linux 和 macOS 等本地应用程序推出了全新版本的软件加密工具 AxProtector,旨在提供更先进的保护。
AxProtector CTP(编译时保护技术)
AxProtector CTP 适用于 Windows、Linux 和 macOS,为这三种操作系统引入了全新的处理方式和保护技术。
自 2023 年 2 月随 AxProtector 11.20 发布以来,AxProtector CTP 即可供下载。现在,只需持有现有的 AxProtector Windows、Linux 或 macOS 授权,开发者即可在这些操作系统上使用 AxProtector CTP 的全部功能,包括自动保护、模块化许可、代码保护(IP Protection)、文件加密以及全新的编译时混淆功能。AxProtector CTP 的保护机制被深度集成在构建系统的编译过程中。
AxProtector CTP 的推出缘由
苹果公司对其 ARM 平台上的 macOS 操作系统进行了重大调整,自 macOS 12.3 版本开始,代码签名准则变得更为严格。这导致受保护软件(尤其是插件)的运行时解密变得更加困难。虽然目前这对在英特尔或通过 Rosetta 模拟运行的受保护软件尚无影响。
AxProtector CTP 推出的另一个重要原因,是为增强软件的知识产权保护。特别是对于那些只防范逆向工程,而无需授权控制(IP Protection 模式)的软件。威步传统的 IP Protection方法依赖于对用户设备内存中的可执行代码进行加密和临时解密。这意味着,尽管时间极短,可执行代码仍需要在内存中切换为明文形式。
工作原理
这项创新技术通过混淆本地应用程序的代码来实现保护,其工作方式类似于传统的混淆技术。
在经过特殊设置的 LLVM 编译器进行编译时,函数保护分三步完成:首先,函数名称和文本字符串通过加密变得不可读。其次,代码块被混淆,通过插入额外的代码块和序列分支,使代码结构更难被理解。此举会增加可执行代码的大小。
最后,代码块之间的逻辑连接被间接调用所取代。
由于这些“断裂”的分支,二进制文件中的可执行代码的逻辑连接将无法再被识别。这使得代码连接逻辑得到了安全保护,可有效防止逆向工程。其核心优势在于,可执行代码从未以完整明文形式进入工作内存,而是以碎片化和混淆的形式存在,从而使代码分析几乎成为不可能。
授权管理
AxProtector CTP 不仅提供代码保护,也支持对软件及其组件进行授权控制。它提供与 AxProtector .NET NC 相同的所有许可证配置选项。
通过 AxProtector 注入的许可验证代码与应用程序原始代码难以区分,且只有通过正确的许可证密钥才能执行。
应用要求
集成 AxProtector CTP 的保护技术需要特定的构建环境,该环境必须兼容经过修改的 CLANG 编译器和 威步提供的插件。软件开发者只需参照我们提供的设置指南,对编译器进行微小的调整即可激活插件。
目前,AxProtector CTP 与 CLANG 14.05 编译器一同交付。由于主流开发环境(如 Visual Studio 和 Xcode)都支持 CLANG 编译器,AxProtector CTP 的强大功能可以立即使用,并可像标准版 AxProtector 一样提供跨平台保护。它支持 Windows、Linux 和 macOS 系统,以及 Intel、ARMHF 和 AARCH64 等平台。
推荐使用场景
威步将继续支持和开发标准版 AxProtector Windows、Linux 和 macOS,开发者可以根据自身需求继续使用这些版本。
macOS 用户
对于计划开发和保护 macOS 插件的开发者,我们强烈建议使用 AxProtector CTP 保护机制。尤其当加载受保护插件的主应用程序未受 AxProtector 保护时,此方案尤为重要。macOS 应用程序开发者也应考虑 AxProtector CTP,因为它将成为 macOS 的标准保护系统。
Windows、Linux 用户
AxProtector CTP 通过混淆处理为代码增加了额外的安全性,能有效保护软件代码防止反编译。如果系统要求能够满足或在未来能够实现,建议可以转向使用 AxProtector CTP。
性能
根据我们的经验,使用 AxProtector 或 AxProtector CTP 保护的应用程序在运行时的性能水平相似。仅当混淆功能应用于某些关键运行时功能时,可能会对性能产生一定影响,具体取决于系统环境。因此,我们建议使用 AxProtector CTP 集成的 Profiler 性能分析工具进行测试。
实际使用
在首次评估加密流程时,威步可以提供预配置好的 CLANG 编译器和编译器插件,便于轻松集成到构建系统中。我们还为希望自行调整编译器的开发者提供插件说明。
AxProtector CTP 的配置方式与 AxProtector .NET NC 或 AxProtector Python NC 几乎完全相同。
AxProtector 包含一系列强大的功能,如自动保护、分模块授权(许可列表)、IP Protection 模式和文件加密。AxProtector CTP 新增了编译时混淆选项,该功能可通过配置轻松激活,但需额外购买专用许可。
AxProtector CTP 利用 LLVM 编译器的中间文件格式,从而支持多种编程语言和平台,包括 C、C++、Rust 和 Swift 等。
未来计划
威步将持续完善和提升用于 Windows、Linux 和 macOS 本地应用程序加密的 AxProtector 和 AxProtector CTP。软件开发者和供应商可以根据其应用需求选择最合适的保护机制。下一步计划是在 AxProtector CTP 中以单独授权功能的形式,增加 CodeMoving 功能。
KEYnote 45 – 春季版/夏 2023