PD 17.1.4-51567 intel crack
This commit is contained in:
commit
b9b8dbfd72
|
@ -0,0 +1,5 @@
|
|||
.DS_Store
|
||||
*.dylib
|
||||
/build
|
||||
/tmp
|
||||
/publish
|
|
@ -0,0 +1,6 @@
|
|||
[submodule "Dobby"]
|
||||
path = Dobby
|
||||
url = https://github.com/jmpews/Dobby
|
||||
[submodule "deps/Dobby"]
|
||||
path = deps/Dobby
|
||||
url = https://github.com/jmpews/Dobby
|
|
@ -0,0 +1,49 @@
|
|||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
project(Configurer64)
|
||||
|
||||
set(DOBBY_GENERATE_SHARED OFF CACHE BOOL "" FORCE)
|
||||
set(DOBBY_DEBUG OFF CACHE BOOL "" FORCE)
|
||||
set(NearBranch ON CACHE BOOL "" FORCE)
|
||||
set(DynamicBinaryInstrument OFF CACHE BOOL "" FORCE)
|
||||
set(FullFloatingPointRegisterPack OFF CACHE BOOL "" FORCE)
|
||||
set(EnableObfuscation OFF CACHE BOOL "" FORCE)
|
||||
set(Plugin.SymbolResolver OFF CACHE BOOL "" FORCE)
|
||||
set(Plugin.GlobalOffsetTableHook ON CACHE BOOL "" FORCE)
|
||||
set(Plugin.LinkerLoadCallback OFF CACHE BOOL "" FORCE)
|
||||
set(Plugin.ApplicationEventMonitor OFF CACHE BOOL "" FORCE)
|
||||
set(Plugin.Android.BionicLinkerRestriction OFF CACHE BOOL "" FORCE)
|
||||
add_subdirectory(deps/Dobby)
|
||||
|
||||
add_library(${PROJECT_NAME} SHARED
|
||||
src/main.cpp
|
||||
)
|
||||
|
||||
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
|
||||
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||
-stdlib=libc++
|
||||
-fno-rtti
|
||||
-fvisibility=hidden
|
||||
-fvisibility-inlines-hidden
|
||||
)
|
||||
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||
-fpass-plugin=${CMAKE_SOURCE_DIR}/ollvm.dylib
|
||||
)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
"-framework Foundation"
|
||||
"-framework CoreFoundation"
|
||||
"-framework AppKit"
|
||||
"-framework Cocoa"
|
||||
)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
objc
|
||||
dobby
|
||||
)
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/Dobby/include
|
||||
)
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 356 KiB |
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 344 KiB |
|
@ -0,0 +1 @@
|
|||
Subproject commit 223aabced0431525c7d45196f9409fc505d58ac8
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
CUR_PATH=$(cd "$(dirname $(readlink -f "$0"))" && pwd)
|
||||
ROOT_PATH=$(cd "${CUR_PATH}/../" && pwd)
|
||||
|
||||
export CC
|
||||
export CXX
|
||||
export PATH
|
||||
|
||||
if [ -f /usr/local/opt/llvm/bin/clang ]; then
|
||||
CC=/usr/local/opt/llvm/bin/clang
|
||||
CXX=/usr/local/opt/llvm/bin/clang++
|
||||
PATH="/usr/local/opt/llvm/bin:$PATH"
|
||||
fi
|
||||
|
||||
cmake -S "${ROOT_PATH}" -B "${ROOT_PATH}/build" \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" \
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET="11.0" \
|
||||
-DLOGGING_DISABLE=1 \
|
||||
&& \
|
||||
cmake --build "${ROOT_PATH}/build" --target Configurer64 -j8
|
Binary file not shown.
|
@ -0,0 +1,129 @@
|
|||
#!/bin/bash
|
||||
|
||||
CUR_PATH=$(cd "$(dirname $(readlink -f "$0"))" && pwd)
|
||||
PT_ROOT_DIR="/Applications/Parallels Toolbox.app"
|
||||
PD_ROOT_DIR="/Applications/Parallels Desktop.app"
|
||||
CRACK_LIB="${CUR_DIR}/../build/libConfigurer64.dylib"
|
||||
# CODESIGN_CERT=B8474E27C322DFB3D4A0168127EB02DB877C3F81
|
||||
CODESIGN_CERT=-
|
||||
|
||||
function sign_cmd() {
|
||||
codesign -f -s ${CODESIGN_CERT} --all-architectures --deep "$1"
|
||||
}
|
||||
|
||||
function kill_pt_app() {
|
||||
killall -9 "Parallels Toolbox"
|
||||
}
|
||||
|
||||
function kill_pd_app() {
|
||||
killall -9 prl_client_app
|
||||
}
|
||||
|
||||
function apply_pt_crack() {
|
||||
|
||||
if [ -f /usr/local/opt/llvm/bin/llvm-strip ]; then
|
||||
/usr/local/opt/llvm/bin/llvm-strip -s "${CRACK_LIB}"
|
||||
fi
|
||||
|
||||
cp "${CRACK_LIB}" "${PT_ROOT_DIR}/Contents/Frameworks/libConfigurer64.dylib"
|
||||
if [ ! -f "${PT_ROOT_DIR}/Contents/Frameworks/libLogging.dylib.bak" ]; then
|
||||
|
||||
cp "${PT_ROOT_DIR}/Contents/Frameworks/libLogging.dylib" "${PT_ROOT_DIR}/Contents/Frameworks/libLogging.dylib.bak"
|
||||
"${CUR_DIR}/insert_dylib" --inplace --all-yes \
|
||||
"@rpath/libConfigurer64.dylib" \
|
||||
"${PT_ROOT_DIR}/Contents/Frameworks/libLogging.dylib"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
function apply_pd_crack() {
|
||||
|
||||
if [ -f /usr/local/opt/llvm/bin/llvm-strip ]; then
|
||||
/usr/local/opt/llvm/bin/llvm-strip -s "${CRACK_LIB}"
|
||||
fi
|
||||
|
||||
cp "${CRACK_LIB}" "${PD_ROOT_DIR}/Contents/Frameworks/libConfigurer64.dylib"
|
||||
if [ ! -f "${PD_ROOT_DIR}/Contents/Frameworks/QtXml.framework/Versions/5/QtXml.bak" ]; then
|
||||
|
||||
cp "${PD_ROOT_DIR}/Contents/Frameworks/QtXml.framework/Versions/5/QtXml" "${PD_ROOT_DIR}/Contents/Frameworks/QtXml.framework/Versions/5/QtXml.bak"
|
||||
"${CUR_DIR}/insert_dylib" --inplace --all-yes \
|
||||
"@rpath/libConfigurer64.dylib" \
|
||||
"${PD_ROOT_DIR}/Contents/Frameworks/QtXml.framework/Versions/5/QtXml"
|
||||
fi
|
||||
}
|
||||
|
||||
function sign_pt() {
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Airplane Mode.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Alarm.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Archive.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Barcode Generator.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Barcode Reader.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Break Time.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/CPU Temperature.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Capture Area.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Capture Screen.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Capture Window.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Clean Drive.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Clipboard History.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Convert Video.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Date Countdown.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Do Not Disturb.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Do Not Sleep.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Download Audio.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Download Video.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Eject Volumes.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Encrypt Files.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Energy Saver.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Find Duplicates.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Focus on Window.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Free Memory.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Hidden Files.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Hide Desktop Files.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Hide Menu Icons.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Launch.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Lock Screen.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Make GIF.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Mute Microphone.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Parallels Tool Launcher.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Presentation Mode.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Recognize Text.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Record Area.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Record Audio.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Record Screen.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Record Window.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Resize Images.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Screenshot Page.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Show Desktop.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Sleep Timer.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Stopwatch.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Switch Resolution.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Take Photo.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Take Video.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Timer.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Transform Text.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Unarchive.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Uninstall Apps.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Unit Converter.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Verify Checksum.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/Window Manager.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Contents/Applications/World Time.app"
|
||||
sign_cmd "${PT_ROOT_DIR}/Parallels Toolbox.app"
|
||||
}
|
||||
|
||||
function sign_pd() {
|
||||
sign_cmd "${PD_ROOT_DIR}/Contents/Applications/Parallels Link.app"
|
||||
sign_cmd "${PD_ROOT_DIR}/Contents/Applications/Parallels Mounter.app"
|
||||
sign_cmd "${PD_ROOT_DIR}/Contents/Applications/Parallels Technical Data Reporter.app"
|
||||
sign_cmd "${PD_ROOT_DIR}/Contents/MacOS/Parallels Mac VM.app"
|
||||
sign_cmd "${PD_ROOT_DIR}/Contents/MacOS/Parallels Service.app"
|
||||
sign_cmd "${PD_ROOT_DIR}/Contents/MacOS/Parallels VM 10.14.app"
|
||||
sign_cmd "${PD_ROOT_DIR}/Contents/MacOS/Parallels VM.app"
|
||||
sign_cmd "${PD_ROOT_DIR}/Parallels Desktop.app"
|
||||
}
|
||||
|
||||
kill_pt_app
|
||||
kill_pd_app
|
||||
apply_pt_crack
|
||||
apply_pd_crack
|
||||
sign_pt
|
||||
sign_pd
|
|
@ -0,0 +1,259 @@
|
|||
#!/bin/bash
|
||||
|
||||
CUR_PATH=$(cd "$(dirname $(readlink -f "$0"))" && pwd)
|
||||
ROOT_PATH=$(cd "${CUR_PATH}/../" && pwd)
|
||||
TEMP_PATH="${ROOT_PATH}/tmp"
|
||||
PUBLISH_PATH="${ROOT_PATH}/publish"
|
||||
|
||||
PTFM_VERSION="5.5.1-4410"
|
||||
PDFM_VERSION="17.1.4-51567"
|
||||
|
||||
PTFM_SHA256SUM="412bddebac28e229c7973dad6d702c67d1b42195b99b009af26ef036f5631349"
|
||||
PDFM_SHA256SUM="8232f140e4c5b95821bf5063fb37db356f7bab520ddabbab4a73d08b5de0cd10"
|
||||
|
||||
PTFM_DMG_DOWNLOAD_URL="https://download.parallels.com/toolbox/v5/${PTFM_VERSION}/ParallelsToolbox-${PTFM_VERSION}.dmg"
|
||||
PDFM_DMG_DOWNLOAD_URL="https://download.parallels.com/desktop/v17/${PDFM_VERSION}/ParallelsDesktop-${PDFM_VERSION}.dmg"
|
||||
|
||||
PTFM_DMG_FILE="${TEMP_PATH}/download/ParallelsToolbox-${PTFM_VERSION}.dmg"
|
||||
PDFM_DMG_FILE="${TEMP_PATH}/download/ParallelsDesktop-${PDFM_VERSION}.dmg"
|
||||
|
||||
PTFM_PUBLISH_FILE="${PUBLISH_PATH}/ParallelsToolbox-${PTFM_VERSION}_Crack.dmg"
|
||||
PDFM_PUBLISH_FILE="${PUBLISH_PATH}/ParallelsDesktop-${PDFM_VERSION}_Crack.dmg"
|
||||
|
||||
# CODESIGN_CERT=B8474E27C322DFB3D4A0168127EB02DB877C3F81
|
||||
CODESIGN_CERT=-
|
||||
|
||||
CRACK_LIB="${ROOT_PATH}/build/libConfigurer64.dylib"
|
||||
|
||||
PTFM_TMP_DIR="${TEMP_PATH}/ptfm_files"
|
||||
PDFM_TMP_DIR="${TEMP_PATH}/pdfm_files"
|
||||
|
||||
function sign_cmd() {
|
||||
codesign -f -s ${CODESIGN_CERT} --all-architectures --deep "$1"
|
||||
}
|
||||
|
||||
function ensure_download_ptfm_dmg() {
|
||||
echo "check ${PTFM_DMG_FILE}"
|
||||
if [ ! -f "${PTFM_DMG_FILE}" ]; then
|
||||
echo "download ${PTFM_DMG_DOWNLOAD_URL}"
|
||||
mkdir -p $(dirname "${PTFM_DMG_FILE}")
|
||||
curl -L --progress-bar -o "${PTFM_DMG_FILE}" "${PTFM_DMG_DOWNLOAD_URL}"
|
||||
fi
|
||||
}
|
||||
|
||||
function ensure_download_pdfm_dmg() {
|
||||
echo "check ${PDFM_DMG_FILE}"
|
||||
if [ ! -f "${PDFM_DMG_FILE}" ]; then
|
||||
echo "download ${PDFM_DMG_DOWNLOAD_URL}"
|
||||
mkdir -p $(dirname "${PDFM_DMG_FILE}")
|
||||
curl -L --progress-bar -o "${PDFM_DMG_FILE}" "${PDFM_DMG_DOWNLOAD_URL}"
|
||||
fi
|
||||
}
|
||||
|
||||
function copy_ptfm_files() {
|
||||
echo "copy files"
|
||||
if [ -d "${PTFM_TMP_DIR}" ]; then
|
||||
rm -rf "${PTFM_TMP_DIR}" > /dev/null
|
||||
fi
|
||||
mkdir -p "${PTFM_TMP_DIR}" > /dev/null
|
||||
|
||||
hdiutil attach -noverify -noautofsck -noautoopen "${PTFM_DMG_FILE}"
|
||||
cp -R -X "/Volumes/Parallels Toolbox/Install Parallels Toolbox.app" "${PTFM_TMP_DIR}/" > /dev/null
|
||||
hdiutil detach "/Volumes/Parallels Toolbox"
|
||||
|
||||
rm -f "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/embedded.provisionprofile" > /dev/null
|
||||
chflags -R 0 "${PTFM_TMP_DIR}" > /dev/null
|
||||
xattr -cr "${PTFM_TMP_DIR}" > /dev/null
|
||||
}
|
||||
|
||||
function copy_pdfm_files() {
|
||||
echo "copy files"
|
||||
if [ -d "${PDFM_TMP_DIR}" ]; then
|
||||
rm -rf "${PDFM_TMP_DIR}" > /dev/null
|
||||
fi
|
||||
mkdir -p "${PDFM_TMP_DIR}" > /dev/null
|
||||
|
||||
hdiutil attach -noverify -noautofsck -noautoopen "${PDFM_DMG_FILE}"
|
||||
cp -R -X "/Volumes/Parallels Desktop 17/Install.app" "${PDFM_TMP_DIR}/" > /dev/null
|
||||
cp -R -X "/Volumes/Parallels Desktop 17/Parallels Desktop.app" "${PDFM_TMP_DIR}/" > /dev/null
|
||||
hdiutil detach "/Volumes/Parallels Desktop 17"
|
||||
|
||||
rm -f "${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/embedded.provisionprofile" > /dev/null
|
||||
chflags -R 0 "${PDFM_TMP_DIR}" > /dev/null
|
||||
xattr -cr "${PDFM_TMP_DIR}" > /dev/null
|
||||
}
|
||||
|
||||
function apply_ptfm_crack() {
|
||||
echo "apply patch"
|
||||
if [ -f /usr/local/opt/llvm/bin/llvm-strip ]; then
|
||||
/usr/local/opt/llvm/bin/llvm-strip -s "${CRACK_LIB}" > /dev/null
|
||||
fi
|
||||
|
||||
cp -f -X "${CRACK_LIB}" \
|
||||
"${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Frameworks/libConfigurer64.dylib" \
|
||||
> /dev/null
|
||||
|
||||
"${CUR_PATH}/insert_dylib" --inplace --all-yes \
|
||||
"@rpath/libConfigurer64.dylib" \
|
||||
"${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Frameworks/libLogging.dylib" \
|
||||
> /dev/null
|
||||
}
|
||||
|
||||
function apply_pdfm_crack() {
|
||||
echo "apply patch"
|
||||
if [ -f /usr/local/opt/llvm/bin/llvm-strip ]; then
|
||||
/usr/local/opt/llvm/bin/llvm-strip -s "${CRACK_LIB}" > /dev/null
|
||||
fi
|
||||
|
||||
cp -f -X "${CRACK_LIB}" \
|
||||
"${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/Frameworks/libConfigurer64.dylib" \
|
||||
> /dev/null
|
||||
|
||||
"${CUR_PATH}/insert_dylib" --inplace --all-yes \
|
||||
"@rpath/libConfigurer64.dylib" \
|
||||
"${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/Frameworks/QtXml.framework/Versions/5/QtXml" \
|
||||
> /dev/null
|
||||
}
|
||||
|
||||
function sign_ptfm() {
|
||||
echo "sign app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Library/Install/ToolboxInstaller"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Airplane Mode.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Alarm.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Archive.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Barcode Generator.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Barcode Reader.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Break Time.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/CPU Temperature.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Capture Area.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Capture Screen.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Capture Window.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Clean Drive.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Clipboard History.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Convert Video.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Date Countdown.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Do Not Disturb.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Do Not Sleep.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Download Audio.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Download Video.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Eject Volumes.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Encrypt Files.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Energy Saver.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Find Duplicates.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Focus on Window.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Free Memory.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Hidden Files.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Hide Desktop Files.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Hide Menu Icons.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Launch.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Lock Screen.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Make GIF.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Mute Microphone.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Parallels Tool Launcher.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Presentation Mode.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Recognize Text.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Record Area.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Record Audio.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Record Screen.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Record Window.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Resize Images.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Screenshot Page.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Show Desktop.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Sleep Timer.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Stopwatch.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Switch Resolution.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Take Photo.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Take Video.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Timer.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Transform Text.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Unarchive.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Uninstall Apps.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Unit Converter.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Verify Checksum.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/Window Manager.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app/Contents/Applications/World Time.app"
|
||||
sign_cmd "${PTFM_TMP_DIR}/Install Parallels Toolbox.app"
|
||||
}
|
||||
|
||||
function sign_pdfm() {
|
||||
echo "sign app"
|
||||
sign_cmd "${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/Applications/Parallels Link.app"
|
||||
sign_cmd "${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/Applications/Parallels Mounter.app"
|
||||
sign_cmd "${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/Applications/Parallels Technical Data Reporter.app"
|
||||
sign_cmd "${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/MacOS/Parallels Mac VM.app"
|
||||
sign_cmd "${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/MacOS/Parallels Service.app"
|
||||
sign_cmd "${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/MacOS/Parallels VM 10.14.app"
|
||||
sign_cmd "${PDFM_TMP_DIR}/Parallels Desktop.app/Contents/MacOS/Parallels VM.app"
|
||||
sign_cmd "${PDFM_TMP_DIR}/Parallels Desktop.app"
|
||||
sign_cmd "${PDFM_TMP_DIR}/Install.app"
|
||||
}
|
||||
|
||||
function set_pdfm_app_hide() {
|
||||
chflags hidden "${PDFM_TMP_DIR}/Parallels Desktop.app" > /dev/null
|
||||
}
|
||||
|
||||
function create_ptfm_dmg() {
|
||||
echo "create dmg ${PTFM_PUBLISH_FILE}"
|
||||
mkdir -p "${PUBLISH_PATH}"
|
||||
|
||||
if [ -f "${PTFM_PUBLISH_FILE}" ]; then
|
||||
rm -f "${PTFM_PUBLISH_FILE}" > /dev/null
|
||||
fi
|
||||
|
||||
create-dmg \
|
||||
--volname "Parallels Toolbox" \
|
||||
--volicon "${ROOT_PATH}/assets/PTFM.VolumeIcon.icns" \
|
||||
--background "${ROOT_PATH}/assets/PTFM.background.png" \
|
||||
--window-pos 0 0 \
|
||||
--window-size 640 415 \
|
||||
--icon-size 256 \
|
||||
--icon "Install Parallels Toolbox.app" 450 126 \
|
||||
--codesign ${CODESIGN_CERT} \
|
||||
"${PTFM_PUBLISH_FILE}" \
|
||||
"${PTFM_TMP_DIR}/"
|
||||
}
|
||||
|
||||
function create_pdfm_dmg() {
|
||||
echo "create dmg ${PDFM_PUBLISH_FILE}"
|
||||
mkdir -p "${PUBLISH_PATH}"
|
||||
|
||||
if [ -f "${PDFM_PUBLISH_FILE}" ]; then
|
||||
rm -f "${PDFM_PUBLISH_FILE}" > /dev/null
|
||||
fi
|
||||
|
||||
create-dmg \
|
||||
--volname "Parallels Desktop 17" \
|
||||
--volicon "${ROOT_PATH}/assets/PDFM.VolumeIcon.icns" \
|
||||
--background "${ROOT_PATH}/assets/PDFM.background.png" \
|
||||
--window-pos 0 0 \
|
||||
--window-size 640 415 \
|
||||
--icon-size 256 \
|
||||
--icon "Install.app" 450 126 \
|
||||
--codesign ${CODESIGN_CERT} \
|
||||
"${PDFM_PUBLISH_FILE}" \
|
||||
"${PDFM_TMP_DIR}/"
|
||||
}
|
||||
|
||||
function publish_ptfm_crack_dmg() {
|
||||
ensure_download_ptfm_dmg
|
||||
copy_ptfm_files
|
||||
apply_ptfm_crack
|
||||
sign_ptfm
|
||||
create_ptfm_dmg
|
||||
}
|
||||
|
||||
function publish_pdfm_crack_dmg() {
|
||||
ensure_download_pdfm_dmg
|
||||
copy_pdfm_files
|
||||
apply_pdfm_crack
|
||||
sign_pdfm
|
||||
set_pdfm_app_hide
|
||||
create_pdfm_dmg
|
||||
}
|
||||
|
||||
|
||||
publish_ptfm_crack_dmg
|
||||
publish_pdfm_crack_dmg
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
|
||||
CUR_PATH=$(cd "$(dirname $(readlink -f "$0"))" && pwd)
|
||||
ROOT_PATH=$(cd "${CUR_PATH}/../" && pwd)
|
||||
|
||||
if [ -d "${ROOT_PATH}/build" ]; then
|
||||
rm -rf "${ROOT_PATH}/build" > /dev/null
|
||||
fi
|
||||
|
||||
exec "${CUR_PATH}/build.sh"
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,242 @@
|
|||
/*
|
||||
* Copyright 2017 - 2021 Justas Masiulis
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef JM_XORSTR_HPP
|
||||
#define JM_XORSTR_HPP
|
||||
|
||||
#if defined(_M_ARM64) || defined(__aarch64__) || defined(_M_ARM) || defined(__arm__)
|
||||
#include <arm_neon.h>
|
||||
#elif defined(_M_X64) || defined(__amd64__) || defined(_M_IX86) || defined(__i386__)
|
||||
#include <immintrin.h>
|
||||
#else
|
||||
#error Unsupported platform
|
||||
#endif
|
||||
|
||||
#include <cstdint>
|
||||
#include <cstddef>
|
||||
#include <utility>
|
||||
#include <type_traits>
|
||||
|
||||
#define xorstr(str) ::OqYAfkhl::swG([]() { return str; }, std::integral_constant<std::size_t, sizeof(str) / sizeof(*str)>{}, std::make_index_sequence<::OqYAfkhl::CtKWt::UfWL<sizeof(str)>()>{})
|
||||
#define xorstr_(str) xorstr(str).Pr()
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define XORSTR_FORCEINLINE __forceinline
|
||||
#else
|
||||
#define XORSTR_FORCEINLINE __attribute__((always_inline)) inline
|
||||
#endif
|
||||
|
||||
namespace OqYAfkhl {
|
||||
|
||||
namespace CtKWt {
|
||||
|
||||
template<std::size_t Size>
|
||||
XORSTR_FORCEINLINE constexpr std::size_t UfWL()
|
||||
{
|
||||
return ((Size / 16) + (Size % 16 != 0)) * 2;
|
||||
}
|
||||
|
||||
template<std::uint32_t Seed>
|
||||
XORSTR_FORCEINLINE constexpr std::uint32_t rY() noexcept
|
||||
{
|
||||
std::uint32_t value = Seed;
|
||||
for(char c : __TIME__)
|
||||
value = static_cast<std::uint32_t>((value ^ c) * 16777619ull);
|
||||
return value;
|
||||
}
|
||||
|
||||
template<std::size_t S>
|
||||
XORSTR_FORCEINLINE constexpr std::uint64_t WL()
|
||||
{
|
||||
constexpr auto first_part = rY<2166136261 + S>();
|
||||
constexpr auto second_part = rY<first_part>();
|
||||
return (static_cast<std::uint64_t>(first_part) << 32) | second_part;
|
||||
}
|
||||
|
||||
// loads up to 8 characters of string into uint64 and xors it with the key
|
||||
template<std::size_t N, class CharT>
|
||||
XORSTR_FORCEINLINE constexpr std::uint64_t
|
||||
EE(std::uint64_t key, std::size_t idx, const CharT* str) noexcept
|
||||
{
|
||||
using cast_type = typename std::make_unsigned<CharT>::type;
|
||||
constexpr auto value_size = sizeof(CharT);
|
||||
constexpr auto idx_offset = 8 / value_size;
|
||||
|
||||
std::uint64_t value = key;
|
||||
for(std::size_t i = 0; i < idx_offset && i + idx * idx_offset < N; ++i)
|
||||
value ^=
|
||||
(std::uint64_t{ static_cast<cast_type>(str[i + idx * idx_offset]) }
|
||||
<< ((i % idx_offset) * 8 * value_size));
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
// forces compiler to use registers instead of stuffing constants in rdata
|
||||
XORSTR_FORCEINLINE std::uint64_t Fw(std::uint64_t value) noexcept
|
||||
{
|
||||
#if defined(__clang__) || defined(__GNUC__)
|
||||
asm("" : "=r"(value) : "0"(value) :);
|
||||
return value;
|
||||
#else
|
||||
volatile std::uint64_t reg = value;
|
||||
return reg;
|
||||
#endif
|
||||
}
|
||||
|
||||
} // namespace detail
|
||||
|
||||
template<class CharT, std::size_t Size, class Keys, class Indices>
|
||||
class swG;
|
||||
|
||||
template<class CharT, std::size_t Size, std::uint64_t... Keys, std::size_t... Indices>
|
||||
class swG<CharT, Size, std::integer_sequence<std::uint64_t, Keys...>, std::index_sequence<Indices...>> {
|
||||
#ifndef JM_XORSTR_DISABLE_AVX_INTRINSICS
|
||||
constexpr static inline std::uint64_t alignment = ((Size > 16) ? 32 : 16);
|
||||
#else
|
||||
constexpr static inline std::uint64_t alignment = 16;
|
||||
#endif
|
||||
|
||||
alignas(alignment) std::uint64_t _storage[sizeof...(Keys)];
|
||||
|
||||
public:
|
||||
using value_type = CharT;
|
||||
using size_type = std::size_t;
|
||||
using pointer = CharT*;
|
||||
using const_pointer = const CharT*;
|
||||
|
||||
template<class L>
|
||||
XORSTR_FORCEINLINE swG(L l, std::integral_constant<std::size_t, Size>, std::index_sequence<Indices...>) noexcept
|
||||
: _storage{ ::OqYAfkhl::CtKWt::Fw((std::integral_constant<std::uint64_t, CtKWt::EE<Size>(Keys, Indices, l())>::value))... }
|
||||
{}
|
||||
|
||||
XORSTR_FORCEINLINE constexpr size_type size() const noexcept
|
||||
{
|
||||
return Size - 1;
|
||||
}
|
||||
|
||||
XORSTR_FORCEINLINE void fO() noexcept
|
||||
{
|
||||
// everything is inlined by hand because a certain compiler with a certain linker is _very_ slow
|
||||
#if defined(__clang__)
|
||||
alignas(alignment)
|
||||
std::uint64_t arr[]{ ::OqYAfkhl::CtKWt::Fw(Keys)... };
|
||||
std::uint64_t* keys =
|
||||
(std::uint64_t*)::OqYAfkhl::CtKWt::Fw((std::uint64_t)arr);
|
||||
#else
|
||||
alignas(alignment) std::uint64_t keys[]{ ::OqYAfkhl::CtKWt::Fw(Keys)... };
|
||||
#endif
|
||||
|
||||
#if defined(_M_ARM64) || defined(__aarch64__) || defined(_M_ARM) || defined(__arm__)
|
||||
#if defined(__clang__)
|
||||
((Indices >= sizeof(_storage) / 16 ? static_cast<void>(0) : __builtin_neon_vst1q_v(
|
||||
reinterpret_cast<uint64_t*>(_storage) + Indices * 2,
|
||||
veorq_u64(__builtin_neon_vld1q_v(reinterpret_cast<const uint64_t*>(_storage) + Indices * 2, 51),
|
||||
__builtin_neon_vld1q_v(reinterpret_cast<const uint64_t*>(keys) + Indices * 2, 51)),
|
||||
51)), ...);
|
||||
#else // GCC, MSVC
|
||||
((Indices >= sizeof(_storage) / 16 ? static_cast<void>(0) : vst1q_u64(
|
||||
reinterpret_cast<uint64_t*>(_storage) + Indices * 2,
|
||||
veorq_u64(vld1q_u64(reinterpret_cast<const uint64_t*>(_storage) + Indices * 2),
|
||||
vld1q_u64(reinterpret_cast<const uint64_t*>(keys) + Indices * 2)))), ...);
|
||||
#endif
|
||||
#elif !defined(JM_XORSTR_DISABLE_AVX_INTRINSICS)
|
||||
((Indices >= sizeof(_storage) / 32 ? static_cast<void>(0) : _mm256_store_si256(
|
||||
reinterpret_cast<__m256i*>(_storage) + Indices,
|
||||
_mm256_xor_si256(
|
||||
_mm256_load_si256(reinterpret_cast<const __m256i*>(_storage) + Indices),
|
||||
_mm256_load_si256(reinterpret_cast<const __m256i*>(keys) + Indices)))), ...);
|
||||
|
||||
if constexpr(sizeof(_storage) % 32 != 0)
|
||||
_mm_store_si128(
|
||||
reinterpret_cast<__m128i*>(_storage + sizeof...(Keys) - 2),
|
||||
_mm_xor_si128(_mm_load_si128(reinterpret_cast<const __m128i*>(_storage + sizeof...(Keys) - 2)),
|
||||
_mm_load_si128(reinterpret_cast<const __m128i*>(keys + sizeof...(Keys) - 2))));
|
||||
#else
|
||||
((Indices >= sizeof(_storage) / 16 ? static_cast<void>(0) : _mm_store_si128(
|
||||
reinterpret_cast<__m128i*>(_storage) + Indices,
|
||||
_mm_xor_si128(_mm_load_si128(reinterpret_cast<const __m128i*>(_storage) + Indices),
|
||||
_mm_load_si128(reinterpret_cast<const __m128i*>(keys) + Indices)))), ...);
|
||||
#endif
|
||||
}
|
||||
|
||||
XORSTR_FORCEINLINE const_pointer Ce() const noexcept
|
||||
{
|
||||
return reinterpret_cast<const_pointer>(_storage);
|
||||
}
|
||||
|
||||
XORSTR_FORCEINLINE pointer Ce() noexcept
|
||||
{
|
||||
return reinterpret_cast<pointer>(_storage);
|
||||
}
|
||||
|
||||
XORSTR_FORCEINLINE pointer Pr() noexcept
|
||||
{
|
||||
// fO() is inlined by hand because a certain compiler with a certain linker is _very_ slow
|
||||
#if defined(__clang__)
|
||||
alignas(alignment)
|
||||
std::uint64_t arr[]{ ::OqYAfkhl::CtKWt::Fw(Keys)... };
|
||||
std::uint64_t* keys =
|
||||
(std::uint64_t*)::OqYAfkhl::CtKWt::Fw((std::uint64_t)arr);
|
||||
#else
|
||||
alignas(alignment) std::uint64_t keys[]{ ::OqYAfkhl::CtKWt::Fw(Keys)... };
|
||||
#endif
|
||||
|
||||
#if defined(_M_ARM64) || defined(__aarch64__) || defined(_M_ARM) || defined(__arm__)
|
||||
#if defined(__clang__)
|
||||
((Indices >= sizeof(_storage) / 16 ? static_cast<void>(0) : __builtin_neon_vst1q_v(
|
||||
reinterpret_cast<uint64_t*>(_storage) + Indices * 2,
|
||||
veorq_u64(__builtin_neon_vld1q_v(reinterpret_cast<const uint64_t*>(_storage) + Indices * 2, 51),
|
||||
__builtin_neon_vld1q_v(reinterpret_cast<const uint64_t*>(keys) + Indices * 2, 51)),
|
||||
51)), ...);
|
||||
#else // GCC, MSVC
|
||||
((Indices >= sizeof(_storage) / 16 ? static_cast<void>(0) : vst1q_u64(
|
||||
reinterpret_cast<uint64_t*>(_storage) + Indices * 2,
|
||||
veorq_u64(vld1q_u64(reinterpret_cast<const uint64_t*>(_storage) + Indices * 2),
|
||||
vld1q_u64(reinterpret_cast<const uint64_t*>(keys) + Indices * 2)))), ...);
|
||||
#endif
|
||||
#elif !defined(JM_XORSTR_DISABLE_AVX_INTRINSICS)
|
||||
((Indices >= sizeof(_storage) / 32 ? static_cast<void>(0) : _mm256_store_si256(
|
||||
reinterpret_cast<__m256i*>(_storage) + Indices,
|
||||
_mm256_xor_si256(
|
||||
_mm256_load_si256(reinterpret_cast<const __m256i*>(_storage) + Indices),
|
||||
_mm256_load_si256(reinterpret_cast<const __m256i*>(keys) + Indices)))), ...);
|
||||
|
||||
if constexpr(sizeof(_storage) % 32 != 0)
|
||||
_mm_store_si128(
|
||||
reinterpret_cast<__m128i*>(_storage + sizeof...(Keys) - 2),
|
||||
_mm_xor_si128(_mm_load_si128(reinterpret_cast<const __m128i*>(_storage + sizeof...(Keys) - 2)),
|
||||
_mm_load_si128(reinterpret_cast<const __m128i*>(keys + sizeof...(Keys) - 2))));
|
||||
#else
|
||||
((Indices >= sizeof(_storage) / 16 ? static_cast<void>(0) : _mm_store_si128(
|
||||
reinterpret_cast<__m128i*>(_storage) + Indices,
|
||||
_mm_xor_si128(_mm_load_si128(reinterpret_cast<const __m128i*>(_storage) + Indices),
|
||||
_mm_load_si128(reinterpret_cast<const __m128i*>(keys) + Indices)))), ...);
|
||||
#endif
|
||||
|
||||
return (pointer)(_storage);
|
||||
}
|
||||
};
|
||||
|
||||
template<class L, std::size_t Size, std::size_t... Indices>
|
||||
swG(L l, std::integral_constant<std::size_t, Size>, std::index_sequence<Indices...>) -> swG<
|
||||
std::remove_const_t<std::remove_reference_t<decltype(l()[0])>>,
|
||||
Size,
|
||||
std::integer_sequence<std::uint64_t, CtKWt::WL<Indices>()...>,
|
||||
std::index_sequence<Indices...>>;
|
||||
|
||||
} // namespace jm
|
||||
|
||||
#endif // include guard
|
Loading…
Reference in New Issue