第74部分 (第1/4页)
使用这个软件。
难就难在了这个解密程序的运行效率太高了,整个解密过程只需要不到200毫秒,在这么短的时间内,要找出那些钥匙孔都已经是很困难了,更别提插钥匙了,就算是你发现了钥匙孔,等你下手再去插的时候,钥匙孔就已经不知道转到哪里去了。何况这些钥匙孔的位置差异也太大了,有的*近表盘里面的地方,有的*近表盘的边缘,但是你又不能插错顺序,只能从第一个字符填到最后一个。跳着填,就算最后所有字符填入的位置都是正确的,程序也会判断你输入了错误的注册码。
雪风做了一个小程序,嵌入到那软件的开头,用来完成这个填字游戏,可是完成最好的一次,也只是成功插入了前面的三个字符,后面的就跟不上了。因为雪风的这个程序多了一个判断过程的,它得先判断是不是出现了钥匙孔,如果出现了,还得判断是不是该插入钥匙,插入哪把钥匙,等判断完,那原本存在的钥匙孔已经转过去,或许就在你判断上一个钥匙孔的这段时间里,下一个钥匙孔也转了过去。
此路看来是行不通了,计算机也有它的一个负载极限,雪风只好再去想别的的办法。既然把这16个字符准确填入解密程序的接口是如此地困难,那么原本的解密程序又是怎么完成这一过程的呢?雪风不由好奇起来,自己的写的那个小程序已经把计算机的运行速度发挥到了极限,尚且无法准确插入,那么解密程序的设计者,又是如何保证自己的程序就能把16个字符准确填入各自的位置,而且顺序还不会错乱呢?
雪风对自己机器的CPU进行了降低频率的处理,现在CPU运行的速度只有原来的四分之一,与之相应,那个解密程序运行的速度也就慢了好多,原来需要200毫秒就能完成的解密过程,现在就至少需要一秒才能完成,这就给雪风很富裕的时间来捕捉整个解密过程。
雪风把自己刚才嵌入的用来填字的小程序又剔除了出来,让解密程序重新运行,他打开内存监视器,然后重新运行那个软件。现在,他要做的,就是仔细观察整个解密过程中,内存的变化情况。
连续运行了几次,内存监视器帮雪风以50毫秒为一单位,对解密过程中内存的变化情况进行了“拍照”,这也是内存监视器所能达到的最快速度了。雪风对照了几次的记录,发现没有大致的差异,随即关掉了软件,把CPU频率又回复到原本的频率。
雪风把内存记录调了出来,一边仔细对比,一边在心里揣摩着那个解密程序的运行流程。或许,只有雪风这样的疯子才会使用这样的方法来破解软件,一般人就是有工具的配合,面对如此密密麻麻的数据,头也已经大了,可是雪风这个家伙,却是能一眼就看出其中的变化规律,并由此来推测解密软件的运行流程。
上次破解量子密码,雪风采用的方法是快,因为量子密码纷繁复杂,解密过程十分缓慢,所以雪风选择了“以快打慢”,所谓的“一快打三慢”,大概就是如此。而这次,雪风又选择了慢,人为放缓了对方解密程序的解密过程,企图通过慢镜头,找到对方招式中的破绽,这也就是武学招式中的“以静制动,后发制人”吧。
“奶奶个腿,原来是这么回事!”很快,雪风就发现了其中的问题,所有拍下来的内存记录中,每个时段的内存都是无规律的,只有一个时段,内存却出奇地一致。根据这一点,雪风大胆判断,程序的设计者当初为了让自己解密程序能准确填入这个16个字符,在读入16个字符后,做了一次校对,就是为了做到字符填入时的同步。
这就好象是我们平时的“校表”,在填字游戏开始前,转动表盘的一方把表盘复原到一个默认的位置,然后和插入钥匙的一方把各自的表都调整到同一时刻,再约好几点几分,到什么位置,插入第几把钥匙。等
本章未完,点击下一页继续阅读。