用Python干掉星空极速

一说到星空极速,就跟说到x虎360一样让我不爽。以前在学校的时候就想方设法把它干掉,当然,在众人的帮助下也确实干掉了。当时为了使用方便,自己用C语言实现了一个破解程序,虽然不完美,但也基本够用。

前不久在别人电脑上又看到了星空极速这个垃圾软件……

现在刚好自己又在学习Python,于是我想到了用Python来重写一遍,想了一下,应该比用C实现起来更顺畅些。

纯属练习,fuckxkjs32-gbk.py   代码如下:

#!/usr/bin/env python

# -*- coding:gbk -*-
”’ 找回星空极速3.2真实拨号密码
    用法:
    1-直接运行,然后按提示输入密码
    2-加参数运行,参数为密码,多个密码用空格隔开
        比如:fuckxkjs32.py woshimima1 woshimima2
    感谢:http://blog.sina.com.cn/s/blog_48a42d5b0100cet2.html

    注:本程序只使用了部分字符加密表
”’

import sys

encryptdict = { “ch_0” : [ “E2”,“96”,“D0”,“AC”,“9D”,“A3”,“B6”,“8F” ],
“ch_1” : [ “E3”,“97”,“D1”,“AD”,“9C”,“A2”,“B7”,“8E” ],
“ch_2” : [ “E0”,“94”,“D2”,“AE”,“9F”,“A1”,“B4”,“8D” ],
“ch_3” : [ “E1”,“95”,“D3”,“AF”,“9E”,“A0”,“B5”,“8C” ],
“ch_4” : [ “E6”,“92”,“D4”,“A8”,“99”,“A7”,“B2”,“8B” ],
“ch_5” : [ “E7”,“93”,“D5”,“A9”,“98”,“A6”,“B3”,“8A” ],
“ch_6” : [ “E4”,“90”,“D6”,“AA”,“9B”,“A5”,“B0”,“89” ],
“ch_7” : [ “E5”,“91”,“D7”,“AB”,“9A”,“A4”,“B1”,“88” ],
                “ch_8” : [ “EA”,“9E”,“D8”,“A4”,“95”,“AB”,“BE”,“87” ],
“ch_9” : [ “EB”,“9F”,“D9”,“A5”,“94”,“AA”,“BF”,“86” ],
“ch_q” : [ “A3”,“D7”,“91”,“ED”,“DC”,“E2”,“F7”,“CE” ],
“ch_w” : [ “A5”,“D1”,“97”,“EB”,“DA”,“E4”,“F1”,“C8” ],
“ch_e” : [ “B7”,“C3”,“85”,“F9”,“C8”,“F6”,“E3”,“DA” ],
“ch_r” : [ “A0”,“D4”,“92”,“EE”,“DF”,“E1”,“F4”,“CD” ],
“ch_t” : [ “A6”,“D2”,“94”,“E8”,“D9”,“E7”,“F2”,“CB” ],
“ch_y” : [ “AB”,“DF”,“99”,“E5”,“D4”,“EA”,“FF”,“C6” ],
“ch_u” : [ “A7”,“D3”,“95”,“E9”,“D8”,“E6”,“F3”,“CA” ],
“ch_i” : [ “BB”,“CF”,“89”,“F5”,“C4”,“FA”,“EF”,“D6” ],
“ch_o” : [ “BD”,“C9”,“8F”,“F3”,“C2”,“FC”,“E9”,“D0” ],
“ch_p” : [ “A2”,“D6”,“90”,“EC”,“DD”,“E3”,“F6”,“CF” ],
“ch_a” : [ “B3”,“C7”,“81”,“FD”,“CC”,“F2”,“E7”,“DE” ],
“ch_s” : [ “A1”,“D5”,“93”,“EF”,“DE”,“E0”,“F5”,“CC” ],
“ch_d” : [ “B6”,“C2”,“84”,“F8”,“C9”,“F7”,“E2”,“DB” ],
“ch_f” : [ “B4”,“C0”,“86”,“FA”,“CB”,“F5”,“E0”,“D9” ],
“ch_g” : [ “B5”,“C1”,“87”,“FB”,“CA”,“F4”,“E1”,“D8” ],
“ch_h” : [ “BA”,“CE”,“88”,“F4”,“C5”,“FB”,“EE”,“D7” ],
“ch_j” : [ “B8”,“CC”,“8A”,“F6”,“C7”,“F9”,“EC”,“D5” ],
“ch_k” : [ “B9”,“CD”,“8B”,“F7”,“C6”,“F8”,“ED”,“D4” ],
“ch_l” : [ “BE”,“CA”,“8C”,“F0”,“C1”,“FF”,“EA”,“D3” ],
“ch_z” : [ “A8”,“DC”,“9A”,“E6”,“D7”,“E9”,“FC”,“C5” ],
“ch_x” : [ “AA”,“DE”,“98”,“E4”,“D5”,“EB”,“FE”,“C7” ],
“ch_c” : [ “B1”,“C5”,“83”,“FF”,“CE”,“F0”,“E5”,“DC” ],
“ch_v” : [ “A4”,“D0”,“96”,“EA”,“DB”,“E5”,“F0”,“C9” ],
“ch_b” : [ “B0”,“C4”,“82”,“FE”,“CF”,“F1”,“E4”,“DD” ],
“ch_n” : [ “BC”,“C8”,“8E”,“F2”,“C3”,“FD”,“E8”,“D1” ],
“ch_m” : [ “BF”,“CB”,“8D”,“F1”,“C0”,“FE”,“EB”,“D2” ],
}

def main():
password = “”
# charset = “0123456789abcdefghijklmnopqrstuvwxyz”
if len(sys
.argv) == 1:
while password == “”:
password = raw_input(“请输入待破解密码:”)
print “真实密码:%s % encrypt(password)
else:
args = sys.argv
print “原始密码:真实密码”
for p in args[1:]:
print %s%s % (p,encrypt(p))

def encrypt(password):
truepass = “”
for i in range(len(password)):
truepass += encryptdict[(“ch_” + password[i])][i % 8]
return truepass

if __name__ == “__main__”:
main()

 

 

————————————————————–

不完善的地方(TODO):

  • 直接运行程序输入不能包含空格
  • 对字符集以外字符的处理
  • 将结果写入文件