Skip to content

Instantly share code, notes, and snippets.

@Fadi002
Created May 23, 2025 22:20
Show Gist options
  • Save Fadi002/51a505cece648915bc2f32f3b7e6b71d to your computer and use it in GitHub Desktop.
Save Fadi002/51a505cece648915bc2f32f3b7e6b71d to your computer and use it in GitHub Desktop.
Crack Sublime Text 4.2.0.0 Build 4200 [latest version]
import sys
import os

NOP = 0x90
offsets_and_values = {
    0x00030170: 0x00,
    0x000A94D0: NOP, 0x000A94D1: NOP, 0x000A94D2: NOP, 0x000A94D3: NOP, 0x000A94D4: NOP, 0x000A94D5: NOP, 0x000A94D6: NOP, 0x000A94D7: NOP, 0x000A94D8: NOP, 0x000A94D9: NOP, 0x000A94DA: NOP, 0x000A94DB: NOP, 0x000A94DC: NOP, 0x000A94DD: NOP, 0x000A94DE: NOP, 0x000A94DF: NOP, 0x000A94E0: NOP, 0x000A94E1: NOP, 0x000A94E2: NOP, 0x000A94E3: NOP, 0x000A94E4: NOP, 0x000A94E5: NOP, 0x000A94E6: NOP, 0x000A94E7: NOP, 0x000A94E8: NOP, 0x000A94E9: NOP, 0x000A94EA: NOP, 0x000A94EB: NOP, 0x000A94EC: NOP, 0x000A94ED: NOP, 0x000A94EE: NOP, 0x000A94EF: NOP, 0x000A94F0: NOP, 0x000A94F1: NOP, 0x000A94F2: NOP, 0x000A94F3: NOP, 0x000A94F4: NOP, 0x000A94F5: NOP, 0x000A94F6: NOP, 0x000A94F7: NOP, 0x000A94F8: NOP, 0x000A94F9: NOP, 0x000A94FA: NOP, 0x000A94FB: NOP, 0x000A94FC: NOP, 0x000A94FD: NOP, 0x000A94FE: NOP, 0x000A94FF: NOP, 0x000A9500: NOP, 0x000A9501: NOP, 0x000A9502: NOP, 0x000A9503: NOP, 0x000A9504: NOP, 0x000A9505: NOP, 0x000A9506: NOP, 0x000A9507: NOP, 0x000A9508: NOP, 0x000A9509: NOP, 0x000A950A: NOP, 0x000A950B: NOP, 0x000A950C: NOP, 0x000A950D: NOP, 0x000A950E: NOP, 0x000A950F: NOP,
    0x001C6CCD: 0x02,
    0x001C6CE4: 0x00,
    0x001C6CFB: 0x00,
}

def patch_exe(input_file, output_file=None):
    output_file = output_file or f"{os.path.splitext(input_file)[0]}_patched.exe"
    try:
        with open(input_file, 'rb') as f:
            data = f.read()
        patched_data = bytearray(data)
        for offset, value in offsets_and_values.items():
            if offset < len(patched_data):
                patched_data[offset] = value
        with open(output_file, 'wb') as f:
            f.write(patched_data)
        print(f"[+] Patch applied successfully! Saved as: {output_file}")

    except Exception as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: python patcher.py <input_file> [output_file]")
    else:
        patch_exe(sys.argv[1], sys.argv[2] if len(sys.argv) > 2 else None)

How to Run:

  1. Save the code in a Python script (e.g., patcher.py).

  2. Open the terminal/command prompt and run the script like so:

    python patcher.py "path_to_sublime_text.exe"

    Replace "path_to_sublime_text.exe" with the actual path to the sublime_text.exe file.

  3. The patched version will be saved in the same directory as the original file (or you can specify a custom output path).

Note:

Please be aware that even after applying the patch, the status may still display as (UNREGISTERED). This is normal, and you can safely disregard this message because the app is already activited.
big thanks to @AdvDebug

@SoumyaEXE
Copy link

Done

@zainyzx
Copy link

zainyzx commented Jul 20, 2025

C6

thanks . this work

@leagueofperez
Copy link

How to crack Sublime Text 4 4200 linux version?

4200, Ubuntu sudo perl -pi -e 's/\x0F\xB6\x51\x05\x83\xF2\x01/\xC6\x41\x05\x01\xB2\x00\x90/' /opt/sublime_text/sublime_text thanks to @Vitalicus

thanks

@Nirdans
Copy link

Nirdans commented Jul 25, 2025

sudo perl -pi -e 's/\x0F\xB6\x51\x05\x83\xF2\x01/\xC6\x41\x05\x01\xB2\x00\x90/' /opt/sublime_text/sublime_text

Cela n'a pas marcher chez moi

@kjmnk
Copy link

kjmnk commented Jul 28, 2025

The code run fine, I got the massage Successfully!
But in the title bar, still shows the text "Unregistered" and in the About menu, also show "Unregistered"
But I think it'll fine, it's cracked, isn't it? :D

@hakimdaniel
Copy link

Nicer, it's working dude

@i-am-called-glitchy
Copy link

How to crack Sublime Text 4 4200 linux version?

4200, Ubuntu sudo perl -pi -e 's/\x0F\xB6\x51\x05\x83\xF2\x01/\xC6\x41\x05\x01\xB2\x00\x90/' /opt/sublime_text/sublime_text thanks to @Vitalicus

Confirmed, works on arch [btw]

image

@midosvt
Copy link

midosvt commented Aug 6, 2025

Nice. It worked, thanks.
image

@dzvonko-hub
Copy link

Hi,

how do i check if it is cracked or not? It still says "Unregistered" so I'm not sure.

Thanks anyway and cheers

@0CoolDev
Copy link

The code run fine, I got the massage Successfully! But in the title bar, still shows the text "Unregistered" and in the About menu, also show "Unregistered" But I think it'll fine, it's cracked, isn't it? :D

Go to License and tpye something random> click activate

@0CoolDev
Copy link

Hi,

how do i check if it is cracked or not? It still says "Unregistered" so I'm not sure.

Thanks anyway and cheers

Got ot license> type something random> hit activate

@Fadi002
Copy link
Author

Fadi002 commented Aug 13, 2025

Hi,

how do i check if it is cracked or not? It still says "Unregistered" so I'm not sure.

Thanks anyway and cheers

If it says unregistered then it's not patched

@yangxiaoyang-me
Copy link

Windows Sublime Text Build 4200
Search 0x00046B80
0F B6 51 05 83 F2 01 -> C6 41 05 01 B2 00 90

Thanks, it worked on my end

Hey Can You Give Me The Updated Code?

open HexEd.it Upload you sublime text.exe Search 0x00046B80 0F B6 51 05 83 F2 01 -> change to -> C6 41 05 01 B2 00 90 Save As & Done

Thanks So Much

@JhonnyHRocha
Copy link

Perfect!

@felixseletskiy
Copy link

hey,

I'm a newbie here.

I have some issues with cracking sublime through this way.

I have alreadu saved file with the initial text as "python.py" (screen attached)

I always see an error on command prompt on my windows (screen attached).

Please, could you help what I'm doing wrong?
Screenshot 2025-08-28 003053
Screenshot 2025-08-28 003033

@Fadi002
Copy link
Author

Fadi002 commented Aug 28, 2025

hey,

I'm a newbie here.

I have some issues with cracking sublime through this way.

I have alreadu saved file with the initial text as "python.py" (screen attached)

I always see an error on command prompt on my windows (screen attached).

Please, could you help what I'm doing wrong? Screenshot 2025-08-28 003053 Screenshot 2025-08-28 003033

Install python from https://python.org

@scanthenetes
Copy link

It's works! thanks

@Rebelboom
Copy link

Rebelboom commented Sep 10, 2025

Windows Sublime Text Build 4200
Search 0x00046B80
0F B6 51 05 83 F2 01 -> C6 41 05 01 B2 00 90

Thanks for sharing your patch ♥

Not everyone understands hex editing. Instead of manually replacing 0F B6 51 05 83 F2 01 with C6 41 05 01 B2 00 90, you can simply create a Python file (for example, patcher.py) and run it in the same folder as the binary file.

It is recommended to copy the binary file to an external folder, patch it there, and then copy or move it back to the installed program’s folder, agreeing to replace the original file.

Or just run in the terminal:
python -c "import shutil; fn='sublime_text.exe'; off=0x46B80; old=bytes.fromhex('0F B6 51 05 83 F2 01'); new=bytes.fromhex('C6 41 05 01 B2 00 90'); shutil.copy2(fn, fn+'.old'); f=open(fn,'r+b'); f.seek(off); d=f.read(len(old)); (d==old) and (f.seek(off),f.write(new),print('[+] Patch applied')) or print('[!] Bytes differ, not patched'); f.close()"

@xorcista
Copy link

xorcista commented Oct 6, 2025

Thanks

@qzzhoulu1995
Copy link

how can mac hack it?

@netwixell
Copy link

I work this minimal version

import sys
import os

offsets_and_values = {
	0x001C6CE4: 0x00,
	0x001C6CFB: 0x00,
}

path = r"C:\Program Files\Sublime Text 3\sublime_text.exe"


def patch_exe(input_file, output_file=None):
    output_file = output_file or f"{os.path.splitext(input_file)[0]}_patched.exe"
    try:
        with open(input_file, 'rb') as f:
            data = f.read()
        patched_data = bytearray(data)
        for offset, value in offsets_and_values.items():
            if offset < len(patched_data):
                patched_data[offset] = value
        with open(output_file, 'wb') as f:
            f.write(patched_data)
        print(f"[+] Patch applied successfully! Saved as: {output_file}")

    except Exception as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: python patcher.py <input_file> [output_file]")
    else:
        patch_exe(sys.argv[1], sys.argv[2] if len(sys.argv) > 2 else None)

@sfrechette88
Copy link

Windows Sublime Text Build 4200
Search 0x00046B80
0F B6 51 05 83 F2 01 -> C6 41 05 01 B2 00 90

Thanks for sharing your patch ♥

Not everyone understands hex editing. Instead of manually replacing 0F B6 51 05 83 F2 01 with C6 41 05 01 B2 00 90, you can simply create a Python file (for example, patcher.py) and run it in the same folder as the binary file.

It is recommended to copy the binary file to an external folder, patch it there, and then copy or move it back to the installed program’s folder, agreeing to replace the original file.

Or just run in the terminal: python -c "import shutil; fn='sublime_text.exe'; off=0x46B80; old=bytes.fromhex('0F B6 51 05 83 F2 01'); new=bytes.fromhex('C6 41 05 01 B2 00 90'); shutil.copy2(fn, fn+'.old'); f=open(fn,'r+b'); f.seek(off); d=f.read(len(old)); (d==old) and (f.seek(off),f.write(new),print('[+] Patch applied')) or print('[!] Bytes differ, not patched'); f.close()"

Awesome! So easy and quick!!

+1 !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment