-
-
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 download the tar.xz from the SM website and use the unmodified sublime_merge binary inside as the input to this patcher
@alexdrm98 download the tar.xz from the SM website and use the unmodified sublime_merge binary inside as the input to this patcher
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?
@alexdrm98 download the tar.xz from the SM website and use the unmodified sublime_merge binary inside as the input to this patcher
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?
@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?
not working for build 2068 from AUR.
Checksum does not match. Ensure /opt/sublime_merge/sublime_merge is the correct, unmodified version of Sublime Merge.
>> sha256sum /opt/sublime_merge/sublime_merge
16a5c27826c7b53d29c29de34c7d4f4301ad10fe06cf33397857077ad8618f94 /opt/sublime_merge/sublime_merge