当创建了程序后,编译器就会将程序的原代码编译成几个机器码的文件。接下来,这些文件就会被衔接起来产生 终的软件档。
图 1: 编译你的原代码
相似于程序的原代码在编译时被转换成机器码,有些工具也可以将已经编译成机器码的文件转变成汇编语言或更高级的编程语言。这些工具被称为反汇编器和反编译器。
图 2: 对你的程序作反编译
一个软件破解者可以使用反汇编器或反编译器观察特定的程序是怎么运作和特定的例程的功能。当一个软件破解者对于目标程序已有了相当的了解后,他就可以修改这个程序的运作方式。例如,软件破解者可以使程序绕过一个检查程序试用期的例程,使它永远启动或更糟的是,使这程序像是已经注册过地运作。
软件保护层
软件保护层的存在使软件破解者无法直接检测或修改编译过的程序。软件保护层就像是一个盾那样,使程序受到加密和保护,不被破解。在一个受保护的程序将要被操作系统启动时,软件保护层会先主控 CPU ,检测是否有反汇编器或反编译器在系统里运行着。当确定没有异常程序运行后,软件保护层才会对这个受保护的程序进行解密,然后将 CPU 的掌控权交还,让它如常运作。
使用软件保护层的好处包括:
弱点
自从有了软件保护层的存在,很多软件破解者都把大部分的精力和时间花在破解软件保护层的身上,而不再是受保护的程序身上。许多工具都是为了帮助破解软件保护层而开发的。这些破解通常使软件破解者可以除掉保护层而得到原程序。
图 3: 普遍的保护层原理
软件保护层 大的问题是它们所使用的保护方式已经是黑客们所熟悉的方法,所以只要使用传统的黑客工具就可以轻易地绕过这些软件保护层。
软件保护层另一个的问题是它们的运行受到操作系统的限制。换句话说,它们只在一般模态下运作。因此,软件破解者可以使用任何与操作系统相同优先等级的情形下运行的黑客工具,这使这些黑客工具可以在特定的时间里完全地监视软件保护层的运作,然后在特定的地方进行攻击。
革命性解决方案
Themida®的开发围绕在一般 软件保护层的主要弱点,使它可以对这些问题提供一个完全的解决方案。Themida®使用SecureEngine®的保护技术。当它在 高 优先等级的情形下 运行的时候,它对抗高级软件破解所使用的是从来都未曾出现过的防御技术。
图 4: Themida® 的保护步骤
SecureEngine® 可以击败所有现行用来破解受保护软件的破解工具。所以,它确保你受保护的软件只在安全的环境下运作。
图 5: SecureEngine® 技术更强化了你现存的保护措施
现行的保护层声称它们是 好的!
软件保护程序编制从来就是一个大多数程序编制员所不熟悉的领域。软件保护技术不像一般可以看得见的特点,也不能做比较。因此,多数的软件保护程序作者可以描述很多令人印象深刻的保护措施和技术,可是在多数的情形下,这些保护措施和技术都是难于存在,或比他们所描述的来得简单。 .
多数的软件保护层着重强调非常强的加密算法,例如 RSA , Elliptic Curves 和 AES 。他们希望通过这些使终极用户相信这些软件保护层和加密算法的功用是有效和破解不了的。可是,事实却非这样,因为保护软件和资料保护差异很大。就算软件保护层使用 健全的加密算法来对程序作加密,这程序还是迟早需要被解密,以让它能够运行于 CPU 。多数的软件破解者会在解密的阶段动工,将解密了的程序从内存转送到磁盘上,使他们不需要破解这些加密程序来获得原程序。
任务
至于Themida® 我们现实地针对一些可以被 软件破解者利用的弱点,以期可以提供尽可能 大的保护予任何的程序。