学习借鉴三方 iOS App实现

背景

由于近期需要学习借鉴(?)一下某公司的产品交互,不得已又将动态调试的一套拿出来溜,好久没有搞,手有些生,记录下过程以备忘,本文纯属流水账,隐去了技术细节,不喜勿喷。

脱壳

由于我们市场下到的包都是被苹果签名(加壳)过的,如果想要进行动态调试的话,需要对其进行脱壳。脱壳的手段也比较多,如Clutchdumpdecryptedfrida 等方式。
有一个基本的要求是需要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张脱敏截图吧

block

这个循环引用得处理一下啊 ?

image.png

界面还是很精致的 ?

感谢开发同学,为我们带来这么多好用的软件?。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享