接下来的两天,一切都很安静,雪风在自己的机子上破解软件,顺便监控着那边神秘人的举动。那神秘人估计是没有查到雪风上次是如何得知那地址是WORLD公司的,郁闷之下,也就不再给雪风发那么多消息了,每日只顾埋头闷声搞着雪风的机器,大家也就相安无事。不过他还真的是有点闲,每天浪费在雪风的机器上时间至少有十个小时,要不是雪风这几天每天都是睡觉要关机,这家伙还能继续折腾下去。
俞雪重新在家里出现了影踪,因为李秀凤终于是回沪市去了,这几天她可被李秀凤折腾坏了,李秀凤以项目的名义每天都要举行这个那个的会,再加上西京市各界宴请李秀凤的酒会,害得俞雪每日疲于应付。如果仅仅是如此,那也就罢了,最要命的是,每次的聚会上,李秀凤都要当着很多人的面宣布俞雪是她女儿,俞雪先是很难接受,但不好当众发作,勉勉强强应下来,随后每天被李秀凤这么折腾,也就麻木了,随便你怎么说吧,只要你不让我回沪市就可以。李秀凤这招也真够厉害的,不经意间就磨掉了俞雪的性子,让俞雪不再象以前那样那么时刻堤防着自己。
起初,俞雪还担心雪风他们几个会埋怨自己隐瞒真相,结果雪风每日忙着在电脑前鼓捣,欧阳菲更是提也不提这事,而陈砚则是在那次的发布会之后就再没有露面,俞雪看大家并不在意此事,悬着的心也就放了下来。
雪风给陈砚打了几个电话,结果那边还是没接,雪风又发几个恶俗短信过去骚扰她,这丫头竟然也没象往常那样立刻电话打过来开骂,雪风暗道这丫头转了性,竟然如此沉得住气,不过他只当是这丫头心里还在介意上次的事情,故意不理自己,也就没有在意,他相信过不了几天,这丫头肯定会把上次的事情忘得干干净净。
自破解量子密码之后,雪风这几个月就再也没有玩过破解,此时缺少了小沙弥,雪风更是回到了当年徒手破解软件的时代,此刻他就被一个软件给难住了,也许说是吸引住了更确切一点。这个软件是甲骨文公司的软件,但是它的加密服务却不是甲骨文公司的,而是来自一家很小的安全公司,他的加密算法非常有特色,和雪风以往所接触的算法都不一样。
雪风也是跟踪了很久之后,才弄清楚了这个加密算法的流程。软件的解密过程类似与我们经常玩的“填字游戏”,运行软件后,软件首先调用用户注册时的注册码,注册码是16位的,然后程序会把这16个字符“填入”解密程序的16个接口之内,如果注册码正确,则解密程序就正常运行,被加密的软件就会还原,然后正常运行。
这个解密程序之所以能难住雪风,是因为雪风无法把这16个字符准确填入解密程序中。
整个解密程序就如同一扇巨大的表盘,这个表盘每时每刻都维持着高速旋转,在这个表盘上面分布着16个毫无规则的钥匙孔,那就是程序的接口,钥匙孔随着表盘做着运动。注册码的16个字符就好像是16把钥匙,只有把这16把钥匙准确插入钥匙孔内,解密程序才会开始还原软件。如果钥匙不是原配的,或者少插一把钥匙,又或插错了彼此位置,解密程序就不会还原软件,用户就没有权限来使用这个软件。
难就难在了这个解密程序的运行效率太高了,整个解密过程只需要不到200毫秒,在这么短的时间内,要找出那些钥匙孔都已经是很困难了,更别提插钥匙了,就算是你发现了钥匙孔,等你下手再去插的时候,钥匙孔就已经不知道转到哪里去了。何况这些钥匙孔的位置差异也太大了,有的靠近表盘里面的地方,有的靠近表盘的边缘,但是你又不能插错顺序,只能从第一个字符填到最后一个。跳着填,就算最后所有字符填入的位置都是正确的,程序也会判断你输入了错误的注册码。
雪风做了一个小程序,嵌入到那软件的开头,用来完成这个填字游戏,可是完成最好的一次,也只是成功插入了前面的三个字符,后面的就跟不上了。因为雪风的这个程序多了一个判断过程的,它得先判断是不是出现了钥匙孔,如果出现了,还得判断是不是该插入钥匙,插入哪把钥匙,等判断完,那原本存在的钥匙孔已经转过去,或许就在你判断上一个钥匙孔的这段时间里,下一个钥匙孔也转了过去。
此路看来是行不通了,计算机也有它的一个负载极限,雪风只好再去想别的的办法。既然把这16个字符准确填入解密程序的接口是如此地困难,那么原本的解密程序又是怎么完成这一过程的呢?雪风不由好奇起来,自己的写的那个小程序已经把计算机的运行速度发挥到了极限,尚且无法准确插入,那么解密程序的设计者,又是如何保证自己的程序就能把16个字符准确填入各自的位置,而且顺序还不会错乱呢?
雪风对自己机器的CPU进行了降低频率的处理,现在CPU运行的速度只有原来的四分之一,与之相应,那个解密程序运行的速度也就慢了好多,原来需要200毫秒就能完成的解密过程,现在就至少需要一秒才能完成,这就给雪风很富裕的时间来捕捉整个解密过程。
雪风把自己刚才嵌入的用来填字的小程序又剔除了出来,让解密程序重新运行,他打开内存监视器,然后重新运行那个软件。现在,他要做的,就是仔细观察整个解密过程中,内存的变化情况。
连续运行了几次,内存监视器帮雪风以50毫秒为一单位,对解密过程中内存的变化情况进行了“拍照”,这也是内存监视器所能达到的最快速度了。雪风对照了几次的记录,发现没有大致的差异,随即关掉了软件,把CPU频率又回复到原本的频率。
雪风把内存记录调了出来,一边仔细对比,一边在心里揣摩着那个解密程序的运行流程。或许,只有雪风这样的疯子才会使用这样的方法来破解软件,一般人就是有工具的配合,面对如此密密麻麻的数据,头也已经大了,可是雪风这个家伙,却是能一眼就看出其中的变化规律,并由此来推测解密软件的运行流程。
上次破解量子密码,雪风采用的方法是快,因为量子密码纷繁复杂,解密过程十分缓慢,所以雪风选择了“以快打慢”,所谓的“一快打三慢”,大概就是如此。而这次,雪风又选择了慢,人为放缓了对方解密程序的解密过程,企图通过慢镜头,找到对方招式中的破绽,这也就是武学招式中的“以静制动,后发制人”吧。
“奶奶个腿,原来是这么回事!”很快,雪风就发现了其中的问题,所有拍下来的内存记录中,每个时段的内存都是无规律的,只有一个时段,内存却出奇地一致。根据这一点,雪风大胆判断,程序的设计者当初为了让自己解密程序能准确填入这个16个字符,在读入16个字符后,做了一次校对,就是为了做到字符填入时的同步。
这就好象是我们平时的“校表”,在填字游戏开始前,转动表盘的一方把表盘复原到一个默认的位置,然后和插入钥匙的一方把各自的表都调整到同一时刻,再约好几点几分,到什么位置,插入第几把钥匙。等双方做好以上的工作后,表盘开始转动,插入钥匙的一方只需按照时间表来走,就会分秒不差地把钥匙准确插入相应的钥匙孔内。
雪风粗粗估计了一下这个“校表”的过程,大概需要50毫秒,但是这点时间足够自己把16个字符按照顺序填入各自的位置了,因为在这个校表的过程中,表盘是不动的,钥匙孔的位置也是不变的。
雪风很快找到了表盘静止时那16个钥匙孔的位置,并确定了他们的先后顺序,然后重新设计了一个程序,嵌入那个软件的头部,这个程序更为简单,只需在程序运行后的固定时间里,填入固定字符到固定位置就可以了。
做好这一切,雪风拍拍胸口,平抑了一下激动的心情,他的眼前似乎出现了一个巨大的表盘,还有16个人,每个人地手里都拿着一把钥匙,各自站好了位置,只等一声令下,便把钥匙塞进去面前的钥匙孔内。
雪风此时就等着“咔”的一声,那是钥匙**去,门自动弹开的声音,那一定很悦耳。雪风笑了一下,就晃动鼠标,双击了那个软件,期待着成功的提示。
“咔~”一声响过,紧接着又是一声“滴”的声音。
“他妈的~”雪风大叫了起来,他并没有看到门开的一瞬间的景象,因为他的机器,竟然重启了。