免越狱钉钉远程打卡

无需越狱,解决 iOS 版钉钉远程打卡
折腾记录,备忘

准备动态库

准备好DingTalkHelper.dyliblibsubstrate.dylib
备注:DingTalkHelper.dylib可以去 http://cydiaupdates.com 下载 com.kevll.dingtalkhelper.debpatcherplus 生成

创建mobileprovision描述文件

苹果开发者后台 随意创建一个 # App ID,并创建iOS Provisioning Profiles下载到电脑

生成 entitlements.plist

security cms -D -i path/to/downloaded.mobileprovision > provision.plist
/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' provision.plist > entitlements.plist

安装optool

https://github.com/alexzielenski/optool 下载源代码

下载代码

git clone https://github.com/alexzielenski/optool --depth=1

下载git依赖项目

git submodule update --init --recursive

编译项目

打开Xcode编译项目 或者运行命令

xcodebuild -project optool.xcodeproj -configuration Release ARCHS="x86_64" build

把生成的 optool可执行文件拷贝到bin 目录

cp optool /usr/local/bin

编译报错解决

去项目工程设置Building Settings修改Base SDK为最新macOS

下载砸了壳的 ipa

可以去某助手下载,或者从已越狱的 iPhone 上导出,iOS 11 上可使用 CrackerXI导出

重签名 ipa

解压

unzip DingTalk.ipa

插入动态库到钉钉二进制文件

install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib DingTalkHelper.dylib
cp libsubstrate.dylib DingTalkHelper.dylib Payload/DingTalk.app
删 watch 相关文件
optool install -c load -p "@executable_path/DingTalkHelper.dylib" -t Payload/DingTalk.app/DingTalk

删除旧签名信息

rm -rf Payload/MyApp.app/_CodeSignature

替换旧描述文件

cp path/to/MyProfile.mobileprovision Payload/MyApp.app/embedded.mobileprovision

重签名二进制文件和动态库

codesign -f -s "iPhone Developer: your certificate" --entitlements entitlements.plist Payload/DingTalk.app/Frameworks/*

codesign -f -s "iPhone Developer: your certificate" --entitlements entitlements.plist Payload/DingTalk.app/libsubstrate.dylib

codesign -f -s "iPhone Developer: your certificate" --entitlements entitlements.plist Payload/DingTalk.app/DingTalkHelper.dylib

codesign -f -s "iPhone Developer: your certificate" --entitlements entitlements.plist Payload/DingTalk.app

重新打包

zip -qr DingTalk-resigned.ipa Payload

PS : security find-identity -p codesigning 查看可用证书

运行ipa

新建 MonkeyDevapp 项目, 把生成的 DingTalk-resigned.ipa 放进 TargetApp,修改 Bundle identifiercom.laiwang.DingTalk ,修改 Bundle display name钉钉,运行安装到手机即可。

使用插件

打开 钉钉 – 设置 – 钉钉小助手,低调使用。