Skip to content

Instantly share code, notes, and snippets.

@woniuzfb
Created April 2, 2019 08:21
Show Gist options
  • Save woniuzfb/c4daad081bad293a62010c7f38b1edba to your computer and use it in GitHub Desktop.
Save woniuzfb/c4daad081bad293a62010c7f38b1edba to your computer and use it in GitHub Desktop.
Cracking guide for Sublime Text 3 Build 3203/3200 and Sublime Merge - Build 1111/1109 (Linux x86_64) - Updated #4 (20190401)

Script for patching Sublime Text 3 and Sublime Merge - Linux x64!

Only for builds 3203/3200 and 1111/1109

License key required: NO

3203_big

Detailed explanation

Automatic re-registration is triggered by the "About Sublime Text" in the program menu.

If the registration is valid, then the window of the program "Preferences -> Settings"
opens in a new window, if not, then you need to call the window "About Sublime Text" 
from program menu and the registration status of the program will be resumed. Enough to do one time.

First Step:

DOWNLOAD MAGIC SCRIPT

How to patch the executable? Copy/Paste this script and run:

  • $ sudo chmod +x sublime_patch.sh
  • $ sudo ./sublime_patch.sh
#!/bin/bash
#

#############################################################################################
#
# Brief: Script for patching Sublime Text 3 Build 3200/3203 and Sublime Merge Build 1109/1111
# Author: cipherhater <https://gist.github.com/cipherhater>
# Copyright: © 2019 CipherHater, Inc.
#
#############################################################################################

# Colored output echo string
RESTORE='\001\033[0m\002'
RED='\001\033[00;31m\002'
GREEN='\001\033[00;32m\002'
YELLOW='\001\033[00;33m\002'
BLUE='\001\033[00;34m\002'
MAGENTA='\001\033[00;35m\002'
PURPLE='\001\033[00;35m\002'
CYAN='\001\033[00;36m\002'
LIGHTGRAY='\001\033[00;37m\002'
LRED='\001\033[01;31m\002'
LGREEN='\001\033[01;32m\002'
LYELLOW='\001\033[01;33m\002'
LBLUE='\001\033[01;34m\002'
LMAGENTA='\001\033[01;35m\002'
LPURPLE='\001\033[01;35m\002'
LCYAN='\001\033[01;36m\002'
WHITE='\001\033[01;37m\002'

echo -en ${RESTORE}

version_text='3203 3200'
version_merge='1111 1109'

support_versions=${version_text}${version_merge}

echo -en ${LYELLOW} "\nThis script supports only: \n\n \
	${GREEN}Platform: ${WHITE} Linux x86_64\n\n \
	${GREEN}Sublime Text 3 Build: ${LMAGENTA} $versions_text\n\n \
	${GREEN}Sublime Merge Build: ${LMAGENTA} $versions_merge\n\n"

echo -en ${RESTORE}

function textPatching {
echo -en ${YELLOW} '\nChecking Sublime Text path ...\n'

if [[ -f './sublime_text' ]]; then 
	p='.'
else
	echo -en ${WHITE} 
	read -r -p "Please input sublime_text installed path (the directory contains sublime_text): \
			    `echo $'\n> '`" p

	if [[ ! -d "$p" ]]; then
	    echo -en ${LRED} '\nError: '$p' Is not a directory!\n\n'
	    echo -en ${RED} 'Goodbay!\n\n'
	    echo -en ${RESTORE}
	    exit 11
	fi

	if [[ ! -f "$p/sublime_text" ]]; then
	    echo -en ${LRED} '\nError: '$p' Is not a sublime_text installed path!\n\n'
	    echo -en ${RESTORE}
	    echo -en ${RED} 'Goodbay!\n\n'
	    exit 12
	fi

	# Replace "\" with "/"
	p=$(echo $p | sed 's/\\/\//g')

	# Trim trailing "/"
	p=${p%/}

	echo -en ${RED} '\n'
	read -p 'Backup Sublime Text 3 binary? [y/n]: ' bt
	if [ -n $bt ] && [ $bt != "n" ]; then
	    # Backup Sublime Text
	    echo -en ${GREEN} '\nRunning backup: copy "sublime_text" to "sublime_text.orig" ...\n'
	    cp -i "$p/sublime_text" "$p/sublime_text.orig"
	    echo
	fi
fi
echo -en ${RESTORE}
}

function mergePatching {
echo -en ${YELLOW} '\nChecking Sublime Merge path ...\n'

if [[ -f './sublime_merge' ]]; then
	p='.'
else
	echo -en ${WHITE} 
	read -r -p "Please input sublime_merge installed path (the directory contains sublime_merge): \
			    `echo $'\n> '`" p

	if [[ ! -d "$p" ]]; then
	    echo -en ${LRED} '\nError: '$p' Is not a directory!\n\n'
	    echo -en ${RESTORE}
	    echo -en ${RED} 'Goodbay!\n\n'
	    exit 11
	fi

	if [[ ! -f "$p/sublime_merge" ]]; then
	    echo -en ${LRED} '\nError: '$p' Is not a sublime_merge installed path!\n\n'
	    echo -en ${RESTORE}
	    echo -en ${RED} 'Goodbay!\n\n'
	    exit 12
	fi

	# Replace "\" with "/"
	p=$(echo $p | sed 's/\\/\//g')

	# Trim trailing "/"
	p=${p%/}

	echo -en ${RED} '\n'
	read -p 'Backup Sublime Merge binary? [y/n]: ' bm
	if [ -n $bm ] && [ $bm != "n" ]; then
	    # Backup Sublime Merge
	    echo -en ${GREEN} '\nRunning backup: copy "sublime_merge" to "sublime_merge.orig" ...\n'
	    cp -i "$p/sublime_merge" "$p/sublime_merge.orig"
	    echo
	fi
fi
echo -en ${RESTORE}
}

function mainWork {
echo -en ${WHITE}
read -n1 -p "Pick a letter to run patching: T - Sublime Text, M - Sublime Merge, or E - Exit script." runPatching

case $runPatching in
	t|T) printf "\n\nStart patching Sublime Text 3.\n" && textPatching;;
	m|M) printf "\n\nStart patching Sublime Merge.\n" && mergePatching;;
	e|E) printf "\n\nGoodbay!\n\n" && exit 0;;
esac
}

mainWork

# Detect Sublime build
echo -en ${PURPLE} 'Checking Sublime Text/Merge version...\n\n'
if [[ -f "$p/changelog.txt" ]]; then
	v=$(cat "$p/changelog.txt" | grep -P -o '^<h2>.*Build \d{4}' | grep -P -o '\d{4}' | head -n 1)
	echo -en ${LYELLOW}
	read -p "Detected Sublime version *$v*, is it right? [y/n]: " flag
	if [[ -n "$flag" ]]; then
	    case $flag in
		"y" )
		    ;;
		"n" )
		    # Input build number manually
		    echo -en ${WHITE}
		    read -p "Please input your Sublime Text/Merge build number (supported builds are [$support_versions]): `echo $'\n> '`" v
		    ;;
		* )
		    echo -en ${LRED} '\nInvalid input: '$flag'\n'
		    exit 1
	    esac
	fi
else
	echo -en ${LRED} '\nFail detecting Sublime Text/Merge version!\n'
	echo -en ${WHITE}
	read -p "Please input your Sublime Text/Merge build manually (supported builds are [$support_versions]): `echo $'\n> '`" v
fi

# Check Sublime Text/Merge if the build is supported
if [[ ! $support_versions = *"$v"* ]]; then
	echo -en ${LRED} '\nError: Version '$v' is not in support list: ['$support_versions']\n'
	echo -en ${RED} '\nGoodbay!\n'
	echo -en ${RESTORE}
	exit 1
fi

# Patching binary
echo -en ${CYAN} '\nStart patching...\n\n'
case $v in
	"3203" )
	printf '\x08' | dd seek=$((0x3127F9)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x01' | dd seek=$((0x3127FA)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3127FB)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3127FC)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x08' | dd seek=$((0x312851)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x01' | dd seek=$((0x312852)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x312853)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x312854)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\xC3' | dd seek=$((0x31B568)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B5D7)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B95C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B95D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B963)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B964)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B967)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B968)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x75' | dd seek=$((0x31B97C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B9F1)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B9F2)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B9F8)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B9F9)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31B9FF)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA00)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA01)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA02)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA03)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA04)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA0A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA0B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA0C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA0D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA0E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA0F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA15)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA16)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA17)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA18)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA19)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA1A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA20)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA21)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA22)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA23)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA24)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA25)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA2B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA2C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA2D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA2E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA2F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA30)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA36)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA37)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA38)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA39)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA3A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA3B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA41)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA42)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA43)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA44)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA45)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA46)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA4C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA4D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA4E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA4F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA50)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA51)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA57)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA58)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA59)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA5A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA5B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA5C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA62)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA63)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA64)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA65)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA66)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA67)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA6D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA6E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA6F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA70)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA71)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA72)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA78)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA79)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA7A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA7B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA7C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA7D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA83)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA84)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA85)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA86)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA87)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA88)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA8E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA8F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA90)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA91)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA92)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA93)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA99)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA9A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA9B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA9C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA9D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BA9E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAA4)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAA5)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAA6)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAA7)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAA8)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAA9)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAAF)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAB0)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAB1)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAB2)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAB3)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAB4)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BABA)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BABB)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BABC)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BABD)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BABE)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BABF)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAC5)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAC6)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAC7)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAC8)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAC9)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BACA)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAD0)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAD1)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAD2)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAD3)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAD4)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAD5)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BADB)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BADC)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BADD)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BADE)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BADF)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAE0)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAE6)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAE7)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAE8)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAE9)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAEA)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAEB)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAF1)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAF2)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAF3)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAF4)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAF5)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAF6)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAFC)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAFD)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAFE)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BAFF)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB00)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB01)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB07)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB08)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB09)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB0A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB0B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB0C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB12)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB13)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB14)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB15)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB16)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB17)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB1D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB1E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB1F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB20)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB21)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB22)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB28)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB29)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB2A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB2B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB2C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB2D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB33)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB34)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB35)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB36)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB37)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB38)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB3E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB3F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB40)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB41)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB42)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB43)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB49)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB4A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB4B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB4C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB4D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB4E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB54)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB55)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB56)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB57)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB58)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB59)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB5F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB60)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB61)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB62)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB63)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB64)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB6A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB6B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB6C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB6D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB6E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB6F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB75)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB76)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB77)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB78)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB79)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB7A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB80)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB81)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB82)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB83)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB84)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB85)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB8B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB8C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB8D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB8E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB8F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB90)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB96)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB97)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB98)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB99)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB9A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BB9B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBA1)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBA2)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBA3)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBA4)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBA5)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBA6)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBAC)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBAD)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBAE)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBAF)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBB0)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBB1)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBB7)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBB8)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBB9)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBBA)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBBB)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBBC)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBC2)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBC3)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBC4)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBC5)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBC6)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBC7)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBCD)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBCE)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBCF)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBD0)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBD1)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBD2)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBD8)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBD9)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBDA)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBDB)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBDC)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBDD)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBE3)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBE4)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBE5)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBE6)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBE7)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBE8)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBEE)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBEF)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBF0)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBF1)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBF2)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBF3)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBF9)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBFA)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBFB)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBFC)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBFD)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BBFE)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC04)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC05)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC06)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC07)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC08)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC09)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC0F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC10)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC11)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC12)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC13)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC14)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC1A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC1B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC1C)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC1D)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC1E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31BC1F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C100)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C101)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C102)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C103)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C104)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C105)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C6F5)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C6F6)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C6F7)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C6F8)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C6F9)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31C6FA)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBF0)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBF1)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBF2)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBF3)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBF4)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBF5)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBF6)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBF7)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBF8)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBF9)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBFA)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBFB)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBFC)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\xC3' | dd seek=$((0x31CBFD)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBFE)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CBFF)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CC00)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CC01)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CC02)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CC03)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CC04)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CC05)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CC06)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CC07)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CC08)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CC09)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x31CC0A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\xC3' | dd seek=$((0x31CC0B)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE42E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE42F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE430)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE431)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE432)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE433)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE434)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE4F2)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE4F3)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE4F4)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE4F5)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE4F6)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE4F7)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE4F8)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE55E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE55F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE560)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE561)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE562)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE563)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BE564)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x0F' | dd seek=$((0x3BF481)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x01' | dd seek=$((0x3BF482)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BF483)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BF484)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BF485)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BF486)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BF487)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x3BF488)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x478849)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x47884A)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x47884F)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x478850)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x478851)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x478852)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x478853)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x90' | dd seek=$((0x478854)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	;;
	"3200" )
	printf '\x85' | dd seek=$((0x3BEB98)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\x74' | dd seek=$((0x477C6E)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	printf '\xC3' | dd seek=$((0x31BFED)) conv=notrunc bs=1 of="$p/sublime_text" &> /dev/null
	;;
	"1111" )
	printf '\x85' | dd seek=$((0x2F6298)) conv=notrunc bs=1 of="$p/sublime_merge" &> /dev/null
	printf '\x74' | dd seek=$((0x501B2A)) conv=notrunc bs=1 of="$p/sublime_merge" &> /dev/null
	printf '\xC3' | dd seek=$((0x30F34A)) conv=notrunc bs=1 of="$p/sublime_merge" &> /dev/null
	;;
	"1109" )
	printf '\x85' | dd seek=$((0x2F6298)) conv=notrunc bs=1 of="$p/sublime_merge" &> /dev/null
	printf '\x74' | dd seek=$((0x501B06)) conv=notrunc bs=1 of="$p/sublime_merge" &> /dev/null
	printf '\xC3' | dd seek=$((0x30F34A)) conv=notrunc bs=1 of="$p/sublime_merge" &> /dev/null
	;;
	* )
    echo -en ${RED} 'Error: Version not supported for patching...\n'
    exit 1
    ;;
esac

echo -en ${LCYAN} 'The patching was done without errors.\n\n'
echo -en ${LGREEN} 'Congratulation!\n'
echo -en ${RESTORE} '\n'
#
exit 0


Second Step:

  • $ sudo nano /etc/hosts (u can use other text editor)
  • copy & paste

Entries to add to /etc/hosts:

0.0.0.0 www.sublimemerge.com
0.0.0.0 sublimemerge.com
0.0.0.0 www.sublimetext.com
0.0.0.0 sublimetext.com
0.0.0.0 sublimehq.com
0.0.0.0 telemetry.sublimehq.com
0.0.0.0 license.sublimehq.com
0.0.0.0 download.sublimetext.com
0.0.0.0 download.sublimemerge.com
0.0.0.0 45.55.255.55
0.0.0.0 45.55.41.223
  • Ctrl + w & click enter to save

Third Step:

Add IP addresses to block:

iptables -A OUTPUT -d 45.55.41.223/32 -j REJECT
iptables -A OUTPUT -d 45.55.255.55/32 -j REJECT

For Ubuntu UFW:

$ sudo ufw insert 1 deny out to 45.55.255.55/32 comment 'Block Sublime out host-1'
$ sudo ufw insert 2 deny in to 45.55.255.55/32 comment 'Block Sublime in host-1'
$ sudo ufw insert 3 deny out to 45.55.41.223/32 comment 'Block Sublime out host-2'
$ sudo ufw insert 4 deny in to 45.55.41.223/32 comment 'Block Sublime in host-2'
$ sudo ufw status numbered verbose
$ sudo dpkg-reconfigure iptables-persistent

Run Sublime Text & appreciate the magic ^^

3203_small

sm

Thanks @mIcHyAmRaNe for idea in formating text. :)

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