Instantly share code, notes, and snippets.

Embed
What would you like to do?
Sublime Text 3 patching

Ref: https://gist.github.com/vertexclique/9839383

Important Note

Please use built-in Terminal.app (of Mac OS X) to type and rune the command, do not use another tool (like iTerm2).

Common step after enter run the patch command:

  • After run the commands, start new Sublime Text app, go to Main Menu > Help > Enter License. On the popup type in any text (example "a") and click Use Licence .

For 3176 build 2018.05.14

printf '\xc3' | dd seek=$((0xae95)) conv=notrunc bs=1 of=/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text
printf '\xc3' | dd seek=$((0xb2c6)) conv=notrunc bs=1 of=/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text
printf '\x48\xc7\xc0\x01\x00\x00\x00\xc3' | dd seek=$((0x85036)) conv=notrunc bs=1 of=/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text

Linux platform

printf '\x00\01' | sudo dd seek=$((0xD538)) conv=notrunc bs=1 of=/opt/sublime_text/sublime_text

For 3170 build 2018.05.08

VERSION PLATFORM OFFSET ORIGINAL CRACKED
3170 macOS 0xADF6 55 C3
3170   macOS   0xA9C5 55       C3    
3170 macOS   0x84702 55 48 89 E5 41 57 41 56 48 C7 C0 01 00 00 00 C3
printf '\xc3' | dd seek=$((0xadf6)) conv=notrunc bs=1 of=/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text
printf '\xc3' | dd seek=$((0xa9c5)) conv=notrunc bs=1 of=/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text
printf '\x48\xc7\xc0\x01\x00\x00\x00\xc3' | dd seek=$((0x84702)) conv=notrunc bs=1 of=/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text

Linux platform

printf '\x00\01' | sudo dd seek=$((0xD5D8)) conv=notrunc bs=1 of=/opt/sublime_text_3/sublime_text

For 3143 build 2017.09.14

VERSION PLATFORM OFFSET ORIGINAL CRACKED
3143 macOS 0x65D4 55 C3
3143   macOS   0x6219 55       C3    
3143 macOS   0x75214 55 48 89 E5 41 57 41 56 48 C7 C0 01 00 00 00 C3
3143 Linux x86_64   0x19D46 89 E8 74 FF C0 EB

Open Terminal and run bellow 3 commands (run all of them)

printf '\xc3' | dd seek=$((0x65d4)) conv=notrunc bs=1 of=/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text
printf '\xc3' | dd seek=$((0x6219)) conv=notrunc bs=1 of=/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text
printf '\x48\xc7\xc0\x01\x00\x00\x00\xc3' | dd seek=$((0x75214)) conv=notrunc bs=1 of=/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text

After run the commands, start new Sublime Text app, go to Main Menu > Help > Enter License. On the popup type in any text (example "a") and click Use Licence .

For 3126 build 2016.09.26

VERSION PLATFORM OFFSET ORIGINAL CRACKED
3126 macOS 0x6890 F8 E0
3126 Win x86 0xBA11D 1A 2A
3126 Win x64 0xFC53B 94 95
3126 Linux x86 0xC35C 94 95
3126 Linux x64 0xC62E 94 95

Terminal command for Mac OS X:

printf '\xe0' | dd seek=$((0x6890)) conv=notrunc bs=1 of=/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text

Terminal command for Linux x86:

printf '\x95' | dd seek=$((0xc35c)) conv=notrunc bs=1 of=/path/to/sublime_text
@di-ma-73

This comment has been minimized.

Show comment
Hide comment
@di-ma-73

di-ma-73 May 20, 2016

Thank you!

di-ma-73 commented May 20, 2016

Thank you!

@dinho1903

This comment has been minimized.

Show comment
Hide comment
@dinho1903

dinho1903 Sep 23, 2016

VERSION PLATFORM OFFSET ORIGINAL CRACKED
3124 Linux x86 0xc34c 94 95

dinho1903 commented Sep 23, 2016

VERSION PLATFORM OFFSET ORIGINAL CRACKED
3124 Linux x86 0xc34c 94 95
@tank666

This comment has been minimized.

Show comment
Hide comment
@tank666

tank666 Sep 23, 2016

VERSION PLATFORM OFFSET ORIGINAL CRACKED
3124 Win x86 0xba148 1a 2a

tank666 commented Sep 23, 2016

VERSION PLATFORM OFFSET ORIGINAL CRACKED
3124 Win x86 0xba148 1a 2a
@dinho1903

This comment has been minimized.

Show comment
Hide comment
@dinho1903

dinho1903 Sep 28, 2016

VERSION PLATFORM OFFSET ORIGINAL CRACKED
3126 Linux x86 0xc35c 94 95

dinho1903 commented Sep 28, 2016

VERSION PLATFORM OFFSET ORIGINAL CRACKED
3126 Linux x86 0xc35c 94 95
@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jan 9, 2017

Nice Tutorial.

But, if you want to crack any version of Sublime text . you must need to watch this video tutorial => https://www.youtube.com/watch?v=MCQP6oJj4Zw

in this video i was show, how you can crack any build of sublime text 3 to life time unlimited user .
as a demo i was show Sublime Text 3 build 3103 cracked tutorial :)

A thanks is more appreciate
Thanks.

ghost commented Jan 9, 2017

Nice Tutorial.

But, if you want to crack any version of Sublime text . you must need to watch this video tutorial => https://www.youtube.com/watch?v=MCQP6oJj4Zw

in this video i was show, how you can crack any build of sublime text 3 to life time unlimited user .
as a demo i was show Sublime Text 3 build 3103 cracked tutorial :)

A thanks is more appreciate
Thanks.

@ikouchiha47

This comment has been minimized.

Show comment
Hide comment
@ikouchiha47

ikouchiha47 Feb 2, 2017

What is this offset code? also what is this piping to dd doing?replacing/adding that hex value to the seeked position in output bytes. some explanation would be good, (maybe in email)

because for linux64 tar ball, it doesn'twork

ikouchiha47 commented Feb 2, 2017

What is this offset code? also what is this piping to dd doing?replacing/adding that hex value to the seeked position in output bytes. some explanation would be good, (maybe in email)

because for linux64 tar ball, it doesn'twork

@scrthq

This comment has been minimized.

Show comment
Hide comment
@scrthq

scrthq Mar 11, 2017

For those on Windows, I wrote a handy Powershell function to use it as a hex editor. Confirmed working on Sublime Text 3, should work with any version of it as well. Total time to patch the EXE is about 5 seconds in all.

Here's how to use:

  1. Open a Powershell console (Administrator level to avoid errors, although this worked fine for me in normal)
  2. Run the following command to load the function from my GitHub (feel free to go the URL to investigate the function itself):
Invoke-Expression (New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/nferrell/PSToolbelt/master/Public/Edit-FileHex.ps1")
  1. Run the following command to "register" Sublime Text 3 (I'm using build 3126 on Win x64 as an example):
Edit-FileHex -FilePath "C:\Program Files\Sublime Text 3\sublime_text.exe" -Offset 0xFC53B -Original 94 -Updated 95 -OverwriteOriginal

If you would like to test this out first, you can remove the -OverwriteOriginal switch from the command. This will create an edited clone titled sublime_text (Hexed).exe in the same folder as the original.

scrthq commented Mar 11, 2017

For those on Windows, I wrote a handy Powershell function to use it as a hex editor. Confirmed working on Sublime Text 3, should work with any version of it as well. Total time to patch the EXE is about 5 seconds in all.

Here's how to use:

  1. Open a Powershell console (Administrator level to avoid errors, although this worked fine for me in normal)
  2. Run the following command to load the function from my GitHub (feel free to go the URL to investigate the function itself):
Invoke-Expression (New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/nferrell/PSToolbelt/master/Public/Edit-FileHex.ps1")
  1. Run the following command to "register" Sublime Text 3 (I'm using build 3126 on Win x64 as an example):
Edit-FileHex -FilePath "C:\Program Files\Sublime Text 3\sublime_text.exe" -Offset 0xFC53B -Original 94 -Updated 95 -OverwriteOriginal

If you would like to test this out first, you can remove the -OverwriteOriginal switch from the command. This will create an edited clone titled sublime_text (Hexed).exe in the same folder as the original.

@ikouchiha47

This comment has been minimized.

Show comment
Hide comment
@ikouchiha47

ikouchiha47 May 17, 2017

For people who want to know what this does. it replaces the cmp (83 f8 01) with a similar thing , bypassing the important bit :P

ikouchiha47 commented May 17, 2017

For people who want to know what this does. it replaces the cmp (83 f8 01) with a similar thing , bypassing the important bit :P

@robertnicjoo

This comment has been minimized.

Show comment
Hide comment
@robertnicjoo

robertnicjoo commented Sep 14, 2017

3143?

@laptrinhcomvn

This comment has been minimized.

Show comment
Hide comment
@laptrinhcomvn

laptrinhcomvn Sep 14, 2017

Updated for Version: 3143

Owner

laptrinhcomvn commented Sep 14, 2017

Updated for Version: 3143

@robertnicjoo

This comment has been minimized.

Show comment
Hide comment
@robertnicjoo

robertnicjoo Sep 14, 2017

@laptrinhcowvn how to active it in windows?

robertnicjoo commented Sep 14, 2017

@laptrinhcowvn how to active it in windows?

@Rossie

This comment has been minimized.

Show comment
Hide comment
@Rossie

Rossie Sep 15, 2017

Windows version please! 👍

Rossie commented Sep 15, 2017

Windows version please! 👍

@h3ct0rjs

This comment has been minimized.

Show comment
Hide comment
@h3ct0rjs

h3ct0rjs Sep 15, 2017

Not working in Linux x86_64 😢

h3ct0rjs commented Sep 15, 2017

Not working in Linux x86_64 😢

@hcconquer

This comment has been minimized.

Show comment
Hide comment
@hcconquer

hcconquer Sep 15, 2017

thanks very much, it works very well in osx!

hcconquer commented Sep 15, 2017

thanks very much, it works very well in osx!

@augustoguerrero

This comment has been minimized.

Show comment
Hide comment
@augustoguerrero

augustoguerrero Sep 15, 2017

Like @h3ct0rjs, tested on debian x64 and not working.

augustoguerrero commented Sep 15, 2017

Like @h3ct0rjs, tested on debian x64 and not working.

@Abhinav1217

This comment has been minimized.

Show comment
Hide comment
@Abhinav1217

Abhinav1217 Sep 19, 2017

Not working in Linux x86_64

Abhinav1217 commented Sep 19, 2017

Not working in Linux x86_64

@snj33v

This comment has been minimized.

Show comment
Hide comment
@snj33v

snj33v Sep 29, 2017

linux crack only works on arch

snj33v commented Sep 29, 2017

linux crack only works on arch

@qbvan

This comment has been minimized.

Show comment
Hide comment
@qbvan

qbvan Nov 17, 2017

thank you, it worked

qbvan commented Nov 17, 2017

thank you, it worked

@possessedbysatan

This comment has been minimized.

Show comment
Hide comment
@possessedbysatan

possessedbysatan Feb 5, 2018

Linux (Arch) crack working as expected. Perhaps you guys didn't write the right command. I'll leave it here for you since it isn't mentioned in the guide:
printf '\xff\xc0\xeb' | sudo dd seek=$((0x19D46)) conv=notrunc bs=1 of=sublime_text

sublime_text can be found in /opt/sublime_text_3

possessedbysatan commented Feb 5, 2018

Linux (Arch) crack working as expected. Perhaps you guys didn't write the right command. I'll leave it here for you since it isn't mentioned in the guide:
printf '\xff\xc0\xeb' | sudo dd seek=$((0x19D46)) conv=notrunc bs=1 of=sublime_text

sublime_text can be found in /opt/sublime_text_3

@Un1Gfn

This comment has been minimized.

Show comment
Hide comment
@Un1Gfn

Un1Gfn May 9, 2018

@laptrinhcomvn Excuse me, but how to crack 3170 Linux build? I found all 89 E8 74 with binwalk -R "\x89\xe8\x74" /opt/sublime_text/sublime_text and tried the following script:

#!/bin/bash
# Enter
cd /opt/sublime_text/
# Backup
cp -a sublime_text sublime_text.orig

# Crack one
for OFFSET in $((0xA796C)) $((0xD5CCA)) $((0x18AD90)) $((0x1E5745)) $((0x1EEBC1)) $((0x1EEBE5)) $((0x25C928)) $((0x3ACE97)); do
  # Recover
  cp -a sublime_text.orig sublime_text
  # Replace
  printf '\xff\xc0\xeb' | dd \
    seek=$OFFSET \
    conv=notrunc \
    bs=1 \
    of=sublime_text
  # Test
  printf "\n%7X Please open subl manually, test, then press Enter/C-c" $OFFSET
  read
done
echo

But it does not work. Invalid license every time. The SublimeHQ might have evolved this time :)

Un1Gfn commented May 9, 2018

@laptrinhcomvn Excuse me, but how to crack 3170 Linux build? I found all 89 E8 74 with binwalk -R "\x89\xe8\x74" /opt/sublime_text/sublime_text and tried the following script:

#!/bin/bash
# Enter
cd /opt/sublime_text/
# Backup
cp -a sublime_text sublime_text.orig

# Crack one
for OFFSET in $((0xA796C)) $((0xD5CCA)) $((0x18AD90)) $((0x1E5745)) $((0x1EEBC1)) $((0x1EEBE5)) $((0x25C928)) $((0x3ACE97)); do
  # Recover
  cp -a sublime_text.orig sublime_text
  # Replace
  printf '\xff\xc0\xeb' | dd \
    seek=$OFFSET \
    conv=notrunc \
    bs=1 \
    of=sublime_text
  # Test
  printf "\n%7X Please open subl manually, test, then press Enter/C-c" $OFFSET
  read
done
echo

But it does not work. Invalid license every time. The SublimeHQ might have evolved this time :)

@n0kt

This comment has been minimized.

Show comment
Hide comment
@n0kt

n0kt May 10, 2018

@Un1Gfn This worked for me on Linux x64 3170 specifically lubuntu 18.04
printf '\x00\01' | sudo dd seek=$((0xD5D8)) conv=notrunc bs=1 of=/opt/sublime_text/sublime_text
Credit to @zecapistolas who commented here.

n0kt commented May 10, 2018

@Un1Gfn This worked for me on Linux x64 3170 specifically lubuntu 18.04
printf '\x00\01' | sudo dd seek=$((0xD5D8)) conv=notrunc bs=1 of=/opt/sublime_text/sublime_text
Credit to @zecapistolas who commented here.

@1nikolas

This comment has been minimized.

Show comment
Hide comment
@1nikolas

1nikolas May 18, 2018

Thanks it works!!

1nikolas commented May 18, 2018

Thanks it works!!

@ecr007

This comment has been minimized.

Show comment
Hide comment
@ecr007

ecr007 May 19, 2018

Working 100% on Mac OSX

ecr007 commented May 19, 2018

Working 100% on Mac OSX

@mustelida

This comment has been minimized.

Show comment
Hide comment
@mustelida

mustelida May 20, 2018

@scrthq Re: Edit-FileHex.ps1

Wish I'd known about this when I wrote this similar script hexpatcher.

It takes in a program name and a CSV file of the hex edits and outputs the patched program (+ a backed up original). More details in the gist.

mustelida commented May 20, 2018

@scrthq Re: Edit-FileHex.ps1

Wish I'd known about this when I wrote this similar script hexpatcher.

It takes in a program name and a CSV file of the hex edits and outputs the patched program (+ a backed up original). More details in the gist.

@justinesenerez

This comment has been minimized.

Show comment
Hide comment
@justinesenerez

justinesenerez May 22, 2018

I found this very simple youtube tutorial. I thought this won't work but it did. https://www.youtube.com/watch?v=Io2yEUcSz7Q&t=13s

justinesenerez commented May 22, 2018

I found this very simple youtube tutorial. I thought this won't work but it did. https://www.youtube.com/watch?v=Io2yEUcSz7Q&t=13s

@Un1Gfn

This comment has been minimized.

Show comment
Hide comment
@Un1Gfn

Un1Gfn May 24, 2018

@n0kt @zecapistolas Works like magic. Don't even need to enter any garbage license...

Un1Gfn commented May 24, 2018

@n0kt @zecapistolas Works like magic. Don't even need to enter any garbage license...

@lroe

This comment has been minimized.

Show comment
Hide comment
@lroe

lroe May 28, 2018

Works in ubuntu

lroe commented May 28, 2018

Works in ubuntu

@OzanKurt

This comment has been minimized.

Show comment
Hide comment
@OzanKurt

OzanKurt May 28, 2018

Make one for windows?

OzanKurt commented May 28, 2018

Make one for windows?

@possessedbysatan

This comment has been minimized.

Show comment
Hide comment
@possessedbysatan

possessedbysatan Jun 19, 2018

@OzanKurt
It has been already patched for windows. There are several videos on youtube showing how to patch it.

By the way, patch is working as intended (Arch Linux).

possessedbysatan commented Jun 19, 2018

@OzanKurt
It has been already patched for windows. There are several videos on youtube showing how to patch it.

By the way, patch is working as intended (Arch Linux).

@ojulianos

This comment has been minimized.

Show comment
Hide comment
@ojulianos

ojulianos Aug 18, 2018

Working on sublime with arch linux

ojulianos commented Aug 18, 2018

Working on sublime with arch linux

@tjbulick

This comment has been minimized.

Show comment
Hide comment
@tjbulick

tjbulick Sep 14, 2018

works fine

tjbulick commented Sep 14, 2018

works fine

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