iOS反编译IPA重新签名
1、获取应用的IPA
a、打开爱思助手,链接手机,点击引用游戏,搜索想要的APP
b、在下载界面点击打开文件夹,拿到IPA文件
c、解压IPA包,将IPA包换成zip包,然后在进行解压。
2、开始反编译IPA包
a、查看包信息,进入Payload文件目录,比如执行该命令:codesign -d -v WeChat.app 或者 codesign -d -vv WeChat.app
b、执行命令,列出钥匙串里可签名的证书:security find-identity -v -p codesigning
c、我们先进入.app包里面去,执行命令查看是否加密:otool -l WeChat | grep crypt
如果cryptid等于0表示不加密,可以重签名。
如果cryptid等于1表示加密,不可以重签名。(一般越狱包是不加密的
d、重新前面Frameworks文件夹里面的文件,切到Frameworks文件夹,执行命令一个一个签名。
比如:codesign -fs "Apple Development: Brian Gasparini (QG5XRSP5T6)" Adjust.framework
e、去拿描述文件,比如
f、修改越狱包里面的info.plist文件的 Bundle identifier 为拉进来的描述文件的Bundle identifier
g、开始查看一下描述文件里面的内容,里面的权限内容需要用到,执行命令查看:security cms -D -i embedded.mobileprovision 创建一个plist文件,名字命名为:entitlements.plist
h、将描述文件和entitlements.plist 拉进去。然后执行命令:codesign -fs "证书串" --no-strict --entitlements=权限文件.plist APP包
比如:codesign -fs "Apple Development: Brian Gasparini (QG5XRSP5T6)" --no-strict --entitlements=entitlements.plist TemplateRoy.app
然后查看是否签名成功
i、重新打包。切到Payload的目录,输入命令:zip -ry 输出文件 输入文件 将输入文件压缩输出文件,打包成功会生成一个IPA文件包,这就可以安装了
j、然后用xcode安装就可以了。点击+号,然后选择IPA包进行安装
3、利用Xcode调试第三方应用
a、创建一个和第三方一样的包名,比如WeChat,然后重签名Framework文件夹,上面的d步骤,然后在info.plist文件换Bundle identifier 上面的 f 步骤
b、然后换一下.app 文件,将第三方的放进去里面进行替换,然后运行项目工程
4、自动化脚本重签名Xcode调试第三方应用
a、创建一个和第三方一样的包名,比如TemplateRoy,然后将脚本文件夹拉进工程目录,里面有脚本和第三方IPA文件
b、在xcode中把脚本写进去进行执行,直接运行工程就可以了
c、shell脚本文件
#资源目录,里面放的是ipa包
ASSETS_PATH="${SRCROOT}/SignatureShell/"
#ASSETS_PATH=""
#temp目录,放置解压的APP
TEMP_PATH="${SRCROOT}/Temp"
#目标的ipa包路径
TARCET_IPA_PATH="${ASSETS_PATH}*.ipa"
#清空Temp文件夹
rm -rf "${TEMP_PATH}"
#创建Temp文件夹
mkdir -p "${TEMP_PATH}"
#-------解压缩--------
unzip -oqq "${TARCET_IPA_PATH}" -d "${TEMP_PATH}"
#解压的临时APP路径
TEMP_APP_PATH=$(set -- "${TEMP_PATH}/Payload/"*.app;echo "$1")
echo "临时路径:$TEMP_APP_PATH"
#拷贝APP路径
TARGET_APP_PATH="${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app"
#拷贝APP
cp -rf "${TEMP_APP_PATH}/" "${TARGET_APP_PATH}"
#强制非必要文件删除
rm -rf "${TARGET_APP_PATH}/PlugIns"
rm -rf "${TARGET_APP_PATH}/Watch"
#修改info.plist,通过PlistBuddy修改
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER)" "${TARGET_APP_PATH}/Info.plist"
#重签第三方的Frameworks
TARGET_FRAMEWORKS_PATH="${TARGET_APP_PATH}/Frameworks"
for FRAMEWORK in "${TARGET_FRAMEWORKS_PATH}/"*
do
/usr/bin/codesign --force --sign "${EXPANDED_CODE_SIGN_IDENTITY}" "${FRAMEWORK}"
done
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用