了解风险
在创建应用程序时,编译器会将应用程序源代码编译成多个由机器语言代码组成的目标文件。然后将目标文件链接在一起以创建最终的可执行文件。
图 1:源代码的编译
与在编译时将应用程序的源代码转换为机器代码的方式相同,有一些工具可以将已编译的应用程序转换为汇编语言或高级编程语言。这些工具被称为反编译器和反编译器。
图 2:应用程序的反编译
攻击者可以使用反编译器或反编译器来研究特定应用程序的工作原理以及特定例程的作用。当攻击者对目标应用程序有很好的了解时,他可以修改编译后的应用程序来改变他的行为。例如,攻击者可以绕过检查应用程序试用期的例程,使其永久运行,甚至更糟,使应用程序表现得好像它已注册一样。
软件保护器
创建软件保护程序是为了防止攻击者直接检查或修改已编译的应用程序。软件保护器就像一个保护应用程序加密并防止可能的攻击的盾牌。当操作系统要运行受保护的应用程序时,软件保护程序将首先控制 CPU 并检查可能在系统上运行的破解工具(反编译器或反编译器)。如果一切安全,软件保护程序将继续解密受保护的应用程序,并让其控制 CPU 正常执行。
使用软件保护器的优点是:
弱点
自从软件保护器诞生以来,许多攻击者将大部分精力集中在攻击软件保护器本身而不是应用程序上。已经开发了许多有助于攻击软件保护程序的工具。这些攻击通常会导致攻击者获得已解密并删除保护包装的原始应用程序。
图 3:常见的软件保护理念
软件保护器的主要问题是它们使用了破解者非常熟悉的保护技术,因此可以很容易地用传统的破解工具绕过它们。软件保护器的另一个重要问题是它们受操作系统限制执行,即它们以正常的应用程序权限运行。因此,攻击者可以使用与操作系统具有相同优先级的破解工具,从而使他们能够完全监督软件保护者在特定时间所做的事情并在特定位置对其进行攻击。
革命性的解决方案
借助 Themida®,我们将重点放在软件保护程序的主要弱点上,从而提供了一个完整的解决方案来克服这些问题。Themida® 使用 SecureEngine® 保护技术,当以最高优先级运行时,实施前所未有的保护技术来保护应用程序免受高级软件破解。
图 4:Themida® 保护程序
SecureEngine® 击败了所有当前可用于攻击受保护应用程序的破解工具,它将确保您的受保护应用程序仅在安全环境中运行。
图 5:SecureEngine® 技术为现有保护增加了更多强度
当前的保护者声称是最好的!
对于大多数程序员来说,软件保护编程并不是一个众所周知的领域。软件保护技术不像可以看到和比较的“可见”功能。正因为如此,大多数软件保护作者可以谈论包含在保护方案深处的令人印象深刻的技术,而很多时候这些技术中的大多数几乎不存在,或者它们比看起来要简单得多。大多数软件保护者反复强调使用非常强大的加密算法,如 RSA、椭圆曲线和 AES,希望最终用户会相信这些保护器和加密算法是牢不可破的。这与事实相去甚远,因为软件保护与数据保护有很大不同。即使软件保护程序使用最强大的加密算法对受保护的应用程序进行加密,受保护的应用程序也迟早需要解密才能由 CPU 运行。在这个阶段,大多数攻击者将通过将解密的应用程序从内存转储到磁盘来开始他们的工作,因此不必处理加密算法和重建原始应用程序。
使命
在 Themida® 中,我们希望了解攻击者可以利用哪些弱点,以及我们真正需要注意什么,以保护具有最高安全性的应用程序免受软件破解。
特征
这些是 Themida® 的主要特点: