当您希望保护您的.NET程序以防止盗版时,AxProtector.NET会是一款省时省力的理想解决方案。
采用AxProtector.NET全自动软件加密工具,您无需做任何代码开发即可全自动的保护您的.NET程序免受盗版或逆向工程的侵害,从而牢牢地掌握着您的劳动果实及数字资产。
只需要完成基础配置,即可完整加密.NET程序,并且完成授权配置。
首先选择.NET程序中需要配置加密的模块,指定其在用户处需要独立的授权完成功能激活。WUPI函数自动检验该授权并且控制应用程序的执行方式。
采用AxProtector.NETIPProtection保护模式,可实现纯代码保护,最终用户无需任何授权也无需安装任何服务程序或运行时。
加密.NET的应用程序的类和方法层,并置于安全层中,即AxEngine安全引擎,并自动添加尖端的反调试和防反汇编技术。
各个方法以加密的形式加载到内存中,并在调用前一直保持加密的状态,仅在被调用时,在后台自动解密。被调用的程序通过JIT编译器之后,即从内存中移除,这意味着IL代码明文暴露时间能缩短到最少。该加密解密方式对应用程序的影响最小,但软件加密水平极高。
相比使用CodeMeterCoreAPI,使用AxProtector.NET能够以一种最小的代价达到极高的软件保护水平。当然软件商也可以选择额外使用CodeMeterCoreAPI功能以进一步增加安全强度。
01基础配置
使用AxProtector.NET软件商无需对源代码做任何修改,只需将AxProtector.NET整合为编译后进程,在软件编译后、创建设置前由AxProtector.NET完成加密操作。软件商可以通过图形用户界面或命令行工具使用AxProtector.NET。如果作为命令行工具使用,AxProtector.NET可以在自动构建系统中实现集成运行。
AxProtector.NET自动选择并加密定义过许可证的各个方法,但不包括更小的方法以及由于技术原因不能加密的方法。解密是在程序运行过程中实时进行,对应用程序的性能影响很小。为了平衡好软件保护和软件性能,也可自定义选择需要加密或不需要加密的方法。
加密后的应用程序启动时,系统会自动检查许可证是否可用。如果许可证可用,各个方法在运行时被动态解密,应用程序可以运行。如果没有对应的许可证,系统会显示报错信息,停止程序,或者报告异常。软件商可自定义异常信息,或者用一个未加密的方法应对异常。
02自定义许可
为了实现模块化保护,软件商可以定义许可证(产品码)和单个方法或完整类之间的关联,并可以用WUPI查询软件源代码中的不同许可证,设置软件在缺少许可证的情况下做出相应的反馈。例如,可以隐藏菜单或显示自定义错误信息。用另一个许可证(产品码)加密可以提供最高的安全级别;通过WUPI查询,可设置软件的受控行为,以达到加密和API查询的组合的最佳解决方案。
03IPProtection模式
IPProtection模式是专门为免费软件、免费试用或带有许可证的混合模式而创建。与基础配置不同的是,IPProtection模式不会将加密与CodeMeter许可证进行关联。相反,解密密钥安全地集成在应用程序当中,以便任何人都可以启动该应用程序。
对于免费模式,IPProtection模式可以与定制许可完美结合。应用程序的部分内容仅在IPProtection模式下被加密,因此可随时使用。其他部分则与许可证绑定,只有在用户购买了必要的许可证后才能访问,通过WUPI查询检查用户是否有权访问某个特定的特征或功能。
04支持的操作系统
AxProtector.NET保护用.NETFramework2.0或更高版本创建的应用程序(可执行文件)和库。为了获得最新的安全和性能改进,建议使用.NETFramework4.7.2或更新版本。
当使用4.7.2之前的.NET框架时,这些方法会在配置的时间后从内存中删除。由于有智能的两级缓存,在这种情况下,加密对性能的影响微乎其微,并且所实施的加密机制提供了非常高的保护水平。
IPProtection模式需要.NETFramework4.0或更新版本。
AxProtector.NETStandard保护.NETStandard2.0应用程序,如.NETCore2.0或Mono5.4应用程序。
05AxProtector.NET中的安全机制
每当第一次运行一个加密后的方法时,AxEngine就会被激活,其将立即查找是否有可用许可证,如有许可证可用,许可证会自动激活并用于解密相关方法。作为完整性检查的一部分,AxEngine还测试软件是否被篡改过。其使用最先进的反调试和反逆向工程方法识别各种威胁,并在发现任何此类风险时停止它。在这种情况下,软件商可以选择将许可证锁定。
AxProtector包含后台监控系统,以实现定期检查许可证、软件完整性以及是否存在威胁。
AxProtector.NET还提供了可选的隐藏命令,可作为额外陷阱方法添加至软件中。任何试图解密加密后的功能以达到破解目的行为,均会误入陷阱,并触发锁定许可证的命令,用于阻止解密更多的功能。自动陷阱使得AxProtector.NET成为阻止系统分析的绝佳手段。
相比普通的混淆器,AxProtector.NET的安全加密级别更高。传统的混淆只是改变名称,并将软件扰乱为条状的代码,而AxProtector.NET则使用强大的位AES对称算法对可执行代码进行加密。即使使用最好的破解工具也无法反编译硬盘上的程序集。受保护的代码在安全的加密狗黑箱中或Windows系统服务中解密,相比.NET层面上的简单混淆更让破解者无法得逞。破解者如果合法授权或密钥,则无法从内存中获取代码。有了陷阱的加持,更是让方法钝化、系统化解密以及遍历方法等破解手段在实际应用中变得完全不可能。
当有陷阱被触发时,许可证被锁定,钥匙丢失,无法再进行任何其他解密尝试。AxProtector.NET与混淆器相比还有一个基本优势:函数无需重新命名,这意味着反射、远程或WCF等功能仍然可用,不会对软件的安全性造成任何影响。