Back to skills
extension
Category: OtherNo API key required

APP拆包分析

APP(Android APK / iOS IPA)一站式拆包与全链路分析。当用户需要对一个 APP 进行逆向拆包、SDK 与第三方依赖识别(含厂商与功能映射)、域名与 IP 归属(云厂商)梳理、安全风险评估、沙箱动态运行与流量抓包、产出架构图、行业调研报告以及优化整改建议时使用本 skill。触发关键词:APP拆包、APK逆向、IPA分析、SDK识别、第三方SDK清单、域名IP分析、APP安全测试、应用安全评估、沙箱运行、动态分析、APP抓包、PRM文档、APP行业调研、整改建议、competitor APP teardown、static dynamic analysis。

personAuthor: user_912fbf9ahubcommunity

APP Pentest & Teardown Analyzer

用途

把"对一个 APP 做完整拆解"的工作流标准化:从静态拆包、SDK/域名梳理、IP→云厂商定位,到沙箱动态运行抓包、架构推导,最终产出 PRM 文档、行业调研与整改建议。本 skill 适用于竞品拆解、安全合规审计、供应链 SDK 排查、云资源溯源等场景。

输入与确认

开始任何分析前,先与用户确认以下信息(缺失时以问句一次性收齐):

  1. APP 包.apk / .aab / .ipa / 应用宝下载链接 / 直接给包路径
  2. 平台:Android / iOS / 双端
  3. 测试账号:用户名+密码(用于动态遍历功能;否则只做静态+游客态动态)
  4. 业务域:APP 所在行业(金融/直播/电商/工具/游戏…),用于行业调研对标
  5. 合规边界:是否仅授权静态分析、能否进行动态抓包、是否允许上传到第三方扫描平台(VirusTotal、MobSF SaaS)
  6. 输出语言/形式:默认中文 Markdown PRM;可叠加架构图(mermaid/SVG)

没有授权 → 不要做动态抓包/反代。没有账号 → 跳过登录态功能遍历,明示"未覆盖功能"。

工作流(六阶段)

阶段0 准备环境  → 阶段1 静态拆包  → 阶段2 SDK与域名 → 阶段3 IP/云厂商 → 阶段4 安全评估 → 阶段5 沙箱动态 → 阶段6 PRM输出

每个阶段产物都落在 output/<app_name>_<date>/ 子目录,最终汇总到 PRM 报告。

阶段 0:环境准备

按需启用工具,缺失时引导安装:

  • Android 静态apktooljadxaapt2androguard(pip)
  • iOS 静态unzip(IPA本身是zip)、class-dumpotoolHopper/Ghidra(可选)
  • 沙箱动态:模拟器(Android Studio AVD / Genymotion / iOS Simulator)、FridaObjectionmitmproxyCharles
  • 网络digwhoisnslookupcurl
  • 批量分析MobSF(本地 docker 部署优先)

参考脚本与命令清单见 references/tools.md

阶段 1:静态拆包

Android

scripts/static_unpack.sh <app.apk> output/<name>/static/

脚本会自动:解压资源、apktool djadx -d 反编译 dex、提取 AndroidManifest.xml 权限/组件/intent-filter、列出 lib/* 的 so、产出 manifest_summary.json

iOS:解压 IPA→Payload/*.app/,读取 Info.plistembedded.mobileprovision、Frameworks 目录、Mach-O 头部信息(otool -L 看依赖动态库)。

输出物:

  • static/manifest_summary.json —— 包名、版本、权限、四大组件、URL Scheme
  • static/strings.txt —— 所有字符串(grep 用)
  • static/decompiled/ —— 反编译源码或类清单

阶段 2:SDK 与域名识别

2.1 SDK 识别(必须含厂商与功能)

按"包路径前缀 + so 名 + 资源指纹"三路匹配,输出统一表格。匹配规则与速查表见 references/sdk_catalog.md(覆盖 200+ 主流 SDK:腾讯/阿里/字节/Google/Meta/Firebase/Bugly/友盟/极光/MobTech/声网/融云/微信支付/支付宝SDK 等)。

scripts/detect_sdks.py output/<name>/static/ -o output/<name>/sdks.json

输出字段固定:

| 字段 | 说明 | |---|---| | sdk_name | SDK 名称 | | package | 命中包名/库名 | | vendor | 提供厂商(如 腾讯、字节跳动、Google) | | category | 功能分类(推送/统计/IM/支付/广告/直播/地图/热修/风控) | | capability | 提供能力简述 | | version | 解析到的版本(无则 unknown) | | risk_note | 已知风险(数据采集面、合规问题) |

2.2 域名提取

scripts/extract_domains.py output/<name>/static/ -o output/<name>/domains.txt

策略:strings 抽取 + 正则 https?://[a-z0-9.-]+[a-z0-9-]+\.[a-z]{2,},去重,过滤 schema.org/w3.org 等噪声白名单(见 references/noise_domains.txt)。

阶段 3:域名 → IP → 云厂商归属

scripts/resolve_and_locate.py output/<name>/domains.txt -o output/<name>/network_assets.csv

脚本按域名做:dig A/AAAA/CNAME → 取 IP → 反查 ASN/Org(用 ipinfo.ioip-api.com 离线 MaxMind 库)→ 映射到云厂商。

云厂商指纹(ASN / Org 关键词)见 references/cloud_asn_map.md:腾讯云、阿里云、华为云、AWS、Google Cloud、Azure、Cloudflare、Akamai、字节火山引擎、UCloud、京东云、金山云等。

输出 CSV 字段:domain, cname_chain, ip, asn, org, cloud_vendor, region(if可推), 备注

阶段 4:安全风险评估

按 OWASP MASVS / MSTG 维度走一遍清单,速查见 references/security_checklist.md。重点:

  • 加固/混淆:是否加固(梆梆、爱加密、360、腾讯乐固、Bangcle、DexGuard);类名混淆程度
  • 权限滥用:危险权限是否与功能对齐;后台定位/通讯录/短信权限是否过度
  • 数据存储:明文 SharedPreferences/SQLite、硬编码 AK/SK/Token(用 references/secret_patterns.md 的正则跑一遍)
  • 网络通信:是否强制 HTTPS、证书校验/SSL Pinning、是否信任用户 CA、HTTP 明文
  • WebViewsetJavaScriptEnabled + addJavascriptInterfacefile:// 跨域
  • 组件暴露exported=true 的 Activity/Service/Receiver/Provider 是否做权限校验
  • 第三方 SDK 合规:是否在隐私政策中披露;初始化时机是否在用户同意之前
  • iOS:ATS 配置、URL Scheme 劫持、Keychain 使用、是否启用 PIE/ARC/Stack Canary

可选:把 APK 喂给本地 MobSF(docker run -p 8000:8000 opensecurity/mobile-security-framework-mobsf),自动得到 CVSS 评分;解析其 JSON 报告并合并到我们的输出。

输出 security_findings.json,字段:id, category, severity(高/中/低/信息), title, evidence(文件:行号), impact, remediation

阶段 5:沙箱动态分析

前置:用户已提供测试账号且明确授权动态测试。

  1. 模拟器启动(root 过的 AVD 或 iOS 真机/Simulator)
  2. 安装 APP,启动 mitmproxy 反向代理(scripts/run_sandbox.sh 一键拉起)
  3. 信任根证书(Android 7+ 需 Frida 绕过 SSL Pinning,模板脚本 scripts/frida_unpinning.js
  4. 用 Appium / adb monkey / 人工脚本完成"主路径用例":登录→首页→核心业务→设置→退出
  5. 全程录屏 + 抓 HAR + Frida hook 关键 API(网络、加密、存储)
  6. 收尾导出:flow.harscreen.mp4frida_log.txt

APP 架构图自动推导:把 HAR 里的所有请求按域名/路径聚类,结合阶段 3 的云厂商归属和阶段 2 的 SDK 列表,画出客户端模块 → 网关 → 微服务 → 第三方 SDK 后端 的 mermaid 图。模板见 references/arch_diagram_template.md

scripts/build_arch_diagram.py output/<name>/flow.har output/<name>/sdks.json -o output/<name>/architecture.mmd

阶段 6:PRM 文档与行业调研输出

PRM(Product Reverse Memo)是最终交付物,结构固定,模板见 assets/prm_template.md

1. 摘要(一页纸:APP定位/技术栈印象/核心风险/Top3建议)
2. APP 基础信息(包名、版本、平台、加固、签名)
3. SDK 全清单(表格,按"厂商×功能"分组)
4. 网络资产清单(域名/IP/云厂商表格 + 资产分布饼图)
5. 安全评估(按严重程度排序,每条含证据与整改建议)
6. APP 架构图(mermaid + 文字解读)
7. 行业调研(同行业 Top3-5 竞品对比:技术栈、SDK选型、云厂商偏好、合规姿态)
8. 优化整改建议(按 P0/P1/P2 排序,含工作量估算)
9. 附录(工具版本、扫描日志、未覆盖范围声明)

行业调研部分需要联网:调用 WebSearch/WebFetch 获取该行业 Top 竞品的公开信息(七麦、点点、SimilarWeb、各厂商技术博客),不要编造数据。

资源说明

  • scripts/static_unpack.sh —— Android/iOS 一键拆包
  • scripts/detect_sdks.py —— SDK 指纹识别
  • scripts/extract_domains.py —— 域名提取
  • scripts/resolve_and_locate.py —— 域名解析+云厂商归属
  • scripts/build_arch_diagram.py —— 从 HAR + SDK 清单生成 mermaid 架构图
  • scripts/run_sandbox.sh —— 沙箱+mitmproxy 启动模板
  • scripts/frida_unpinning.js —— 通用 SSL Pinning 绕过
  • references/sdk_catalog.md —— SDK 厂商×功能速查表
  • references/cloud_asn_map.md —— ASN/Org → 云厂商映射
  • references/security_checklist.md —— OWASP MASVS 中文清单
  • references/secret_patterns.md —— 密钥/Token 正则
  • references/noise_domains.txt —— 域名提取噪声白名单
  • references/tools.md —— 工具安装与命令速查
  • references/arch_diagram_template.md —— 架构图模板
  • assets/prm_template.md —— PRM 报告模板

红线与免责

  • 仅对授权范围内的 APP 进行分析;公开应用市场下载不等于授权动态测试
  • 测试账号使用完毕后建议用户改密
  • 报告中不得包含真实用户数据、明文凭证;截图打码后再嵌入
  • 涉及个人信息保护法/GDPR 的 SDK 调用需在报告中明确指出,不替用户做合规结论