背景
由于近期需要学习借鉴(?)一下某公司的产品交互,不得已又将动态调试的一套拿出来溜,好久没有搞,手有些生,记录下过程以备忘,本文纯属流水账,隐去了技术细节,不喜勿喷。
脱壳
由于我们市场下到的包都是被苹果签名(加壳)过的,如果想要进行动态调试的话,需要对其进行脱壳。脱壳的手段也比较多,如Clutch
、dumpdecrypted
、frida
等方式。
有一个基本的要求是需要yue狱的设备,当然这年头,这个还是比较简单的,装个checkra1n
即可轻松搞定。
在实际操作过程中,通过前两种方式出来的包一直没法进行动态调试,主要问题是 动态库Framework
没有被脱成功,通过第三种方式才成功。
到这里就拿到了 XXXX.ipa
的包了。
重签
重签名是调试的必经阶段,否则你无法安装上手机,重签也有相应的脚本来便捷化操作。
- 新建一工程
- 配置一下
Run Script
写入:${SRCROOT}/sign.sh
- 将
sign.sh
文件放在工程目录下 - 将
XXXX.ipa
放入工程app
下
就这么简单,然后运行即可。
这一步需要注意的是,一些App
会有 bundle id
校验的,因此包名最好还写原来的。
# 此处仅贴一下重签代码,其实很简单,重签名第三方 FrameWorks
TARGET_APP_FRAMEWORKS_PATH="$TARGET_APP_PATH/Frameworks"
if [ -d "$TARGET_APP_FRAMEWORKS_PATH" ];
then
for FRAMEWORK in "$TARGET_APP_FRAMEWORKS_PATH/"*
do
/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY" "$FRAMEWORK"
done
fi
复制代码
调试
到这里,如果一切顺利的话,就可以附加 debugserver
调试了。
贴2张脱敏截图吧
这个循环引用得处理一下啊 ?
界面还是很精致的 ?
感谢开发同学,为我们带来这么多好用的软件?。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END