正文  第九章 软件开发部和网络部的战争(4)   加入书签
章节字数:2514
滚屏速度: 保存设置 开始滚屏

    晚上上网的时候,发现QQ上已经有人请求加为好友了。呵呵,一看,网名叫若烟。可能是林警官吧。同意加为好友之后,一问,果然是她。
    她迫不及待的把那个filelock程序给发过来。
    我收了。程序很小,100k不到,只有一个简单窗口界面。我一边和她聊着天,一边调出softice开始跟踪。呵呵,其他不敢说,但是跟踪程序,解密加密还真是我的强项。
    其实我们国家加密解密的黄金时代应该是使用dos操作系统的时候。那个时候,可以说加密解密就是高手的代名词呀。那个时代,无数的高手投入到这个加密解密的战场上来。那个时候无论加密还是解密,想出来的办法那才真是叫绝呀。现在windows下,程序大了。跟踪程序愈发困难了,还有防盗版的思想从技术层次发展到了法律层次,所以加密解密就弱化了。加上网络的流行,高手们几乎都把注意力转向了网络程序的攻击了。
    我的加密解密功底就是那个时代练就的。当时解密kv300的钥匙盘,就是我的入门课程,debug就是我的最爱呀。后来硕士毕业论文,我的课题就是加密解密技术探讨。当时提出的一个万能解密技术在国内也是首创呀。我的导师都佩服的不行。
    但是,跟踪程序仍然是非常艰苦的。你不要相信有些人吹牛,说自己一晚上就把一个几百k的程序读懂了。还破解了。绝对是吹牛的。
    我跟了一段之后,还很顺利,但是很快就陷入僵局了。看来这个家伙采用过反动态跟踪技术。我心里有底了。对这个程序,不是普通程序,必须要慢慢来。这个家伙既然写加密程序,对解密绝对也不是菜鸟。解密的那些招数,他会不知道?反跟踪,首先就是反静态汇编。这个技术是加密者所必须的。就是让你反汇编出来的程序你无法读懂。不过,从理论上来说,程序都是可以破译的,因为不管你如何变换,必须要计算机能正确执行。但是让你无法读懂,计算机又能执行,这是容易办到的。比如给你加个1000个无意义的循环。计算机能执行。但是你能读懂吗?你不执行还不行,因为后面的代码必须要通过这个1000个循环来解密。你动态跟踪,他给你加入一些反跟踪措施,比如看内存中是否有调试程序,如果有,立刻拒绝执行。甚至让你的debug死机。甚至更绝的是通过执行时间来看是否跟踪,你如果跟踪,你的时间肯定长,直接连续执行,你肯定短的多的多。当时那帮高手们,当时我崇拜的偶像,现在几乎都是IT界的风云人物了。
    而且后面的程序是重新加过密的,执行一段,解密一段。在内存中基本就只能看到很少的明文,全是密文。要对付当时那帮高手,才是真的难呀!
    我跟踪了一阵那个程序。他的加密方法比较简单,就是使用的反复变换的方法。首先就是对自己进行拉多次变换,就是我们说的加壳。而且他不是使用现在流行的什么arj,什么zip加的壳。而是自己整的一个算法加的。这个程序一共使用了3钟变化方法,加了3层外壳。这些早在我的预想之中,所以,我很快就把他的三个外壳脱掉了。现在内存就出现他的原始汇编代码了。但是事情没有完,他采用了隐含调用方式。也就是当调用程序的时候不是使用call或者jmp等指令。而是拼命往堆栈压入数据,弹出数据,大部分是无意义的数据,根本就是麻痹你的。等你即使是孙悟空的脑袋也该昏了的时候,他才把正确地址压入,使用ret指令就转移了。你根本就看不到一句call和一句跳转指令。
    看了他的代码,有防softice的代码。只要使用softice的跟踪,就死机。呵呵,他的招数比较老,所以我早有准备。我的softice是经过我改造的。他发现不了,所以对付他那些变换招数,因为可以动态跟踪,所以他那些什么隐含调用啊,什么加壳呀,全失去了作用。呵呵。
    我给林警官发消息;"你跟踪到什么时候就不行了?”
    “就是脱壳的关键代码段的时候我的softice就死机了”。
    呵呵,看来她的softice没有经过改造。当然死机了,每个解密的关键代码前面就有反softice的代码。而且你还不能跳过,跳过,后面就无法解密。当然就死翘翘了。
    “你跟踪到哪里了?”林MM问。
    “我?呵呵,脱壳完成了。”
    “真的吗?你怎么没死机,你用什么跟的?“
    ”当然是softice,还有什么?“
    ”啊,你如何跳过他的反跟踪手段的呀?“
    ”我就一直跟呀,就没死机。“我故意装糊涂。呵呵,我怕她问我要那个程序。到时候不好推迟。真正的黑客是不会轻易把自己的工具送人的。况且对方还是个警察。
    ”呵呵,你骗我。“林MM当然知道怎么回事。笑笑,也没继续问了。
    ”你干警察多久了?”,我一边继续跟踪已经脱了壳的程序,试图找到他通过解密文件的代码。
    “一年多点儿”。她回答,“你觉得破译有希望吗?”她总是关心她的工作。
    “你什么学校毕业的呀”,我无聊的问。同时自己使用那个软件,加密了一个文件。然后使用这个软件打开她,输入密码,试图找到她校验密码的过程。
    “你查户口呀,要查户口我可以帮忙”消息后面跟了个俏皮的笑脸表情符号。
    呵呵我回了个红脸的符号。
    这个时候我发现了filelock程序的密码变换代码断。同时也发现了密码在文件中的位置。当然是经过加密变换的。
    只要把这段密码变换代码读懂,如果不是很难的算法,基本就能解决了。我心里高兴起来。
    ”我找到密码变换入口了“。我给林MM发消息。
    “太好了。真的吗?”我几乎能感到她的兴奋。她是懂行的,知道找到密码变换入口,几乎就成功了一大半。
    “别高兴的太早,看她的密码变换算法了。godbless
    you"。我必须要泼泼冷水。其实说实话,对这个程序,才几个小时就能跟踪到密码变换部分,已经大大出乎我的意料了。可以看出其实这个程序本身也不是非常严密,毕竟只是网上的一个加密程序。又不是商业程序,说不定就是一个初学加密的人搞的试验程序。
    我本来是做好通宵战斗的准备的。现在看来,似乎是非常的顺利。
    我倒了一杯水,开始慢慢的喝着,一边尽下心来开始读那段密码变换程序代码。根据我的经验,真正考验毅力的时候到了,因为这是密码变换,你必须每句每句都读懂。不像动态跟踪,你可以大段大段的自动运行。只有你理解了这个加密过程,你才能通过逆过程把文件中的密码变成明文。而采用的密码变换为了被别人破译,通常会非常复杂。写的时候,作者一般也不会使用标准方式写,简单的说就是,怎样你读不懂,就怎样写程序。反正就是让你读不懂就对了。
    
2024, LCREAD.COM 手机连城