考试网 >> IT认证 >> 微软 >> MCSE指导 >> Windows脚本编码器算法分析

Windows脚本编码器算法分析

发布时间:2006-06-28 06:12     点击:
分页:上一页  1 [2] 3 4 5  下一页

  下面就分别来分析。

  先来说说中间密文,这个最复杂也最重要,因为它是由明文加密而得,只与明文和算法有关,如果要想知道代码内容的话只需要能破译中间密文就行了。

  中间密文长度与明文相同,但是明文中的英文字母、数字和英文符号(也就是ascii码9和32~127)是经过加密了的,而其他字符不变。中间密文不是对明文的简单替换,也就是说"a"加密之后不会是同一个字符,但是也是有规律可循。以下是对10个"a"加密后的结果:#@~^CgAAAA==CmlCmlmllmygMAAA==^#~@

  去掉前缀后缀看看有什么规律,呵呵,对,中间密文里始终只出现"C"、"m"、"l"三个字符,也就是说每个字符只由三个字符来替换(注意有四个例外:回车始终用"@#@&"、"<"用"@!",">"用"@*"、"@"用"@$")。你还将发现不同明文的密文出现的位置始终一样。比如若干个a的密文,第1、4、13、17、21、......位是C;若干个b的密文也只有第1、4、13、17、21、......位是8。也就是说密文中的三个字符出现的位置是固定的。不知道你理解没有,看例子:   10个a的密文:CmlCmlmllm

  10个b的密文:8(48(4(44(

  不过即使这样我怎么知道密文哪一位出现哪个字符呢?呵呵,那就把长度加到150来看看。呵呵,发现规律了:密文中三个字符出现的位置是以64为周期的序列。现在我们只需知道前面64位的排列序列就行了。

  这里我把序列提取出来了,这里用"1"、"2"、"3"来代替字符,序列是:1231232332321323132311233213233211323231311231321323112331123132

举个例子,a的密文第一个是C,查找上面的序列,1就代表C了,所以凡是出现1的位置都会出现C(如果在那个位置明文是a的话),超过了又从头开始查找。

  序列搞定了,不过字符替换规则的公式一直找不到(或许没有^_^),没办法,只好用穷举法了。下表列出了所有字符的替换规则:

  _____________________________________

  ASCII | Char | 1 | 2 | 3 |

  -------------------------------------

  9 (Tab) 7 i d

  13 (CR) @#@& @#@& @#@&

  32 (Space) ~ , P

  33 ! Z e "

  34 " E r J

  35 # : [ a

  36 $Content$nbsp; y f ^
分页:上一页  1 [2] 3 4 5  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有