首页 » 站长随笔 » 其它资料 » 浏览内容

[网络小说]    软件开发部和网络部的战争(4)


2005-05-31 10:32:40 5,102 0 发表评论 字体: 作者:C.K.
标签: 网络小说

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

From:http://blog.codelphi.com/yangyang/archive/2004/07/28/18049.aspx

晚上上网的时候,发现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发消息。

“太好了。真的吗?”我几乎能感到她的兴奋。她是懂行的,知道找到密码变换入口,几乎就成功了一大半。

“别高兴的太早,看她的密码变换算法了。god bless you”。我必须要泼泼冷水。其实说实话,对这个程序,才几个小时就能跟踪到密码变换部分,已经大大出乎我的意料了。可以看出其实这个程序本身也不是非常严密,毕竟只是网上的一个加密程序。又不是商业程序,说不定就是一个初学加密的人搞的试验程序。

我本来是做好通宵战斗的准备的。现在看来,似乎是非常的顺利。

我倒了一杯水,开始慢慢的喝着,一边尽下心来开始读那段密码变换程序代码。根据我的经验,真正考验毅力的时候到了,因为这是密码变换,你必须每句每句都读懂。不像动态跟踪,你可以大段大段的自动运行。只有你理解了这个加密过程,你才能通过逆过程把文件中的密码变成明文。而采用的密码变换为了被别人破译,通常会非常复杂。写的时候,作者一般也不会使用标准方式写,简单的说就是,怎样你读不懂,就怎样写程序。反正就是让你读不懂就对了。

凡是读过别人程序的人一般都知道,读别人的程序,有时候还不如自己写一个。现在我读的时候是别人故意让你读不懂的程序,困难度可想而知了。

“可以把那段密码变换程序发给我吗?”林MM发消息过来了。

“of course”。我把代码的屏幕copy给他发过去了。

我开始读程序。才读了半个多小时。我的心开始下沉。

这个代码算法我非常的熟悉,而且远没有我想象的那么复杂。

但是,正因为这样,我感到失落。我知道,要解密这个程序,远没有我开始预想的那么乐观。

写这个程序的那个家伙,其他地方都是使用的自己的算法。他的知识水平显然并不高,所以要破译他自己创造的算法,真的对我来说,不是非常困难。他的三层加壳,不是被我在几个小时之内就被脱的干干净净吗?关键是这个最关键的密码变换,他没有使用自己的算法。

他使用的一个我非常熟悉的算法。但是正因为我非常熟悉,所以,我知道,麻烦真正的开始降临了
我发了一声长长的叹息,给林。

“破译的可能性不大,就看我们的运气了。”

“这个算法好熟悉呀。。。”看来他还陷在读代码的泥潭里面。

今天晚上,我决定放弃了。因为,我知道。不放弃,也不会有什么进展的.

网站统计 Statistics

  • 创建时间: 2005年1月3日 距今5062 天
  • 日志总数: 2461
  • 评论总数: 630
  • 标签总数: 654
  • 链接总数: 273
  • 最后更新: 2018-8-31 17:57:04
  • 您是本站第 14144352 位访客

广告区 Guǎng Gào