commit fd2685c91152a5ef0d177ce07f410e047e22c55a Author: Jaydenha09 Date: Wed Sep 17 14:09:41 2025 +0800 first commit diff --git a/Launch Parallels.command b/Launch Parallels.command new file mode 100755 index 0000000..f6c1731 --- /dev/null +++ b/Launch Parallels.command @@ -0,0 +1,35 @@ +#!/bin/sh + +PDFM_DIR="/Applications/Parallels Desktop.app" +PDFM_DISP_DST="${PDFM_DIR}/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service" +PDFM_DISP_BCUP="${PDFM_DISP_DST}_bcup" +PDFM_DISP_PATCH="${PDFM_DISP_DST}_patched" + +if [ "$(pgrep -x prl_disp_service)" != "" ] && [ "$(pgrep -x prl_client_app)" != "" ]; then + open "${PDFM_DIR}" + exit 0 +fi + +cp -f "${PDFM_DISP_PATCH}" "${PDFM_DISP_DST}" + +open "${PDFM_DIR}" + +is_prl_disp_service=false + +for (( i=0; i < 30; i++ )) do + if [ "$(pgrep -x prl_disp_service)" != "" ]; then + is_prl_disp_service=true + break + fi + sleep 1 +done + +if ! $is_prl_disp_service; then + error_message="Parallels Launcher timeout error. Please try again." + osascript -e "display dialog \"$error_message\" with title \"Error\" buttons {\"OK\"} default button \"OK\"" + exit 3 +fi + +sleep 0.5 + +cp -f "${PDFM_DISP_BCUP}" "${PDFM_DISP_DST}" diff --git a/ParallelsService.entitlements b/ParallelsService.entitlements new file mode 100644 index 0000000..f530180 --- /dev/null +++ b/ParallelsService.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.smartcard + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..47de81a --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +# Parallels Desktop Crack +Crack for Parallels Desktop 19.0.0-54570 + +✅ ARM64
+✅ x86_64
+✅ Network
+✅ USB
+✅ System Integrity Protection (SIP) +## Usage +1. Install Parallels Desktop:
+ https://download.parallels.com/desktop/v19/19.0.0-54570/ParallelsDesktop-19.0.0-54570.dmg +3. Sign out your'e account +4. `chmod +x install.sh && chmod +x Launch\ Parallels.command && sudo ./install.sh` +5. Double click `Launch Parallels.command` + +You will always need to use this launcher as a workaround to prevent signature errors from occurring. However, if you are a developer with permission to use com.apple.vm.* or are willing to disable System Integrity Protection, there is a better approach available. +### Operation not permitted +Enable `System Preferences ▸ Security & Privacy ▸ Privacy ▸ Full Disk Access` +### codesign error +Ensure xcode command line tools installed. Install it with using the command `xcode-select --install`. + +Check installation with `xcode-select -p`, which will output `/Library/Developer/CommandLineTools` or `/Applications/Xcode.app/Contents/Developer`. +## Hosts +You also wan't too block Parallels Servers. +``` +127.0.0.1 download.parallels.com +127.0.0.1 update.parallels.com +127.0.0.1 desktop.parallels.com +127.0.0.1 download.parallels.com.cdn.cloudflare.net +127.0.0.1 update.parallels.com.cdn.cloudflare.net +127.0.0.1 desktop.parallels.com.cdn.cloudflare.net +127.0.0.1 www.parallels.cn +127.0.0.1 www.parallels.com +127.0.0.1 www.parallels.de +127.0.0.1 www.parallels.es +127.0.0.1 www.parallels.fr +127.0.0.1 www.parallels.nl +127.0.0.1 www.parallels.pt +127.0.0.1 www.parallels.ru +127.0.0.1 www.parallelskorea.com +127.0.0.1 reportus.parallels.com +127.0.0.1 parallels.cn +127.0.0.1 parallels.com +127.0.0.1 parallels.de +127.0.0.1 parallels.es +127.0.0.1 parallels.fr +127.0.0.1 parallels.nl +127.0.0.1 parallels.pt +127.0.0.1 parallels.ru +127.0.0.1 parallelskorea.com +127.0.0.1 pax-manager.myparallels.com +127.0.0.1 myparallels.com +127.0.0.1 my.parallels.com +``` +Parallels Desktop will uncomment these, therefore one needs to lock the hosts file: +`sudo chflags uchg /etc/hosts && sudo chflags schg /etc/hosts` +### OS download +You will not be able to download operating systems in the Control Center anymore. Comment these out to get this functionality: +``` +# 127.0.0.1 download.parallels.com +# 127.0.0.1 desktop.parallels.com +# 127.0.0.1 download.parallels.com.cdn.cloudflare.net +# 127.0.0.1 desktop.parallels.com.cdn.cloudflare.net +``` diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..0d4db60 --- /dev/null +++ b/install.sh @@ -0,0 +1,132 @@ +#!/usr/bin/env bash + +COLOR_INFO='\033[0;34m' +COLOR_ERR='\033[0;35m' +COLOR_WARN='\033[0;93m' +NOCOLOR='\033[0m' + +BASE_PATH=$( + cd $(dirname "$0"); + pwd +) + +PDFM_VER="19.0.0-54570" +PDFM_DIR="/Applications/Parallels Desktop.app" + +LICENSE_FILE="${BASE_PATH}/licenses.json" +LICENSE_DST="/Library/Preferences/Parallels/licenses.json" + +PDFM_DISP_DIR="${PDFM_DIR}/Contents/MacOS/Parallels Service.app/Contents/MacOS" +PDFM_DISP_DST="${PDFM_DISP_DIR}/prl_disp_service" +PDFM_DISP_BCUP="${PDFM_DISP_DST}_bcup" +PDFM_DISP_PATCH="${PDFM_DISP_DST}_patched" +PDFM_DISP_ENT="${BASE_PATH}/ParallelsService.entitlements" + +TMP_DIR="${BASE_PATH}/tmp" +ARM64_RET_1="${TMP_DIR}/arm64_ret_1" +X86_64_RET_1="${TMP_DIR}/x86_64_ret_1" + +# check parallels desktop version +VERSION_1=$(defaults read "${PDFM_DIR}/Contents/Info.plist" CFBundleShortVersionString) +VERSION_2=$(defaults read "${PDFM_DIR}/Contents/Info.plist" CFBundleVersion) +INSTALL_VER="${VERSION_1}-${VERSION_2}" +if [ "${PDFM_VER}" != "${VERSION_1}-${VERSION_2}" ]; then + echo -e "${COLOR_ERR}[-] This script is for ${PDFM_VER}, but your's is ${INSTALL_VER}.${NOCOLOR}" + exit 2 +fi + +# check root permission +if [ "$EUID" -ne 0 ]; then + echo -e "${COLOR_ERR}[-] Missing root permission, run sudo.${NOCOLOR}" + exec sudo "$0" "$@" + exit 5 +fi + +# stop prl_disp_service +if pgrep -x "prl_disp_service" &> /dev/null; then + echo -e "${COLOR_INFO}[*] Stopping Parallels Desktop${NOCOLOR}" + pkill -9 prl_client_app &>/dev/null + # ensure prl_disp_service has stopped + "${PDFM_DIR}/Contents/MacOS/Parallels Service" service_stop &>/dev/null + sleep 1 + launchctl stop /Library/LaunchDaemons/com.parallels.desktop.launchdaemon.plist &>/dev/null + sleep 1 + pkill -9 prl_disp_service &>/dev/null + sleep 1 + rm -f "/var/run/prl_*" +fi + +echo -e "${COLOR_INFO}[*] Installing...${NOCOLOR}" + +# prepare temp folder and files +if [ ! -d "${TMP_DIR}" ]; then + mkdir "${TMP_DIR}" +fi +if [ ! -f "${ARM64_RET_1}" ]; then + echo -n -e '\x20\x0\x80\xd2\xc0\x03\x5f\xd6' > "${ARM64_RET_1}" +fi +if [ ! -f "${X86_64_RET_1}" ]; then + echo -n -e '\x6a\x01\x58\xc3' > "${X86_64_RET_1}" +fi + +# patch prl_disp_service +if [ ! -f "${PDFM_DISP_BCUP}" ] +then + cp "${PDFM_DISP_DST}" "${PDFM_DISP_BCUP}" +fi +chflags -R 0 "${PDFM_DISP_DST}" +# arm64 signcheckerimpl +# 0x10a44a8 +dd if="${ARM64_RET_1}" of="${PDFM_DISP_DST}" obs=1 seek=17450152 conv=notrunc +# arm64 codesign +# 0x127a55c +dd if="${ARM64_RET_1}" of="${PDFM_DISP_DST}" obs=1 seek=19375452 conv=notrunc +# x86_64 signcheckerimpl +# 0x5b1530 +dd if="${X86_64_RET_1}" of="${PDFM_DISP_DST}" obs=1 seek=5969200 conv=notrunc +# x86_64 codesign +# 0x7c85d0 +dd if="${X86_64_RET_1}" of="${PDFM_DISP_DST}" obs=1 seek=8160720 conv=notrunc +chown root:wheel "${PDFM_DISP_DST}" +chmod 755 "${PDFM_DISP_DST}" +codesign -f -s - --timestamp=none --all-architectures --entitlements "${PDFM_DISP_ENT}" "${PDFM_DISP_DST}" +cp "${PDFM_DISP_DST}" "${PDFM_DISP_PATCH}" + +# delete temp folder +rm -rf "${TMP_DIR}" + +# install fake license +if [ -f "${LICENSE_DST}" ]; then + chflags -R 0 "${LICENSE_DST}" + rm -f "${LICENSE_DST}" > /dev/null +fi +cp -f "${LICENSE_FILE}" "${LICENSE_DST}" +chown root:wheel "${LICENSE_DST}" +chmod 444 "${LICENSE_DST}" +chflags -R 0 "${LICENSE_DST}" +chflags uchg "${LICENSE_DST}" +chflags schg "${LICENSE_DST}" + +# start prl_disp_service +if ! pgrep -x "prl_disp_service" &>/dev/null; then + echo -e "${COLOR_INFO}[*] Starting Parallels Service${NOCOLOR}" + "${PDFM_DIR}/Contents/MacOS/Parallels Service" service_restart &>/dev/null + for (( i=0; i < 10; ++i )) + do + if pgrep -x "prl_disp_service" &>/dev/null; then + break + fi + sleep 1 + done + if ! pgrep -x "prl_disp_service" &>/dev/null; then + echo -e "${COLOR_ERR}[x] Starting Service fail.${NOCOLOR}" + fi +fi + +"${PDFM_DIR}/Contents/MacOS/prlsrvctl" web-portal signout &>/dev/null +"${PDFM_DIR}/Contents/MacOS/prlsrvctl" set --cep off &>/dev/null +"${PDFM_DIR}/Contents/MacOS/prlsrvctl" set --allow-attach-screenshots off &>/dev/null + +chown -R "$(id -un)":admin "${PDFM_DISP_DIR}" + +echo -e "${COLOR_WARN}Remember to start Parallels using \"Launch Parallels.command\"${NOCOLOR}" diff --git a/licenses.json b/licenses.json new file mode 100644 index 0000000..f057db1 --- /dev/null +++ b/licenses.json @@ -0,0 +1 @@ +{"license":"{\"product_version\":\"19.*\",\"edition\":2,\"platform\":3,\"product\":7,\"offline\":true,\"cpu_limit\":32,\"ram_limit\":131072}"} \ No newline at end of file