本项目受 frida-ios-dump 启发。
由于我最近在使用该工具时遇到问题,因此决定创建 frida-ipa-extract,它更加健壮且具备新增功能,以解决我们当下遇到的问题。
使用 Frida 从越狱的 iOS 设备中提取解密的 .ipa 文件。支持通过 App Store、侧载安装的应用程序以及系统应用。
frida-server安装:
# 使用 uv 或 pipx 安装为独立工具
uv tool install git+https://github.com/lautarovculic/frida-ipa-extract.git
# 或者安装为可编辑包(用于开发)
pip install -e .
# 使用入口点(如果安装为独立工具)
frida-ipa-extract
# 或者直接执行脚本
python extract.py -U -f com.example.app -o MyApp.ipa
python extract.py -U -f com.example.app -o MyApp.ipa --sandbox
python extract.py -U -f com.example.app -o MyApp.ipa --no-resume
python -m frida_ipa_extract -U --pid 1234 -o MyApp.ipa
./extract.py -U "My Running App"
python extract.py -H 192.168.100.32 -P 2222 -u root -p password -f com.example.app
参数:
-f <target>:生成一个应用(bundle ID 或应用名称)--pid <pid>:附加到正在运行的 PIDtarget(位置参数):正在运行的应用名称/bundle ID-o <path>:输出 IPA 路径(默认为 <AppName>.ipa)-U:通过 USB 连接-H <host> -P <port> -u <user> -p <pass>:通过 SSH 连接(paramiko)--sandbox:转储应用沙盒到当前目录下的 <AppName>-sandbox--no-resume:保持已生成的应用挂起(如果应用在检测到 instrumentation 时因越狱检测而崩溃,该选项很有用)如果未传递 -f 或 --pid,工具会附加到正在运行的应用。如果未提供目标,它将列出正在运行的应用并提示您选择。
-U 时,工具会打开一个到 frida-server 端口 27042 的本地隧道,并使用 SFTP 下载应用 bundle。如果同时传递 -U 和 -H,则 USB 用于 Frida,SSH 仅用于文件传输。-f 生成它。frida-server。--no-resume 或 SSH 传输。Frida attach timed out:应用可能阻止附加;请使用 -f 生成或尝试 --no-resume。script has been destroyed:应用已崩溃;请使用 --no-resume 重试或使用 SSH 传输(-H/-u/-p)。No running apps found:应用未运行;请使用 -f 生成它。