其他分享
首页 > 其他分享> > wing pro 所有版本序列号脚本

wing pro 所有版本序列号脚本

作者:互联网

1、支持wing pro 5.x.x 6.x.x 7.x.x 8.x.x 多个版本,而且是图形界面,绝对良心。

2、用wing pro 运行上述脚本,弹出tk版本的图形界面。

3、复制tk界面中license id 到wing pro中,点开enter lincense key菜单,输入Lincense id。

4、复制wing pro 注册界面中request id ,粘贴到tk界面中对应字段,点生成注册码。

5、拷贝注册码到wing pro注册界面,注册成功!

 

  1 import os
  2 import string
  3 import random
  4 import hashlib
  5 import platform
  6 py_version = platform.python_version()
  7 if py_version[0] != '3':
  8     print("Can't run under python2 env ! please run tool under python 3.2 or later version !")
  9     os.system("pause")
 10     os._exit(0)
 11 # GUI Import
 12 from tkinter import *
 13 from tkinter import ttk
 14 from tkinter import messagebox
 15  
 16 BASE16 = '0123456789ABCDEF'
 17 BASE30 = '123456789ABCDEFGHJKLMNPQRTVWXY'
 18  
 19  
 20 def RandomString(size=20, chars=string.ascii_uppercase + string.digits):
 21     return ''.join((random.choice(chars) for _ in range(size)))
 22  
 23  
 24 def BaseConvert(number, fromdigits, todigits, ignore_negative=True):
 25     if not ignore_negative and str(number)[0] == '-':
 26         number = str(number)[1:]
 27         neg = 1
 28     else:
 29         neg = 0
 30     x = 0
 31     for digit in str(number):
 32         x = x * len(fromdigits) + fromdigits.index(digit)
 33  
 34     res = ''
 35     while x > 0:
 36         digit = x % len(todigits)
 37         res = todigits[digit] + res
 38         x //= len(todigits)
 39  
 40     if neg:
 41         res = '-' + res
 42     return res
 43  
 44  
 45 def AddHyphens(code):
 46     return code[:5] + '-' + code[5:10] + '-' + code[10:15] + '-' + code[15:]
 47  
 48  
 49 def SHAToBase30(digest):
 50     tdigest = ''.join([c for i, c in enumerate(digest) if i // 2 * 2 == i])
 51     result = BaseConvert(tdigest, BASE16, BASE30)
 52     while len(result) < 17:
 53         result = '1' + result
 54     return result
 55  
 56  
 57 def loop(ecx, lichash):
 58     part = 0
 59     for c in lichash:
 60         part = ecx * part + ord(c) & 1048575
 61     return part
 62  
 63 g_version_list = ('8.0.0', '7.X.X', '6.X.X', '5.X.X')
 64 g_version_magics = {
 65     '5.X.X': [7, 123, 23, 87],
 66     '6.X.X': [23, 161, 47, 9],
 67     '7.X.X': [221, 13, 93, 27],
 68     '8.0.0': [179, 95, 45, 245],
 69 }
 70  
 71  
 72 def CalcActivationCode(args):
 73     if not isinstance(args, Application):
 74         return
 75     # # Generate License ID
 76     # licenseID = AddHyphens('CN' + RandomString(18, '123456789ABCDEFGHJKLMNPQRTVWXY'))
 77     licenseID = args.LicID.get()
 78     print ('License id: ' + licenseID)
 79      
 80     #requestCode = input('Enter request code:')
 81     requestCode = args.ReqCode.get()
 82     if requestCode.strip() == '':
 83         messagebox.showerror("Hints", "Please input the Request Code !")
 84         return 
 85     # # SHA1
 86     shaHasher = hashlib.sha1()
 87     shaHasher.update(requestCode.encode('utf-8'))
 88     shaHasher.update(licenseID.encode('utf-8'))
 89     hashResult = shaHasher.hexdigest().upper()
 90     lichash = AddHyphens(requestCode[:3] + SHAToBase30(hashResult))
 91  
 92     versionMagic = None
 93     # Supported crack WingIDE Pro version list : 5.x.x, 6.x.x, 7.x.x
 94     wingIDEProVerStr = args.VersionInfo.get()
 95     print ('Cracking WingIDE Version : ' + wingIDEProVerStr)
 96     if wingIDEProVerStr in g_version_magics.keys():
 97         versionMagic = g_version_magics[wingIDEProVerStr]
 98     if versionMagic:
 99         activationCode = format(loop(versionMagic[0], lichash), '05x') + \
100             format(loop(versionMagic[1], lichash), '05x') + \
101             format(loop(versionMagic[2], lichash), '05x') + \
102             format(loop(versionMagic[3], lichash), '05x')
103         pass
104     else:
105         print('Get wrong WingIDE version, exit...')
106         os._exit(0)
107     activationCode = BaseConvert(activationCode.upper(), BASE16, BASE30)
108     while len(activationCode) < 17:
109         activationCode = '1' + activationCode
110  
111     activationCode = AddHyphens('AXX' + activationCode)
112     print ('Activation code: ' + activationCode)
113     args.ActCode.set(activationCode)
114     pass
115  
116  
117 class Application(Frame):
118     def __init__(self, master=None):
119         super().__init__(master)
120         self.master = master
121         self.master.title('WingIDE Pro Keygen(5, 6, 7)')
122         self.master.geometry('350x180')
123         self.create_widgets()
124         pass
125  
126     def create_widgets(self):
127         current_row = 0
128         current_col = 0
129  
130         # Version Info
131         self.l0 = Label(self.master, text='WingIDE Pro :')
132         self.l0.grid(padx=5, pady=5, row=current_row, column=current_col)
133         self.VersionInfo = StringVar()
134         self.versionComb = ttk.Combobox(self.master, textvariable=self.VersionInfo, state='readonly')
135         self.versionComb['values'] = g_version_list
136         self.versionComb.grid(padx=5, pady=1, row=current_row, column=current_col + 1)
137         self.versionComb.current(0)
138         current_row += 1
139  
140         # License ID info
141         self.l1 = Label(self.master, text='LicenseID:')
142         self.l1.grid(padx=5, pady=5, row=current_row, column=current_col)
143         self.LicID = StringVar()
144         self.LicEntry = Entry(self.master, textvariable=self.LicID, width=30, state='readonly')
145         self.LicEntry.grid(padx=5, pady=5, row=current_row, column=current_col + 1)
146         self.LicID.set(AddHyphens('CN' + RandomString(18, '123456789ABCDEFGHJKLMNPQRTVWXY')))
147         current_row += 1
148  
149         # Request code info
150         self.l2 = Label(self.master, text='RequestCode:')
151         self.l2.grid(padx=5, pady=5, row=current_row, column=current_col)
152         self.ReqCode = StringVar()
153         self.ReqcodeEntry = Entry(self.master, textvariable=self.ReqCode, width=30)
154         self.ReqcodeEntry.grid(padx=5, pady=5, row=current_row, column=current_col + 1)
155         current_row += 1
156  
157         # Activation code info
158         self.l3 = Label(self.master, text=b'ActivationCode:')
159         self.l3.grid(padx=5, pady=5, row=current_row, column=current_col)
160         self.ActCode = StringVar()
161         self.ReqcodeEntry = Entry(self.master, textvariable=self.ActCode, width=30, state='readonly')
162         self.ReqcodeEntry.grid(padx=5, pady=5, row=current_row, column=current_col + 1)
163         current_row += 1
164  
165         self.btn_Calc = Button(self.master)
166         self.btn_Calc['text'] = 'Generate'
167         self.btn_Calc['command'] = lambda: CalcActivationCode(self)
168         self.btn_Calc.grid(padx=5, pady=5, row=current_row, column=current_col + 1)
169         pass
170  
171  
172 if __name__ == '__main__':
173     root = Tk()
174     #
175     app = Application(master=root)
176     app.mainloop()

 

标签:activationCode,self,wing,current,version,master,序列号,pro,row
来源: https://www.cnblogs.com/zhongtang/p/16656642.html