Rooking 发表于 2024-2-4 10:19:36

WingIDE Pro KeyGen 支持5.x-10.x

部分代码来源于网络,我只是稍加整理,增加了一些元素,支持了最新版,感谢坛友提供了新版本的 魔数key,虽然还不知道是怎么来的,有知道的朋友可以回帖说一下 感谢
此源码在Python3.8.6编译测试通过,特此论坛备份一份,部分模块需自行安装,源码见下方,提前祝大家新年快乐!感谢大家一致的陪伴



Python源码:

import os
import string
import random
import hashlib
import platform

py_version = platform.python_version()
if py_version != '3':
    print("Can't run under python2 env ! please run tool under python 3.2 or later version !")
    os.system("pause")
    os._exit(0)
# GUI Import

from tkinter import *
from tkinter import ttk
from tkinter import messagebox

BASE16 = '0123456789ABCDEF'
BASE30 = '123456789ABCDEFGHJKLMNPQRTVWXY'


def RandomString(size=20, chars=string.ascii_uppercase + string.digits):
    return ''.join((random.choice(chars) for _ in range(size)))


def BaseConvert(number, fromdigits, todigits, ignore_negative=True):
    if not ignore_negative and str(number) == '-':
      number = str(number)
      neg = 1
    else:
      neg = 0
    x = 0
    for digit in str(number):
      x = x * len(fromdigits) + fromdigits.index(digit)

    res = ''
    while x > 0:
      digit = x % len(todigits)
      res = todigits + res
      x //= len(todigits)

    if neg:
      res = '-' + res
    return res


def AddHyphens(code):
    return code[:5] + '-' + code + '-' + code + '-' + code


def SHAToBase30(digest):
    tdigest = ''.join()
    result = BaseConvert(tdigest, BASE16, BASE30)
    while len(result) < 17:
      result = '1' + result
    return result


def loop(ecx, lichash):
    part = 0
    for c in lichash:
      part = ecx * part + ord(c) & 1048575
    return part

g_version_list = ('10.x.x','9.x.x','8.x.x', '7.x.x', '6.x.x', '5.x.x')
g_version_magics = {
    '5.x.x': ,
    '6.x.x': ,
    '7.x.x': ,
    '8.x.x': ,
    '9.x.x': ,
    '10.x.x':
}


def CalcActivationCode(args):
    if not isinstance(args, Application):
      return
    # # Generate License ID
    # licenseID = AddHyphens('CN' + RandomString(18, '123456789ABCDEFGHJKLMNPQRTVWXY'))
    licenseID = args.LicID.get()
    print ('License id: ' + licenseID)

    #requestCode = input('Enter request code:')
    requestCode = args.ReqCode.get()
    if requestCode.strip() == '':
      messagebox.showerror("Hints", "Please input the Request Code !")
      return
    # # SHA1
    shaHasher = hashlib.sha1()
    shaHasher.update(requestCode.encode('utf-8'))
    shaHasher.update(licenseID.encode('utf-8'))
    hashResult = shaHasher.hexdigest().upper()
    lichash = AddHyphens(requestCode[:3] + SHAToBase30(hashResult))

    versionMagic = None
    # Supported crack WingIDE Pro version list : 5.x.x, 6.x.x, 7.x.x
    wingIDEProVerStr = args.VersionInfo.get()
    print ('Cracking WingIDE Version : ' + wingIDEProVerStr)
    if wingIDEProVerStr in g_version_magics.keys():
      versionMagic = g_version_magics
    if versionMagic:
      activationCode = format(loop(versionMagic, lichash), '05x') + \
            format(loop(versionMagic, lichash), '05x') + \
            format(loop(versionMagic, lichash), '05x') + \
            format(loop(versionMagic, lichash), '05x')
      #pass
    else:
      print('Get wrong WingIDE version, exit...')
      os._exit(0)
    activationCode = BaseConvert(activationCode.upper(), BASE16, BASE30)
    while len(activationCode) < 17:
      activationCode = '1' + activationCode

    activationCode = AddHyphens('AXX' + activationCode)
    print ('Activation code: ' + activationCode)
    args.ActCode.set(activationCode)
    #pass


class Application(Frame):
    def __init__(self, master=None):
      super().__init__(master)
      self.master = master
      self.master.title('WingIDE Pro KeyGen 5.x-10.x')
      self.master.geometry('350x180')
      self.create_widgets()
      self.master.resizable(width=False, height=False)
      #pass

    def create_widgets(self):
      current_row = 0
      current_col = 0

      # Version Info
      self.l0 = Label(self.master, text='WingIDE Pro :')
      self.l0.grid(padx=5, pady=5, row=current_row, column=current_col)
      self.VersionInfo = StringVar()
      self.versionComb = ttk.Combobox(self.master, textvariable=self.VersionInfo, state='readonly')
      self.versionComb['values'] = g_version_list
      self.versionComb.grid(padx=5, pady=1, row=current_row, column=current_col + 1)
      self.versionComb.current(0)
      current_row += 1

      # License ID info
      self.l1 = Label(self.master, text='LicenseID:')
      self.l1.grid(padx=5, pady=5, row=current_row, column=current_col)
      self.LicID = StringVar()
      self.LicEntry = Entry(self.master, textvariable=self.LicID, width=30)
      self.LicEntry.grid(padx=5, pady=5, row=current_row, column=current_col + 1)
      self.LicID.set(AddHyphens('CN' + RandomString(18, '123456789ABCDEFGHJKLMNPQRTVWXY')))
      current_row += 1

      # Request code info
      self.l2 = Label(self.master, text='RequestCode:')
      self.l2.grid(padx=5, pady=5, row=current_row, column=current_col)
      self.ReqCode = StringVar()
      self.ReqcodeEntry = Entry(self.master, textvariable=self.ReqCode, width=30)
      self.ReqcodeEntry.grid(padx=5, pady=5, row=current_row, column=current_col + 1)
      current_row += 1

      # Activation code info
      self.l3 = Label(self.master, text=b'ActivationCode:')
      self.l3.grid(padx=5, pady=5, row=current_row, column=current_col)
      self.ActCode = StringVar()
      self.ReqcodeEntry = Entry(self.master, textvariable=self.ActCode, width=30, state='readonly')
      self.ReqcodeEntry.grid(padx=5, pady=5, row=current_row, column=current_col + 1)
      current_row += 1

      self.btn_about = Button(self.master, text='About', width=10, bg="#0266d1", command=lambda: messagebox.showinfo("Dialog", "Wing IDE Pro KeyGen 2.0\n   Code By: Wgz001\n         2024.02.02"))
      self.btn_about.place(x=10, y=135)

      self.btn_Reroll = Button(self.master, text='Reroll ID', width=10, bg="#0266d1", command=lambda: self.LicID.set(AddHyphens('CN' + RandomString(18, '123456789ABCDEFGHJKLMNPQRTVWXY'))))
      self.btn_Reroll.place(x=95, y=135)

      self.btn_gen = Button(self.master, text='Generate', width=10, bg="#38a851", command=lambda: CalcActivationCode(self))
      self.btn_gen.place(x=180, y=135)

      #self.btn_exit = Button(self.master, text='Exit', width=10, bg="#d73343", command=lambda: self.master.destroy())
      self.btn_exit = Button(self.master, text='Exit', width=10, borderwidth=1, bg="#d73343", command=lambda: self.master.destroy())
      self.btn_exit.place(x=265, y=135)


if __name__ == '__main__':
    root = Tk()
    #
    app = Application(master=root)
    app.mainloop()
一起玩游戏

iaoedsz2018 发表于 2024-2-4 11:25:11

#在这里快速回复#

liutongbao 发表于 2024-2-4 11:37:26

版主的软件都很高端,啥时候放出傻丫头?

gujin162 发表于 2024-2-4 15:00:40

啥也不说了,楼主就是给力!

慕若曦 发表于 2024-2-4 19:55:48

R版NB!!!

52soft 发表于 2024-2-4 20:23:42

强大的代码和功能

mwl 发表于 2024-2-4 20:24:54

这个已经有在线版的注册机了,感谢楼主分享源码!

lwykj 发表于 2024-2-5 08:44:04

感谢楼主分享源码!

freebsdpf 发表于 2024-2-5 11:25:31

感谢表哥分享

qq939595 发表于 2024-2-5 12:00:43

感谢分享源码!收藏了
页: [1] 2
查看完整版本: WingIDE Pro KeyGen 支持5.x-10.x