Python 3 patcher for Sublime Text v4107-4114 Windows x64

Overview

sublime-text-4-patcher

Python 3 patcher for Sublime Text v4107-4114 Windows x64

Credits for signatures and patching logic goes to https://github.com/leogx9r

  • Uses signatures instead of hardcoded offsets
  • Automatic version detection for stable/dev channels (4107-4114)
  • No host blocking needed
  • Enter any text as license
  • Disables crash report telemetry
  • Disables phoning home

Requirements

pip3 install -r requirements.txt

or just

pip3 install pefile

It's just for pefile which is indirectly used for version detection.

Screenshots

image

Comments
  • Build 4126 patcher not working

    Build 4126 patcher not working

    OS: Windows 8.1 Pro 64-Bit.

    My console;

    C:\Program Files\Sublime Text 3>py -3 sublime_text_4_patcher.py
    ----------------------------------------------------------------
    Sublime Text v4107-4138 Windows x64 Patcher by rainbowpigeon
    ----------------------------------------------------------------
    Enter file path to sublime_text.exe: sublime_text.exe
    [=] Processing ref for sig 48 8D 05 ? ? ? ? 48 8D 95 ? ? ? ? 48 89 02 48 8D 05 ? ? ? ? 48 89 42 08 48 8D 4D ? E8 ? ? ? ? B9...
    [=] Found lea: \x48\x8d\x05\xe4\x48\x75\x00\x48\x8d\x95\x58\x02\x00\x00\x48\x89\x02\x48\x8d\x05\xd7\x48\x75\x00\x48\x89\x42\x08\x48\x8d\x4d\xb0\xe8\x28\x03\x00\x00\xb9
    [=] Found relative address: 0x7548e4
    [=] Determined actual offset: 0x759432
    [+] Sublime Text Version 4126 detected
    [=] Processing ref for sig 4C 8D 4D ? E8 ? ? ? ? ? 8B ? ? ? ? ? 85 C0...
    [=] Found call: \x4c\x8d\x4d\x54\xe8\x0b\xe2\xff\xff\x49\x8b\x8e\x68\x02\x00\x00\x85\xc0
    [=] Found relative address: 0xffffe20b
    [=] Determined actual offset: 0xa7214
    [+] Applying all patches...
    [=] Offset 0x711a  : patching \xe8\xe1\x36\x20\x00 with \x90\x90\x90\x90\x90
    [=] Offset 0x7133  : patching \xe8\xc8\x36\x20\x00 with \x90\x90\x90\x90\x90
    [=] Offset 0xa7214 : patching \x55\x41\x57\x41 with \x48\x31\xc0\xc3
    [=] Offset 0xa8d53 : patching \x55\x56\x57\x48\x83\xec\x30 with \x48\x31\xc0\x48\xff\xc0\xc3
    [=] Offset 0xa6e0f : patching \x55\x56\x57\x48 with \x48\x31\xc0\xc3
    [=] Offset 0x400   : patching \x41 with \xc3
    [+] All patches applied!
    [+] Backing up original file at sublime_text.exe.bak
    [+] Patched file written at sublime_text.exe
    Enjoy! :)
    ----------------------------------------------------------------
    Report any issues at github.com/rainbowpigeon/sublime-text-4-patcher/issues!
    ----------------------------------------------------------------
    

    Ps: I installed requirements. Not working.

    Screenshot

    Also i check py code backing up exe file (exe.bak)

    opened by DeadLyBro 13
  • PermissionError

    PermissionError

    Hello developer,

    I get the error message when executing the py-file: PermissionError: [Errno 13] Permission denied: 'C:\Users\UpdateFreak\Downloads'

    The sublime_text_4_patcher.py and sublime_text.exe are in C:\Users\UpdateFreak\Downloads

    System: Windows 10 21H1 with Miniconda 3 (Python 3.9.5)

    opened by update-freak 3
  • No module named 'prefile'

    No module named 'prefile'

    I got the following error

    Traceback (most recent call last): File "sublime_text_4_patcher.py", line 8, in import prefile ModuleNotFoundError: No module named 'prefile'

    Although I followed all the instructions and it even says when I try to reinstall prefile

    Requirement already satisfied: pefile in c:\users\no name\appdata\local\programs\python\python37\lib\site-packages (2021.5.24) Requirement already satisfied: future in c:\users\no name\appdata\local\programs\python\python37\lib\site-packages (from pefile) (0.18.2)

    Is there a solution?

    opened by okay-bullo 1
  • Sublime wants internet access right after fresh install + patch

    Sublime wants internet access right after fresh install + patch

    Right after entering any license the "Thanks for purchase" popup appears and it wants internet access. image Port 443 so it is most likely https. After running strings I found that it is either sublimehq.com, sublimetext.com or sublimemerge.com all pointing to this IP. Or a crafted string from an array. It might have been an initial version check, Im too lazy to open up wireshark tho. I just block it and we good. If you want to find out you could use dnsproxy with --verbose to see all dns requests.

    invalid 
    opened by Celuni 1
  • Not working for Build 4126

    Not working for Build 4126

    Thank you so much for writing this up, both as a crack but also for someone interested in furthering my Python knowledge, reading the source-code for this has been a good learning experience.

    Unfortunately the patcher doesn't seem to be working for me for Sublime Text 4 Stable Build 4126. I'm copying the .exe from my Program Files into the patcher folder and patching directly from there to avoid permissions issues, but trying to enter a license gives me this error:

    image

    Here's my console output:

    **PATH**\sublime-text-4-patcher (main -> origin)
    λ python sublime_text_4_patcher.py
    ----------------------------------------------------------------
    Sublime Text v4107-4126 Windows x64 Patcher by rainbowpigeon
    ----------------------------------------------------------------
    Enter file path to sublime_text.exe: sublime_text.exe
    [=] Processing ref for sig 48 8D 05 ? ? ? ? 48 8D 95 ? ? ? ? 48 89 02 48 8D 05 ? ? ? ? 48 89 42 08 48 8D 4D ? E8 ? ? ? ? B9...
    [=] Found lea: \x48\x8d\x05\xe4\x48\x75\x00\x48\x8d\x95\x58\x02\x00\x00\x48\x89\x02\x48\x8d\x05\xd7\x48\x75\x00\x48\x89\x42\x08\x48\x8d\x4d\xb0\xe8\x28\x03\x00\x00\xb9
    [=] Found relative address: 0x7548e4
    [=] Determined actual offset: 0x759432
    [+] Sublime Text Version 4126 detected
    [=] Processing ref for sig 4C 8D 4D ? E8 ? ? ? ? ? 8B ? ? ? ? ? 85 C0...
    [=] Found call: \x4c\x8d\x4d\x54\xe8\x0b\xe2\xff\xff\x49\x8b\x8e\x68\x02\x00\x00\x85\xc0
    [=] Found relative address: 0xffffe20b
    [=] Determined actual offset: 0xa7214
    [+] Applying all patches...
    [=] Offset 0x711a  : patching \xe8\xe1\x36\x20\x00 with \x90\x90\x90\x90\x90
    [=] Offset 0x7133  : patching \xe8\xc8\x36\x20\x00 with \x90\x90\x90\x90\x90
    [=] Offset 0xa7214 : patching \x55\x41\x57\x41 with \x48\x31\xc0\xc3
    [=] Offset 0xa8d53 : patching \x55\x56\x57\x48\x83\xec\x30 with \x48\x31\xc0\x48\xff\xc0\xc3
    [=] Offset 0xa6e0f : patching \x55\x56\x57\x48 with \x48\x31\xc0\xc3
    [=] Offset 0x400   : patching \x41 with \xc3
    [+] All patches applied!
    [+] Backing up original file at sublime_text.exe.bak
    [+] Patched file written at sublime_text.exe
    Enjoy! :)
    ----------------------------------------------------------------
    Report any issues at github.com/rainbowpigeon/sublime-text-4-patcher/issues!
    ----------------------------------------------------------------
    

    I've cloned this repo directly and I'm running Python 3. Any help you could offer would be greatly appreciated thanks!

    opened by HeyItsJono 1
  • Feature Request: Sublime Merge support

    Feature Request: Sublime Merge support

    They're near identical patchers anyway, just different offsets, so it would be easy to add to this pwsh scripts I use to patch: ST

    if (!(Get-FileHash sublime_text.exe -Algorithm MD5).Hash -eq '654F4259E066F90F4964E695CF808AD0') { exit }
    'crash_reporter.exe', 'update_installer.exe' | ForEach-Object { if (Test-Path $_) { Remove-Item $_ } }
    '000A9864: 48 31 C0 C3'          | xxd -r - sublime_text.exe
    '000071FE: 90 90 90 90 90'       | xxd -r - sublime_text.exe
    '00007217: 90 90 90 90 90'       | xxd -r - sublime_text.exe
    '000AB682: 48 31 C0 48 FF C0 C3' | xxd -r - sublime_text.exe
    '000A940F: C3'                   | xxd -r - sublime_text.exe
    '00000400: C3'                   | xxd -r - sublime_text.exe
    

    SM

    if (!(Get-FileHash sublime_merge.exe -Algorithm MD5).Hash -eq 'CC38B7E3DAB6420773962F2C18929669') { exit }
    'crash_reporter.exe', 'update_installer.exe' | ForEach-Object { if (Test-Path $_) { Remove-Item $_ } }
    '000254FA: 48 31 C0 C3'             | xxd -r - sublime_merge.exe
    '000289C9: 90 90 90 90 90'          | xxd -r - sublime_merge.exe
    '000289E2: 90 90 90 90 90'          | xxd -r - sublime_merge.exe
    '00026D59: 48 31 C0 48 FF C0 C3'    | xxd -r - sublime_merge.exe
    '000250FD: C3'                      | xxd -r - sublime_merge.exe
    '000241A4: C3'                      | xxd -r - sublime_merge.exe
    
    enhancement 
    opened by brian6932 0
  • Linux Version please

    Linux Version please

    Hi, first of all thanks for uploading this patcher. Really useful. A small request of mine is to upload a similar patcher for the Linux build of 4126v

    enhancement 
    opened by debxrshi 0
Owner
null
Live coding in Python with PyCharm, Emacs, Sublime Text, or even a browser

Live Coding in Python Visualize your Python code while you type it in PyCharm, Emacs, Sublime Text, or even your browser. To see how to use one of the

Don Kirkby 256 Dec 14, 2022
Shows Odin Lang errors in Sublime Text.

OdinErrors Shows Odin Lang errors in Sublime Text. Config Collections and defines are stored in ols.json (Hijacked from ols). { "collections": [

Gus 3 Nov 20, 2021
Integrate clang-format with Sublime Text

Sublime Text Clang Format Plugin This is a minimal plugin integrating clang-format with Sublime Text, with emphasis on the word minimal. It is not rea

Jon Palmisciano 1 Dec 17, 2021
VSCode extension to sort and refactor python imports using reorder-python-imports.

reorder-python-imports VSCode extension to sort and refactor python imports using reorder-python-imports. Unlike other import organizers, reorder-pyth

Ryan Butler 3 Aug 26, 2022
Python Indent - Correct python indentation in Visual Studio Code.

Python Indent Correct python indentation in Visual Studio Code. See the extension on the VSCode Marketplace and its source code on GitHub. Please cons

Kevin Rose 57 Dec 15, 2022
Spyder - The Scientific Python Development Environment

Spyder is a powerful scientific environment written in Python, for Python, and designed by and for scientists, engineers and data analysts. It offers a unique combination of the advanced editing, analysis, debugging, and profiling functionality of a comprehensive development tool with the data exploration, interactive execution, deep inspection, and beautiful visualization capabilities of a scientific package.

Spyder IDE 7.3k Jan 8, 2023
Gaphor is a UML and SysML modeling application written in Python.

Gaphor is a UML and SysML modeling application written in Python. It is designed to be easy to use, while still being powerful. Gaphor implements a fully-compliant UML 2 data model, so it is much more than a picture drawing tool. You can use Gaphor to quickly visualize different aspects of a system as well as create complete, highly complex models.

Gaphor 1.3k Jan 7, 2023
notebookJS: seamless JavaScript integration in Python Notebooks

notebookJS enables the execution of custom JavaScript code in Python Notebooks (Jupyter Notebook and Google Colab). This Python library can be useful for implementing and reusing interactive Data Visualizations in the Notebook environment.

jorgehpo 146 Dec 7, 2022
Mu - A Simple Python Code Editor

A small, simple editor for beginner Python programmers. Written in Python and Qt5.

Mu 1.2k Jan 3, 2023
A GitHub Action hosted Python IDE!

What is this ? This is an IDE running on GitHub Actions which can help in..... Running small snippets. Running codes whenever PC is not available and

Jainam Oswal 21 Nov 9, 2022
Python IDE or notebook to generate a basic Kepler.gl data visualization

geospatial-data-analysis [readme] Use this code in your Python IDE or notebook to generate a basic Kepler.gl data visualization, without pre-configura

null 2 Sep 5, 2022
A Python code editor that looks like GNU Emacs.

?? WARNING ?? : Under development... Testing is not recommended! Welcome to Snake Editor! Hi! This is our repository, we are here to present our new p

Marcio Dantas 5 May 20, 2022
This is code for IDLE python/ Magic8Ball Code

Magic8Ball this is code for IDLE python/ Magic8Ball Code this code is for beginers i hope you can learn code form this don't ever be a script kiddie a

null 1 Nov 5, 2021
cottonformation is a Python tool providing best development experience and highest productivity

Welcome to cottonformation Documentation Full Documentatioin Here cottonformation is a Python tool providing best development experience and highest p

Sanhe 6 Jul 8, 2022
An amazing simple Python IDE for developers!

PyHub An amazing simple Python IDE for developers! Get ready to compile and run your code in the most simplest and easiest IDE of the ancient world! T

Aniket Bhattacharjee 2 Dec 31, 2022
A Sublime Text package that allows a user to view all the available core/plugin commands for Sublime Text and Sublime Merge, along with their documentation/source.

CommandsBrowser A Sublime Text package that allows a user to view all the available core/plugin commands for Sublime Text and Sublime Merge, along wit

Sublime Instincts 26 Nov 15, 2022
Automated tool to exploit basic buffer overflow remotely and locally & x32 and x64

Automated tool to exploit basic buffer overflow (remotely or locally) & (x32 or x64)

null 5 Oct 9, 2022
Umamusume story patcher with python

umamusume-story-patcher How to use Go to your umamusume folder, usually C:\Users\<user>\AppData\LocalLow\Cygames\umamusume Make a mods folder and clon

null 8 May 7, 2022
Python APK Reverser & Patcher Tool

DTL-X An Advanced Python APK Reverser and Patcher Tool. --rmads1: target=AndroidManifest.xml,replace=com.google.android.gms.ad --rmads2: No Internet (

DedSecTL 10 Oct 31, 2022