diff --git a/assets/bg.png b/assets/bg.png new file mode 100644 index 0000000..90dc723 Binary files /dev/null and b/assets/bg.png differ diff --git a/crack/App Cleaner 8 b/crack/App Cleaner 8 new file mode 100755 index 0000000..f73374c Binary files /dev/null and b/crack/App Cleaner 8 differ diff --git a/crack/App Cleaner 8.md b/crack/App Cleaner 8.md new file mode 100644 index 0000000..a12ea96 --- /dev/null +++ b/crack/App Cleaner 8.md @@ -0,0 +1,34 @@ +# AppUninstallerAndCleaner + +1. unlock + +`-[BaseFeaturesController isUnlocked]` call `NKLicenseManager::LicenseStateStorage::isUnlocked` + +``` +__data:00000001007A9D20 E4 31 3E 00 01 00 00 00 DCQ sub_1003E31E4 +__data:00000001007A9D28 C8 DE 7C 00 01 00 00 00 DCQ _$sBoWV ; value witness table for Builtin.NativeObject +__data:00000001007A9D30 E8 9C 7A 00 01 00 00 00+_OBJC_CLASS_$__TtC16NKLicenseManager19LicenseStateStorage __objc2_class <_OBJC_METACLASS_$__TtC16NKLicenseManager19LicenseStateStorage,\ +__data:00000001007A9D30 40 E4 7C 00 01 00 00 00+ ; DATA XREF: __objc_classlist:00000001006BEC78↑o +__data:00000001007A9D30 D0 D4 7C 00 01 00 00 00+ _OBJC_CLASS_$__TtCs12_SwiftObject, __objc_empty_cache, \ ; LicenseStateStorage +__data:00000001007A9D30 00 00 00 00 00 00 00 00+ 0, \ +__data:00000001007A9D30 71 58 78 00 01 00 00 00 _TtC16NKLicenseManager19LicenseStateStorage_$classData.flags+1> +__data:00000001007A9D58 02 DCB 2 +__data:00000001007A9D59 00 DCB 0 +__data:00000001007A9D5A 00 DCB 0 +__data:00000001007A9D5B 00 +... +__data:00000001007A9DD5 00 DCB 0 +__data:00000001007A9DD6 00 DCB 0 +__data:00000001007A9DD7 00 DCB 0 +__data:00000001007A9DD8 58 F9 3D 00 01 00 00 00 DCQ sub_1003DF958 +__data:00000001007A9DE0 78 E4 7C 00 01 00 00 00 DCQ __imp__swift_deletedMethodError +__data:00000001007A9DE8 78 E4 7C 00 01 00 00 00 DCQ __imp__swift_deletedMethodError +__data:00000001007A9DF0 A0 F9 3D 00 01 00 00 00 DCQ sub_1003DF9A0 ; <----- return 1 +__data:00000001007A9DF8 D0 F9 3D 00 01 00 00 00 DCQ sub_1003DF9D0 +__data:00000001007A9E00 40 FD 3D 00 01 00 00 00 DCQ sub_1003DFD40 +__data:00000001007A9E08 CC FD 3D 00 01 00 00 00 DCQ sub_1003DFDCC +``` + +2. startup trial alert + +`-[BaseFeaturesController onAppDidFinishLaunching]` patch to return; diff --git a/entitlements/App Cleaner 8.app.entitlements b/entitlements/App Cleaner 8.app.entitlements new file mode 100644 index 0000000..80c3c5f --- /dev/null +++ b/entitlements/App Cleaner 8.app.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.automation.apple-events + + com.apple.security.files.bookmarks.app-scope + + + diff --git a/entitlements/App Cleaner Helper.app.entitlements b/entitlements/App Cleaner Helper.app.entitlements new file mode 100644 index 0000000..80c3c5f --- /dev/null +++ b/entitlements/App Cleaner Helper.app.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.automation.apple-events + + com.apple.security.files.bookmarks.app-scope + + + diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..b00392d --- /dev/null +++ b/readme.md @@ -0,0 +1,24 @@ +# App Cleaner & Uninstaller for Mac Crack + +Crack for App Cleaner & Uninstaller for Mac 8.0.2.1895 + +- [x] Support Intel +- [x] Support Apple Silicon (M1 & M2) + +# Install + +Go to releases page download and install. + +# FAQ + +## Is this crack safe? + +It's opensource, you can use any hex file comparison tool you like to see what has been modified. + +## I want to crack it myself. + +Check the crack folder to see how I cracked it. + +## Where to get update? + +[https://git.icrack.day/somebasj/AppCleanerAndUninstallerCrack](https://git.icrack.day/somebasj/AppCleanerAndUninstallerCrack) diff --git a/scripts/extra_entitlements.sh b/scripts/extra_entitlements.sh new file mode 100755 index 0000000..167c913 --- /dev/null +++ b/scripts/extra_entitlements.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +CUR_PATH=$( + cd $(dirname "$0"); + pwd +) +ROOT_PATH=$( + cd "${CUR_PATH}/../"; + pwd +) + +function export_entitlements() { + codesign -d --entitlements - --xml "$1" 2>/dev/null | plutil -convert xml1 -o - - > "$2" + /usr/libexec/PlistBuddy -c "Delete :com.apple.security.application-groups" "$2" 2>/dev/null + /usr/libexec/PlistBuddy -c "Delete :com.apple.developer.team-identifier" "$2" 2>/dev/null + /usr/libexec/PlistBuddy -c "Delete :keychain-access-groups" "$2" 2>/dev/null + sed -i "" "s/8DKG4XB37M\.//g" "$2" +} + +mkdir -p "${ROOT_PATH}/entitlements" + +export_entitlements "/Volumes/App Cleaner & Uninstaller/App Cleaner 8.app" "${ROOT_PATH}/entitlements/App Cleaner 8.app.entitlements" +export_entitlements "/Volumes/App Cleaner & Uninstaller/App Cleaner 8.app/Contents/Library/LoginItems/App Cleaner Helper.app" "${ROOT_PATH}/entitlements/App Cleaner Helper.app.entitlements" diff --git a/scripts/publish.sh b/scripts/publish.sh new file mode 100755 index 0000000..eeaba76 --- /dev/null +++ b/scripts/publish.sh @@ -0,0 +1,139 @@ +#!/bin/bash + +CUR_PATH=$( + cd $(dirname "$0"); + pwd +) +ROOT_PATH=$( + cd "${CUR_PATH}/../"; + pwd +) +TEMP_PATH="${ROOT_PATH}/tmp" +PUBLISH_PATH="${ROOT_PATH}/publish" + +APP_VERSION="8.0.2.1895" + +DMG_SHA256SUM="f595aac413b19dc4bd35ac6dcdd2c0d3aa94dbf0387f92242aa51409b58607ca" + +DMG_DOWNLOAD_URL="https://nektony.com/download/app-cleaner-uninstaller/app-cleaner-uninstaller.dmg" + +DMG_FILE="${TEMP_PATH}/download/app-cleaner-uninstaller_${APP_VERSION}.dmg" + +PUBLISH_FILE="${PUBLISH_PATH}/app-cleaner-uninstaller_${APP_VERSION}_Crack.dmg" + +CODESIGN_CERT=- + +if [ -n "$(security find-identity -v -p codesigning | grep 73B34EBEE504D5CEE35B113A22CEBFD381A21033)" ]; then + CODESIGN_CERT=73B34EBEE504D5CEE35B113A22CEBFD381A21033 +fi + +PACK_DIR="${TEMP_PATH}/dmg_files" + +function sign_cmd() { + NAME=$(basename $1) + if [ -f "${ROOT_PATH}/entitlements/${NAME}.entitlements" ]; then + codesign -f -s "${CODESIGN_CERT}" --timestamp=none --all-architectures --deep \ + --entitlements "${ROOT_PATH}/entitlements/${NAME}.entitlements" \ + "$1" + else + codesign -f -s "${CODESIGN_CERT}" --timestamp=none --all-architectures --deep "$1" + fi +} + +function ensure_download_dmg() { + if [ ! -f "${DMG_FILE}" ]; then + echo "[*] Download ${DMG_DOWNLOAD_URL}" + mkdir -p $(dirname "${DMG_FILE}") + curl -L --progress-bar -o "${DMG_FILE}" "${DMG_DOWNLOAD_URL}" + fi + if [ -f "${DMG_FILE}" ]; then + echo "[*] Check hash for \"${DMG_FILE}\"" + FILE_HASH=$(shasum -a 256 -b "${DMG_FILE}" | awk '{print $1}') + if [ ${FILE_HASH} != ${DMG_SHA256SUM} ]; then + echo "[-] ${FILE_HASH} != ${DMG_SHA256SUM}" + echo "[*] Delete \"${DMG_FILE}\"" + rm -f "${DMG_FILE}" + fi + fi +} + +function copy_files() { + echo "[*] Copy files" + if [ -d "${PACK_DIR}" ]; then + rm -rf "${PACK_DIR}" > /dev/null + fi + mkdir -p "${PACK_DIR}" > /dev/null + + MOUNT_DIR=$(hdiutil attach -readonly -noverify -noautofsck -noautoopen "${DMG_FILE}" | grep -E --color=never '/Volumes/' | cut -d'/' -f 4-) + cp -R -X "/${MOUNT_DIR}/App Cleaner 8.app" "${PACK_DIR}/" > /dev/null + hdiutil detach "/${MOUNT_DIR}" + + rm -f "${PACK_DIR}/App Cleaner 8.app/Contents/embedded.provisionprofile" > /dev/null + chflags -R 0 "${PACK_DIR}" > /dev/null + xattr -cr "${PACK_DIR}" > /dev/null +} + +function apply_crack() { + echo "[*] Apply patch" + + SRC="${ROOT_PATH}/crack/App Cleaner 8" + DST="${PACK_DIR}/App Cleaner 8.app/Contents/MacOS/App Cleaner 8" + + cp -f "${SRC}" "${DST}" > /dev/null + chflags -R 0 "${DST}" + chmod 755 "${DST}" +} + +function sign_other() { + oldIFS=$IFS + IFS=$'\n' + for name in $(ls "${PACK_DIR}/App Cleaner 8.app/Contents/Library/LoginItems/") + do + if [ -f "${PACK_DIR}/App Cleaner 8.app/Contents/Library/LoginItems/${name}/Contents/embedded.provisionprofile" ]; then + rm -f "${PACK_DIR}/App Cleaner 8.app/Contents/Library/LoginItems/${name}/Contents/embedded.provisionprofile" > /dev/null + fi + sign_cmd "${PACK_DIR}/App Cleaner 8.app/Contents/Library/LoginItems/${name}" + done + IFS=oldIFS +} + +function sign_app() { + echo "[*] Sign App" + sign_other + if [ -f "${PACK_DIR}/App Cleaner 8.app/Contents/embedded.provisionprofile" ]; then + rm -f "${PACK_DIR}/App Cleaner 8.app/Contents/embedded.provisionprofile" > /dev/null + fi + sign_cmd "${PACK_DIR}/App Cleaner 8.app" +} + +function create_dmg() { + echo "[*] Create dmg ${PUBLISH_FILE}" + mkdir -p "${PUBLISH_PATH}" + + if [ -f "${PUBLISH_FILE}" ]; then + rm -f "${PUBLISH_FILE}" > /dev/null + fi + + create-dmg \ + --volname "App Cleaner & Uninstaller" \ + --background "${ROOT_PATH}/assets/bg.png" \ + --window-pos 0 0 \ + --window-size 550 400 \ + --text-size 12 \ + --icon-size 128 \ + --icon "App Cleaner 8.app" 135 230 \ + --app-drop-link 416 230\ + --codesign "${CODESIGN_CERT}" \ + "${PUBLISH_FILE}" \ + "${PACK_DIR}/" +} + +function publish_crack_dmg() { + ensure_download_dmg + copy_files + apply_crack + sign_app + create_dmg +} + +publish_crack_dmg