-
-
Save rufoa/78e45d70f560f53678853c92dae2598a to your computer and use it in GitHub Desktop.
#!/bin/bash | |
set -o errexit | |
set -o nounset | |
set -o pipefail | |
target="${1:-/opt/sublime_merge/sublime_merge}" | |
check_sha() { | |
local sha_valid | |
sha_valid=("$@") | |
local hash | |
hash="$(sha256sum "$target" | cut -d' ' -f1)" | |
for s in "${sha_valid[@]}"; do | |
if [ "$hash" = "$s" ]; then | |
return 0 | |
fi | |
done | |
return 1 | |
} | |
patch_offset() { | |
printf "$3" | dd of="$target" bs=1 seek=$(($1)) count="$2" conv=notrunc status=none | |
} | |
if [ ! -w "$target" ]; then | |
echo "$target does not exist or is not writable. Ensure the path is correct and that you have write permission." >&2 | |
exit 1 | |
fi | |
if check_sha "17cfde363bbb4ed7ad412b29db51d6433571a1397ea5215738233117a0875b3f" "f271c550f5bd3307880db30bf85d9c6ccd08c3b739e9307c907b01e16b6a9ec8"; then | |
echo "Checksum matches" >&2 | |
else | |
echo "Checksum does not match. Ensure $target is the correct, unmodified version of Sublime Merge." >&2 | |
exit 1 | |
fi | |
backup="$target.bak" | |
cp "$target" "$backup" | |
revert() { | |
err=$? | |
trap - TERM INT EXIT | |
mv "$backup" "$target" | |
echo "Reverted modifications to $target" >&2 | |
exit $err | |
} | |
trap revert TERM INT EXIT | |
echo "Patching $target" >&2 | |
# Swap public key | |
patch_offset 0x59BC0 160 '\x30\x81\x9d\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00\x03\x81\x8b\x00\x30\x81\x87\x02\x81\x81\x00\xc9\xda\x03\xe0\xc6\x33\xce\x4e\x55\xf5\xbf\x60\xf9\xb1\xb0\xda\xd6\x64\xc0\x5d\x03\xca\x7e\x21\xa6\x57\xd2\x17\xa9\x58\x9d\x51\x73\x30\x0d\xb5\x34\x13\x08\xab\x55\x5c\x22\x26\x6c\x03\x0d\xbe\x3c\x80\xb4\x59\xe9\xee\xad\x45\x8f\xa1\x38\x37\x69\xcd\x51\xa2\x19\xa4\x41\x4b\x8c\x0a\x1e\x51\x7f\x58\xc8\x33\xa5\x3c\x15\xc8\x24\xcd\xcc\x94\xb8\x5a\xfe\x44\x12\xa0\x18\x34\x63\x87\x72\x11\x11\x0b\x0c\x12\x44\x76\xec\x60\x13\xc0\x0d\x7e\xf1\x48\xbf\x8a\xce\x10\x02\x79\x45\x31\xf5\x3a\x34\xf2\x56\x6e\x71\xc7\xf4\x45\x02\x01\x11' | |
# Swap xor key | |
patch_offset 0x3C6A72 1 '\x00' | |
# Fix sha-2 check | |
patch_offset 0x3C72ED 4 '\x44\x89\xf5\x90' | |
# Disable online licence check | |
patch_offset 0x3C7E85 1 '\xc3' | |
# Disable phone home | |
patch_offset 0x3C6788 1 '\xc3' | |
if check_sha "dca8a5dbf858d7c27412cde351ba26ca41e02f70d97acd0b76c8dbe695184fc8" "e4664019965cae0391a7e4382bb1e27aba6424a173c4d3ac09aa091ccb349ee7"; then | |
echo "Patch applied successfully" >&2 | |
else | |
echo "Patch appears unsuccessful" >&2 | |
exit 1 | |
fi | |
trap - TERM INT EXIT |
----- BEGIN LICENSE ----- | |
TEAM RUFIO | |
Unlimited User License | |
E52D-666666 | |
487EE6F0309908F702DDD52AFCD99A6A | |
6EE14CF8A2D42271B4FC0991BBF93ADC | |
FAA9075C436B3796669194A2F36CAAEF | |
B251155329EC2E434FD28B4A21BE68CC | |
955D306EE9ED843C5E98B1577D02DEAA | |
1F4E872AE6495CD5E3B1DA55D5ACD2B2 | |
2EA4110FB800F21AA3EC2E3902589BCF | |
7281A19C2DFF0CEE4AEA5DDD1E6DF893 | |
----- END LICENSE ----- |
@alexdrm98 yes, I believe that means your 3 year licence has expired, so to use versions newer than (your licence purchase date + 3 years) you'll need a new licence or patch
There is new build 2071, any chances to make the patch work?
Any update for the latest 2071 build?
Yes I'm aware of the new version and hope to update the patch soon
Yes I'm aware of the new version and hope to update the patch soon
Any update?
Any update?
Thx @theol0403 works great on linux!
Don't try the patch on AUR package, it does not work.
Simply download the file https://download.sublimetext.com/sublime_merge_build_2068_x64.tar.xz
extract and move the folder into /opt that's all.
The above license key works, but for that you will have to patch sublime merge : https://pygurutricks.blogspot.com/2023/07/get-sublime-merge-free-license-key.html
@rufoa my dude have you found the correct patches for any newer versions of Text and Merge?
Thanks man! it worked :)
btw, i've sublime
4131
build. it shows "license upgrade required". Does that mean if i upgrade i have to patch/buy license?