了解风险
在创建应用程序时,编译器会将应用程序源代码编译成多个由机器语言代码组成的目标文件。然后将目标文件链接在一起以创建最终的可执行文件。
图 1:源代码的编译
与在编译时将应用程序的源代码转换为机器代码的方式相同,有一些工具可以将已编译的应用程序转换为汇编语言或高级编程语言。这些工具被称为反编译器和反编译器。
图 2:应用程序的反编译
攻击者可以使用反编译器或反编译器来研究特定应用程序的工作原理以及特定例程的作用。当攻击者对目标应用程序有很好的了解时,他可以修改编译后的应用程序来改变他的行为。例如,攻击者可以绕过检查应用程序试用期的例程,使其永久运行,甚至更糟,使应用程序表现得好像它已注册一样。
软件保护器
创建软件保护程序是为了防止攻击者直接检查或修改已编译的应用程序。软件保护器就像一个保护应用程序加密并防止可能的攻击的盾牌。当操作系统要运行受保护的应用程序时,软件保护程序将首先控制 CPU 并检查可能在系统上运行的破解工具(反编译器或反编译器)。如果一切安全,软件保护程序将继续解密受保护的应用程序,并让其控制 CPU 正常执行。
使用软件保护器的优点是:
- 保护应用程序免受盗版。