第九十九章 以静制动(上) (第2/3页)
个表盘每时每刻都维持着高速旋转,在这个表盘上面分布着16个毫无规则的钥匙孔,那就是程序的接口,钥匙孔随着表盘做着运动。注册码的16个字符就好像是16把钥匙,只有把这16把钥匙准确插入钥匙孔内,解密程序才会开始还原软件。如果钥匙不是原配的,或者少插一把钥匙,又或插错了彼此位置,解密程序就不会还原软件,用户就没有权限来使用这个软件。
难就难在了这个解密程序的运行效率太高了,整个解密过程只需要不到200毫秒,在这么短的时间内,要找出那些钥匙孔都已经是很困难了,更别提插钥匙了,就算是你发现了钥匙孔,等你下手再去插的时候,钥匙孔就已经不知道转到哪里去了。何况这些钥匙孔的位置差异也太大了,有的靠近表盘里面的地方,有的靠近表盘的边缘,但是你又不能插错顺序,只能从第一个字符填到最后一个。跳着填,就算最后所有字符填入的位置都是正确的,程序也会判断你输入了错误的注册码。
雪风做了一个小程序,嵌入到那软件的开头,用来完成这个填字游戏,可是完成最好的一次,也只是成功插入了前面的三个字符,后面的就跟不上了。因为雪风的这个程序多了一个判断过程的,它得先判断是不是出现了钥匙孔,如果出现了,还得判断是不是该插入钥匙,插入哪把钥匙,等判断完,那原本存在的钥匙孔已经转过去,或许就在你判断上一个钥匙孔的这段时间里,下一个钥匙孔也转了过去。
此路看来是行不通了,计算机也有它的一个负载极限,雪风只好再去想别的的办法。既然把这16个字符准确填入解密程序的接口是如此地困难,那么原本的解密程序又是怎么完成这一过程的呢?雪风不由好奇起来,自己的写的那个小程序已经把计算机的运行速度发挥到了极限,尚且无法准确插入,那么解密程序的设计者,又是如何保证自己的程序就能把16个字符准确填入各自的位置,而且顺序还不会错乱呢?
雪风对自己机器的CPU进行了降低频率的处理,现在CPU运行的速度只有原来的四分之一,与之相应,那个解密程序运行的速度也就慢了好多,原来需要200毫秒就能完成的解密过程,现在就至少需要一秒才能完成,这就给雪风很富裕的时间来捕捉整个解密过程。
雪风把自己刚才嵌入的用来填字的小程序又剔除了出来,让解密程序重新运行,他打开内存监视器,然后重新运行那个软件。现在,他要做的,就是仔细观察整个解密过程中,内存的变化情况。
连续运行了几次,内存监视器帮雪风以50毫秒为一单位,对解密过程中内存的变化情况进行了“拍照”,这也是内存监视器所能达到的最快速度了。雪风对照了几次的记录,发现没有大致的差异,随即关掉了软
(本章未完,请点击下一页继续阅读)