网络安全 频道

从根源下手 保护共享软件不被暴力破解

在软件的破解方法里,“暴力破解”(俗称“暴破”)算得上最为普及且行之有效的方式了。经过“暴破”后的软件拥有授权版本才具备的所有功能。笔者也是一位软件开发者,对于这种盗窃“知识产权”的行为深恶痛绝,因此将一些个人的防“暴破”经验共享出来,与大家交流和学习。

一、认识“暴破”手段

首先探讨一下破解组织的“暴破”手段。无论是技术多么精湛的组织,他们都会遵守以下的基本步骤来完成“暴破”。

1.判断软件是否加“壳”。

2.运行“暴破”工具,显示软件的源程序。

3.进行软件源程序的分析,找到注册信息语句。

4.修改注册信息的源程序,让注册功能不再生效,或者让注册码显示出来。

从上面的步骤中不难看到,软件之所以被轻易地“暴破”,主要还是因为开发者粗心大意,或者编译技术不完善导致源程序存在诸多漏洞而造成的。只要开发者在编写源程序时设置多层障碍,便可以在一定程度上防止“暴破”(笔者并不敢夸下“海口”,说自己的方法可以完全杜绝“暴破”,但起码可以增强软件的注册保护性能)。

二、防止“暴破”的方法

给软件“加壳”和添加反跟踪代码

1.软件发布前需要将可执行程序进行“加壳”处理,使其他人无法直接修改源程序。“加壳”可以利用很多优秀的“加壳”工具,且最好采用两种以上的工具对程序进行“加壳”。此外,还应尽可能地利用这些工具提供的反跟踪功能。

小提示:

开发者最好是设计自己的“加壳”方法。如果采用现成的工具,建议不要选择流行的,因为这些工具已被广泛研究,有了通用的“脱壳”办法。

2.除了“加壳”处理外,最好在软件开发的过程中嵌入反跟踪代码,防止“暴破”工具找到软件的注册漏洞。

软件的反跟踪方式较多,比较常见的有利用花指令随机改变关键代码的内存地址。下面看一个例子。

程序最初的源代码如下:

start_: 

xor eax,1 

add eax,2 

jmp label1 

label1: xor eax,3 

add eax,4 

xor eax,5 

end start_
0
相关文章