python tkinter制作Sublime Text3激活工具

59 阅读3分钟

参考资料

github激活sublime参考资料

适用于sublime Text3 4169版本。

该方法原理为修改hex码,可以直接使用Sublime Text,或者用其他的hex工具皆可。

软件界面

image-20240407152844429

实现代码

import os
import binascii
import tkinter as tk
from tkinter import filedialog,messagebox

class FileProcessingApp:
    def __init__(self, master):
        self.master = master
        master.title("Sublime Text3激活工具")
        master.iconbitmap(r"D:\个人文件\python\sublime.ico")
        # 设置窗口大小和位置
        sw = master.winfo_screenwidth()
        sh = master.winfo_screenheight()
        master.geometry('%dx%d+%d+%d' % (600, 200, (sw-600)/2, (sh-200)/2))
        # 设置为不可改变大小
        master.resizable(False, False)

        self.create_widgets()

    def create_widgets(self):
        # File frame
        self.file_frame = tk.Frame(self.master)
        self.file_frame.pack(pady=10)

        # 文件标签和按钮
        self.file_label = tk.Label(self.file_frame, text="选择文件:", width=12, anchor="e")
        self.file_label.grid(row=0, column=0)

        self.file_entry = tk.Entry(self.file_frame, width=40)
        self.file_entry.grid(row=0, column=1, padx=5, pady=5, sticky="w")

        self.file_button = tk.Button(self.file_frame, text="浏览", command=self.select_file)
        self.file_button.grid(row=0, column=2, padx=5, pady=5, sticky="w")

        # Output frame
        self.output_frame = tk.Frame(self.master)
        self.output_frame.pack(pady=10)

        # 文件存放路径
        self.output_label = tk.Label(self.output_frame, text="输出路径:", width=12, anchor="e")
        self.output_label.grid(row=0, column=0, padx=(20, 5), pady=5, sticky="e")

        self.output_entry = tk.Entry(self.output_frame, width=40)
        self.output_entry.grid(row=0, column=1, padx=5, pady=5, sticky="w")

        self.output_button = tk.Button(self.output_frame, text="选择路径", command=self.select_output_folder)
        self.output_button.grid(row=0, column=2, padx=5, pady=5, sticky="w")

        # Process button
        self.process_button = tk.Button(self.master, text="开始激活", command=self.process_files)
        self.process_button.pack(pady=10)

    def select_file(self):
        self.file_path = filedialog.askopenfilename()
        self.file_entry.delete(0, tk.END)
        self.file_entry.insert(0, self.file_path)

    def select_output_folder(self):
        self.output_folder = filedialog.askdirectory()
        self.output_entry.delete(0, tk.END)
        self.output_entry.insert(0, self.output_folder)

    def activate(self,source_file_path, target_file_path):
        with open(source_file_path, "rb") as file:
            bytes_content = file.read()
            hex_str = binascii.hexlify(bytes_content).decode('utf-8')

        tag1 = "e893582000498b96b8020000488d0d5d0c000041b8983a0000e87a582000".replace(" ", "")
        rep1 = "9090909090498b96b8020000488d0d5d0c000041b8983a00009090909090".replace(" ", "")

        tag2 = "e42400005541574156415541".replace(" ", "")
        rep2 = "e42400004831c0c356415541".replace(" ", "")

        tag3 = "5556574883ec30488d6c243048c745f8feffffff89d64889cf6a28".replace(" ", "")
        rep3 = "4831c048ffc0c3488d6c243048c745f8feffffff89d64889cf6a28".replace(" ", "")

        hex_str = hex_str.replace(tag1, rep1).replace(tag2, rep2).replace(tag3, rep3)

        bytes_content = bytes.fromhex(hex_str)

        # 备份原文件
        os.rename(source_file_path, source_file_path + ".bak")
        
        with open(target_file_path, "wb") as file:
            file.write(bytes_content)

    def process_files(self):
        # 激活
        self.activate(self.file_path, self.output_folder + "\\sublime_text.exe" )
        messagebox.showinfo("激活成功", "激活成功!")

def main():
    root = tk.Tk()
    app = FileProcessingApp(root)
    root.mainloop()

if __name__ == "__main__":
    main()
  • 使用pyinstaller -F sublime_ui.py -w -i D:\个人文件\python\sublime.ico打包成exe文件

  • exe文件下载地址www.123pan.com/s/J5Nsjv-dm… 提取码:v4Go

使用方法

  • 下载安装sublime text3
  • 运行激活程序
  • 选择安装目录下的sublime_text.exe文件,并选择修改后的exe文件存放目录(选择原目录即可)
  • 重新打开,随便找一个license输入即可激活

Sublime Text3注册码

—– BEGIN LICENSE —–
Michael Barnes
Single User License
EA7E-821385
8A353C41 872A0D5C DF9B2950 AFF6F667
C458EA6D 8EA3C286 98D1D650 131A97AB
AA919AEC EF20E143 B361B1E7 4C8B7F04
B085E65E 2F5F5360 8489D422 FB8FC1AA
93F6323C FD7F7544 3F39C318 D95E6480
FCCC7561 8A4A1741 68FA4223 ADCEDE07
200C25BE DBBC4855 C4CFB774 C5EC138C
0FEC1CEF D9DCECEC D3A5DAD1 01316C36
—— END LICENSE ——
—– BEGIN LICENSE —–
Free Communities Consultoria em Informática Ltda
Single User License
EA7E-801302
C154C122 4EFA4415 F1AAEBCC 315F3A7D
2580735A 7955AA57 850ABD88 72A1DDD8
8D2CE060 CF980C29 890D74F2 53131895
281E324E 98EA1FEF 7FF69A12 17CA7784
490862AF 833E133D FD22141D D8C89B94
4C10A4D2 24693D70 AE37C18F 72EF0BE5
1ED60704 651BC71F 16CA1B77 496A0B19
463EDFF9 6BEB1861 CA5BAD96 89D0118E
—— END LICENSE ——

本文由公众号【产品经理不是经理】同步发布,欢迎关注