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