bash -c "$(curl -fsSL https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/install.sh?token=$(date +%s))"
After install script will fix crossover as well as expired bottles (Thanks to @djsmax).
#!/usr/bin/env bash | |
# checck if pidof exists | |
PIDOF="$(which pidof)" | |
# and if not - install it | |
(test "${PIDOF}" && test -f "${PIDOF}") || brew install pidof | |
# find app in default paths | |
CO_PWD=~/Applications/CrossOver.app/Contents/MacOS | |
test -d "${CO_PWD}" || CO_PWD=/Applications/CrossOver.app/Contents/MacOS | |
test -d "${CO_PWD}" || (echo 'unable to detect app path. exiting...' && exit) | |
PWD="${CO_PWD}" | |
cd "${PWD}" | |
PROC_NAME='CrossOver' | |
# get all pids of CrossOver | |
pids=(`pgrep "${PROC_NAME}"`, `pidof "${PROC_NAME}"`, `ps -Ac | grep -m1 "${PROC_NAME}" | awk '{print $1}'`) | |
pids=`echo ${pids[*]}|tr ',' ' '` | |
# kills CrossOver process if it is running | |
[ "${pids}" ] && kill -9 `echo "${pids}"` > /dev/null 2>&1 | |
# wait until app finish | |
sleep 3 | |
# make the current date RFC3339-encoded string representation in UTC time zone | |
DATETIME=`date -u -v -3H '+%Y-%m-%dT%TZ'` | |
# modify time in order to reset trial | |
plutil -replace FirstRunDate -date "${DATETIME}" ~/Library/Preferences/com.codeweavers.CrossOver.plist | |
plutil -replace SULastCheckTime -date "${DATETIME}" ~/Library/Preferences/com.codeweavers.CrossOver.plist | |
# show tooltip notification | |
/usr/bin/osascript -e "display notification \"trial fixed: date changed to ${DATETIME}\"" | |
# reset all bottles | |
for file in ~/Library/Application\ Support/CrossOver/Bottles/*/.{eval,update-timestamp}; do rm -rf "${file}";done | |
# and after this execute original crossover | |
echo "${PWD}" > /tmp/co_log.log | |
"$($PWD/CrossOver.origin)" >> /tmp/co_log.log |
#!/usr/bin/env bash | |
# find app in default paths | |
CO_PWD=~/Applications/CrossOver.app/Contents/MacOS | |
test -d "${CO_PWD}" || CO_PWD=/Applications/CrossOver.app/Contents/MacOS | |
test -d "${CO_PWD}" || (echo 'unable to detect app path. exiting...' && exit) | |
PWD="${CO_PWD}" | |
cd "${PWD}" | |
PROC_NAME='CrossOver' | |
# get all pids of CrossOver | |
pids=(`pgrep "${PROC_NAME}"`, `pidof "${PROC_NAME}"`, `ps -Ac | grep -m1 "${PROC_NAME}" | awk '{print $1}'`) | |
pids=`echo ${pids[*]}|tr ',' ' '` | |
# kills CrossOver process if it is running | |
[ "${pids}" ] && kill -9 `echo "${pids}"` > /dev/null 2>&1 | |
TIMESTAMP=$(date +%s) | |
FIX_FILE_LINK="https://gist.github.com/santaklouse/a137ee51692b74d4cf2cc1bb68ed64ef/raw/CrossOver.sh?token=${TIMESTAMP}" | |
if [ -f CrossOver.origin ]; then | |
echo 'already installed. update and exit.' | |
echo "$(curl -fsSL ${FIX_FILE_LINK})" > CrossOver | |
exit | |
fi; | |
test -f CrossOver.origin || mv CrossOver CrossOver.origin | |
echo "$(curl -fsSL ${FIX_FILE_LINK})" > CrossOver | |
chmod +x CrossOver | |
echo 'Done. Please open CrossOver ' |
#!/usr/bin/env bash | |
# find app in default paths | |
CO_PWD=~/Applications/CrossOver.app/Contents/MacOS | |
test -d "${CO_PWD}" || CO_PWD=/Applications/CrossOver.app/Contents/MacOS | |
test -d "${CO_PWD}" || (echo 'unable to detect app path. exiting...' && exit) | |
PWD="${CO_PWD}" | |
cd "${PWD}" | |
PROC_NAME='CrossOver' | |
# get all pids of CrossOver | |
pids=(`pgrep "${PROC_NAME}"`, `pidof "${PROC_NAME}"`, `ps -Ac | grep -m1 "${PROC_NAME}" | awk '{print $1}'`) | |
pids=`echo ${pids[*]}|tr ',' ' '` | |
# kills CrossOver process if it is running | |
[ "${pids}" ] && kill -9 `echo "${pids}"` > /dev/null 2>&1 | |
if [ -f CrossOver.origin ]; then | |
echo 'original file found. Roll it back and exit.' | |
mv CrossOver.origin CrossOver | |
exit | |
fi; | |
echo 'original file not found.' |
Don't delete it ;p
you guys think the codeweavers team will find out about all of this and patch it
They already found out, when i made my version of the script, they notified me about it and ask me to remove it.
oof!, is it safe to assume they would patch it soon? is it safe to update to the latest version?, deleting bottle install date and changing install first launch date have been working flawlessly
you guys think the codeweavers team will find out about all of this and patch it
They already found out, when i made my version of the script, they notified me about it and ask me to remove it.
oof!, is it safe to assume they would patch it soon? is it safe to update to the latest version?, deleting bottle install date and changing install first launch date have been working flawlessly
It's been several months, no patch yet
Is there any option to disable auto update?
you guys think the codeweavers team will find out about all of this and patch it
They already found out, when i made my version of the script, they notified me about it and ask me to remove it.
oof!, is it safe to assume they would patch it soon? is it safe to update to the latest version?, deleting bottle install date and changing install first launch date have been working flawlessly
It's been several months, no patch yet
so its safe to update then? what are the actual improvements on the latest version?
I have started to reverse engineer CrossOver itself. As of now, I am writing a .dylib (Dynamic Library) which right now skips the demo pop-up when starting the application. I am hoping to be able to get to the point of allowing the user to "register" with a fake serial code that auto activates the product for you, which in turn will completely stop the whole issue with the trial.
I have started to reverse engineer CrossOver itself. As of now, I am writing a .dylib (Dynamic Library) which right now skips the demo pop-up when starting the application. I am hoping to be able to get to the point of allowing the user to "register" with a fake serial code that auto activates the product for you, which in turn will completely stop the whole issue with the trial.
There’s also a windows/wine part that checks expiration date and I’ll just leave this here in hopes of not getting copyrighted 000184ED07+28
Quick update - I have started to decompile the licensing system of crossover itself. Doing this will help to "bruteforce" a fake license and give permanent access.
As of this very moment, I have completely disassembled the licensing system part of CrossOver, and written a functional bypass to it. However, looking back at the history of the gist, its clear theres possibilities of recieving a DMCA request, and I, myself, do not have the funds to fight it. I may release it sometime in the future, but as of now, I personally think its not a good idea.
Hey @ellsies , if you need a tester, you can send me the code - draggin1986 (at) gmail.com . I am running Sonoma, 14.6.1 and trial has expired 1 month ago (current methods does not work).
Crossover 24.0.4, with option to update to 24.0.5
@Draggin86 While I appreciate the offer, I have already confirmed it works on the latest versions it CrossOver (v23-24). Might I repeat, I won’t be sharing the bypass with any others due to possible risks of a DMCA.
@ellsies Got it. Enjoy it, good job on finding the workaround.
Should I drop a proof of concept?
Sure, although, I am not that much into native programming / scripting.
Nah it just shows the installer working and so on
Oh, I thought it would be like a concept for finding the exploit. I believe you that it's working. 😄
¯_(ツ)_/¯
that's dope, did you disassembled the licensing system using brute force?
I pretty much used ghidra and such to disassemble everything
I have created an update script to adapt to these changes. This link shouldn't change unless I have specified here:
bash -c "$(curl -fsSL https://femboys.studio/crossover)"
I will continue to update this script as crossover evolves.
As of now, this script completely fixes the trial issue, and the bottle issue.
Patch isn't working as intended on Sequoia. When I restart my mac, crossover crashes and I have to repatch to get it working
Huh, haven’t seen that on Sequoia before, might have to release the full bypass then
I lvoe u guys
Huh, haven’t seen that on Sequoia before, might have to release the full bypass then
Looking forward to it
does this work on the latest version of Crossover (24.05) patched with CX patcher?
does this work on the latest version of Crossover (24.05) patched with CX patcher?
I just tried it and it reset it to 14 days.
does this work on the latest version of Crossover (24.05) patched with CX patcher?
I just tried it and it reset it to 14 days.
How do you change the code?
is the code still working?
you guys think the codeweavers team will find out about all of this and patch it