删除侵权PD和Xmind相关文件。

This commit is contained in:
QiuChenly
2024-06-16 04:29:10 +08:00
parent 5bb429b664
commit 73932adb9f
12 changed files with 6 additions and 398 deletions

7
.gitignore vendored
View File

@@ -5,4 +5,9 @@
.ruby-lsp
IACPLHttpTransferClient
tool/DIffPatchCode.py
tool/GiftGot.py
tool/GiftGot.py
config_pd.json
tool/pd*.sh
tool/ParallelsDesktop
tool/没脑子和不高兴
tool/Parallels_原始人_起洞.command

View File

@@ -186,27 +186,6 @@
"Accessibility"
]
},
{
"packageName": "com.parallels.desktop.console",
"bridgeFile": "/Contents/MacOS/Parallels Service.app/Contents/MacOS/",
"injectFile": "prl_disp_service",
"extraShell": "pd.sh",
"onlysh": true,
"supportVersion": [
"19.1.0"
]
},
{
"packageName": "com.parallels.desktop.console",
"bridgeFile": "/Contents/MacOS/Parallels Service.app/Contents/MacOS/",
"injectFile": "prl_disp_service",
"extraShell": "pd193.sh",
"onlysh": true,
"supportVersion": [
"19.3.1",
"19.4.0"
]
},
{
"packageName": "com.surteesstudios.Bartender",
"needCopyToAppDir": true,

View File

@@ -1,25 +0,0 @@
# QiuChenly 计算数据差值做特征码算法
# 部分网友提供了原始版本 虽然是用的Chatgpt写给我的 但是还是略表谢意
# 提供不定长度的多个十六进制汇编代码段 自动求出差值特征码
data = """
"""
data1 = []
for i in data.split("\n"):
if i == "":
continue
else:
data1.append(i)
if len(data1) > 1:
res = " ".join(
[
d1 if d1 == d2 else "??"
for d1, d2 in zip(data1[0].split(), data1[1].split())
]
)
data1 = [res]
print(data1[0])

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.automation.apple-events</key>
<true/>
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.device.camera</key>
<true/>
<key>com.apple.security.personal-information.addressbook</key>
<true/>
</dict>
</plist>

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.smartcard</key>
<true/>
</dict>
</plist>

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.hypervisor</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
</dict>
</plist>

View File

@@ -1 +0,0 @@
{"license":"{\"product_version\":\"19.*\",\"edition\":2,\"platform\":3,\"product\":7,\"offline\":true,\"cpu_limit\":32,\"ram_limit\":131072}"}

View File

@@ -1,100 +0,0 @@
#!/bin/bash
cd "${0%/*}" || exit 1
read -p "⚙️ 请输入密码(明文)然后回车: " -r passwd
printf "\r\033[1A%s" "" 1>&2
printf "\r\033[K%s" "" 1>&2
echo "${passwd}" | sudo -S echo "⚙️ 当前是 $(sudo -S whoami) 用户"
if [[ -n "$1" ]]; then
file="/etc/hosts"
lines=(
"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"
"# 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.com"
"# 127.0.0.1 reportus.parallels.com"
"# 127.0.0.1 parallels.com"
"# 127.0.0.1 my.parallels.com"
)
if [[ "$1" == "add" ]]; then
if [[ "$(sudo -S awk 'END {print}' "${file}")" != "" ]]; then
sudo -S tee -a "${file}" >/dev/null <<-EOF
EOF
fi
# 循环检查和添加行
for line in "${lines[@]}"; do
if ! sudo -S grep -q "^${line}" "${file}"; then
sudo -S tee -a "${file}" >/dev/null <<-EOF
${line}
EOF
fi
done
echo "⚙️ 已屏蔽 Parallels Desktop."
exit 0
elif [[ "$1" == "del" ]]; then
# 循环检查和删除行
for line in "${lines[@]}"; do
if sudo -S grep -q "^${line}" "${file}"; then
sudo -S sed -i "" "/^${line}/d" "${file}"
fi
done
echo "⚙️ 已取消屏蔽 Parallels Desktop."
exit 0
else
echo "⚙️ 参数错误: add / del"
fi
fi
PDFM_DIR="/Applications/Parallels Desktop.app"
PDFM_DISP_DST="${PDFM_DIR}/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service"
PDFM_DISP_PATCH="${PDFM_DISP_DST}_patched"
PDFM_DISP_BCUP="${PDFM_DISP_DST}_backup"
if [ "$(pgrep -x prl_disp_service)" != "" ] && [ "$(pgrep -x prl_client_app)" != "" ]; then
open "${PDFM_DIR}"
exit 0
fi
if [ ! -e "${PDFM_DISP_PATCH}" ]; then
sudo -S cp -f "${PDFM_DISP_DST}" "${PDFM_DISP_PATCH}"
fi
sudo -S cp -f "${PDFM_DISP_PATCH}" "${PDFM_DISP_DST}"
open "${PDFM_DIR}"
sleep 2
sudo -S cp -f "${PDFM_DISP_BCUP}" "${PDFM_DISP_DST}"

View File

@@ -1,102 +0,0 @@
#!/usr/bin/env bash
BASE_PATH=$(
cd $(dirname "$0")
pwd
)
sudo cp 'tool/91QiuChenly.dylib' '/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/91QiuChenly.dylib'
ori="/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service"
backup="/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service_backup"
# 检查备份是否存在
if [ -f "${backup}" ]; then
cp "${backup}" "${ori}"
fi
cp -f "${ori}" "${backup}"
tool/insert_dylib '/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/91QiuChenly.dylib' "${backup}" "${ori}"
COLOR_INFO='\033[0;34m'
COLOR_ERR='\033[0;35m'
NOCOLOR='\033[0m'
PDFM_DIR="/Applications/Parallels Desktop.app"
PDFM_VER="19.1.0-54729"
PDFM_DISP_DIR="${PDFM_DIR}/Contents/MacOS/Parallels Service.app/Contents/MacOS"
PDFM_DISP_DST="${PDFM_DISP_DIR}/prl_disp_service"
LICENSE_FILE="${BASE_PATH}/licenses.json"
LICENSE_DST="/Library/Preferences/Parallels/licenses.json"
echo "${COLOR_INFO}[*] 确保你的版本是: https://download.parallels.com/desktop/v19/${PDFM_VER}/ParallelsDesktop-${PDFM_VER}.dmg"
# 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
echo "${COLOR_INFO}[*] 复制伪造的授权文件 licenses.json${NOCOLOR}"
# 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
if [ -f "${LICENSE_DST}" ]; then
chflags -R 0 "${LICENSE_DST}" || {
echo -e "${COLOR_ERR}error $? at line $LINENO.${NOCOLOR}"
exit $?
}
rm -f "${LICENSE_DST}" >/dev/null || {
echo -e "${COLOR_ERR}error $? at line $LINENO.${NOCOLOR}"
exit $?
}
fi
cp -f "${LICENSE_FILE}" "${LICENSE_DST}" || {
echo -e "${COLOR_ERR}error $? at line $LINENO.${NOCOLOR}"
exit $?
}
chown root:wheel "${LICENSE_DST}" || {
echo -e "${COLOR_ERR}error $? at line $LINENO.${NOCOLOR}"
exit $?
}
chmod 444 "${LICENSE_DST}" || {
echo -e "${COLOR_ERR}error $? at line $LINENO.${NOCOLOR}"
exit $?
}
chflags -R 0 "${LICENSE_DST}" || {
echo -e "${COLOR_ERR}error $? at line $LINENO.${NOCOLOR}"
exit $?
}
chflags uchg "${LICENSE_DST}" || {
echo -e "${COLOR_ERR}error $? at line $LINENO.${NOCOLOR}"
exit $?
}
chflags schg "${LICENSE_DST}" || {
echo -e "${COLOR_ERR}error $? at line $LINENO.${NOCOLOR}"
exit $?
}
chmod 755 "${PDFM_DISP_DST}"
cp -f "/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service" "/Applications/Parallels Desktop.app/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service_patched"
echo "${COLOR_INFO}[*] 破解完成。${NOCOLOR}"

View File

@@ -1,97 +0,0 @@
COLOR_INFO='\033[0;34m'
COLOR_ERR='\033[0;35m'
NOCOLOR='\033[0m'
PDFM_VER="19.4.0-54962"
echo "${COLOR_INFO}[*] 确保你的版本是: https://download.parallels.com/desktop/v19/${PDFM_VER}/ParallelsDesktop-${PDFM_VER}.dmg"
if pgrep -x "prl_disp_service" &>/dev/null; then
echo "${COLOR_INFO}[*] 正在停止 Parallels Desktop 主程序..."
pkill -9 prl_client_app &>/dev/null
"/Applications/Parallels Desktop.app/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
sudo cp "./tool/91QiuChenly.dylib" "/Applications/Parallels Desktop.app/Contents/Frameworks/91QiuChenly.dylib"
para_load="@rpath/91QiuChenly.dylib"
pd_dir="/Applications/Parallels Desktop.app"
insert_dylib_file="tool/insert_dylib"
# patch dispatcher
pd_dispatcher_file="$pd_dir/Contents/MacOS/Parallels Service.app/Contents/MacOS/prl_disp_service"
# 判断文件是否存在 如果不存在就备份
if [ ! -f "$pd_dispatcher_file"_backup ]; then
cp "$pd_dispatcher_file" "$pd_dispatcher_file"_backup
fi
cp "$pd_dispatcher_file"_backup "$pd_dispatcher_file"
"$insert_dylib_file" "$para_load" "$pd_dispatcher_file"_backup "$pd_dispatcher_file"
codesign -f -s - --timestamp=none --all-architectures --entitlements "./tool/ParallelsDesktop/Service.entitlements" "$pd_dispatcher_file"
# patch vm
pd_vm_file="$pd_dir/Contents/MacOS/Parallels VM.app/Contents/MacOS/prl_vm_app"
if [ ! -f "$pd_vm_file"_backup ]; then
cp "$pd_vm_file" "$pd_vm_file"_backup
fi
cp "$pd_vm_file"_backup "$pd_vm_file"
"$insert_dylib_file" "$para_load" "$pd_vm_file"_backup "$pd_vm_file"
codesign -f -s - --timestamp=none --all-architectures --entitlements "./tool/ParallelsDesktop/VM.entitlements" "$pd_vm_file"
# patch console
pd_console_file="$pd_dir/Contents/MacOS/prl_client_app"
if [ ! -f "$pd_console_file"_backup ]; then
cp "$pd_console_file" "$pd_console_file"_backup
fi
cp "$pd_console_file"_backup "$pd_console_file"
"$insert_dylib_file" "$para_load" "$pd_console_file"_backup "$pd_console_file"
codesign -f -s - --timestamp=none --all-architectures --entitlements "./tool/ParallelsDesktop/Console.entitlements" "$pd_console_file"
# install fake license
license_file_dst="/Library/Preferences/Parallels/licenses.json"
if [ -f "$license_file_dst" ]; then
chflags -R 0 "$license_file_dst"
rm -f "$license_file_dst" > /dev/null
fi
cp "./tool/ParallelsDesktop/licenses.json" "$license_file_dst"
chown root:wheel "$license_file_dst"
chmod 444 "$license_file_dst"
chflags -R 0 "$license_file_dst"
chflags uchg "$license_file_dst"
chflags schg "$license_file_dst"
# start prl_disp_service
if ! pgrep -x "prl_disp_service" &>/dev/null; then
echo "${COLOR_INFO}[*] 正在启动 Parallels Service ..."
"$pd_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] 启动 Service 失败."
fi
fi
# configure parallels
"$pd_dir/Contents/MacOS/prlsrvctl" web-portal signout &>/dev/null
"$pd_dir/Contents/MacOS/prlsrvctl" set --cep off &>/dev/null
"$pd_dir/Contents/MacOS/prlsrvctl" set --allow-attach-screenshots off &>/dev/null
# 需要管理员权限启动PD才会正常访问网络
# (echo "you_pass_word" | sudo -S -b /Applications/Parallels\ Desktop.app/Contents/MacOS/prl_client_app &)

View File

@@ -1,11 +0,0 @@
{
"region": "cn",
"user": "QiuChenly@outlook.com",
"token": "NMSLTOKEN",
"uid": "QiuChenly@outlook.com",
"primaryEmail": "QiuChenly@outlook.com",
"fullname": "QiuChenly@outlook.com",
"phone": "18888888888",
"rawSubscriptionData": "TiT1ul64lE+EMrH0ogOPWHZw5r3sE+jU1l2smjmRuvxmqN3v0NPklgJI9ZpGBt3MZ/mRXM+KmmlZy/bXopy74SH7VLeg3Y1aCATUoWsY2O0XXy1I0JtvLsIF+uM6G2oOx8F6f5Wz+Embhg6b9SIF19MBckmXOOfahd0zWJDaxzpAYthagLgakhbG8k7ynXrUmGIaVmxcktxg3hnRgxlwKvJfM56x5lxF+eLY/t4EFBKfk++omYQExwflUwTrwdeP4kbQvNTMGi9v5Nmyg8Nq7w47sfc1zfeg5opDhW47JTzu29EveGXXAxgV88pjQDZMWjL5c+v4PprDSzF+KJGSfA==",
"openActivateDialogDate": "2024-05-21T06:03:07.806Z"
}

View File

@@ -1,4 +0,0 @@
# 有一个不能说名字的伏地魔公司使用这个数据可以绕过登录只需要替换公钥并引入hook.js即可。
USER=$(whoami)
cp account.json "/Users/$USER/Library/Application Support/Xmind/Electron v3/vana/state/account.json"