python tkinter制作Sublime注册工具

本文介绍了如何使用Python编写一个脚本来修改SublimeText3的hex码,实现激活过程,包括选择源文件、输出路径以及实际的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考资料

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()

使用方法

  • 下载安装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 ——

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值