Blurry Box加密技术包括七种方法,这七种方法结合起来,大大增加了破解难度。使得即使重新开发出一套新的软件,使用的时间和人力成本大大小于破解Blurry Box并逆向工程的成本。以下我们将说明Blurry Box所采用的的七种方法。
1 创建变量
为了增加软件的复杂性,软件中的多个函数会被重新生成为函数变量。一个封装函数会通过函数的输入参数选择执行哪个变量。
2 变量变化
每个变量都会在一定范围值内发生变化,以防止破解者通过补丁形式每次都固定执行同一变量。
3 变量加密
所有的变量都被加密以阻止破解者根本不解密就通过逆向工程获得变量。
4 植入陷阱
除了已经生成变量,更多的变量会被加密并作为陷阱植入到代码中。陷阱之中会包含锁定代码,这意味着如果陷阱被触发,加密狗将会启动自锁功能,防止用于再次解密。这意味着破解者根本无法再次利用加密锁进行解密破解工作。
5 加密狗中变量的选择
封装函数将会使用加密狗选择变量。为此,输入参数发送到加密狗中,所使用的变量值则被返回。这使得攻击者不再可能通过逆向工程解密封装函数找出需要哪个变量,而是必须输入所有可能参数并运行代码才能确定。
6 加密狗中的状态记录引擎
所有开发人员都知道函数只能按照他设定的顺序执行。上一次的解密方法将会存储在加密狗中作为一种状态,下一次的解密则会检查是否满足此状态,如果没有满足则触发陷阱,以防止破解者尝试各种可能的变量。这样破解者每次不得不重新来过,这将大大增加破解的复杂程度。
7 解密延迟
程度的正常操作中,每隔30秒只有一定数量的解密可以被执行。该数量会被作为解密临界值存放在加密狗里,加密狗会根据该值进行相应解密。这样做不但使过程更加复杂,而可以大大拖慢破解者的破解速度。
总 结
BlurryBox加密使用的这七种方法,大大增加了复杂性和所需的破解时间。最终对于破解者来说,重新开发类似的软件会比破解来得更加容易。所以到后来肯定就放弃破解Blurry Box这种成本过高收益过小的“生意”了。