Skip to main content

涉诈 APK 调证分析 CLI — 静态分析 + 配置键值/服务归属提取,产出调证线索清单

Project description

fxapk

CI License: MIT Python 3.11+

CLI 命令 fxapk(亦保留 apkscan 别名);PyPI 包名 fxapk · English: README.en.md

面向反诈调证的 APK 静态分析 CLI —— 不止列出 IP/域名,而是产出调证线索清单: 每条线索回答「这是什么、归属哪家公司、能去找谁调取什么证据」。

pip install 即可运行核心功能,零环境(不需要 JDK / 模拟器 / 真机)。专为涉诈 App 取证设计: 抠出 App 里真实配置的 key 值(AppID / AppKey / AppSecret / 渠道号 / uni-app 应用 ID), 识别第三方服务与加固厂商并映射到可调证主体,对域名/IP 做**「是否建议调证」分级**, 把真正的诈骗服务器从成百上千条库/CDN 噪音里浮出来。


它产出什么(核心区别)

普通工具告诉你「检测到个推 SDK」;fxapk 告诉你 具体值 + 所属公司 + 调证建议

调用插件 / 配置键值(CONFIG_KEY)
  GETUI_APPID    = aBcD1234EfGh5678        → 每日互动股份有限公司(个推)     [建议调证]
  PUSH_APPSECRET = zZ9yX8wV7uT6sR5q        → 每日互动股份有限公司(个推)     [建议调证·强凭据]
  __UNI__        = __UNI__A1B2C3D          → 数字天堂(北京)网络技术有限公司(DCloud) [建议调证]
   (示例值,已脱敏)

主控域名(建议调证 —— App 自有/疑似 C2)
  *.api-xxxxx.vip        建议调证:向注册商 / ICP 备案 / 云厂商调归属与租户
通联域名 / IP(无需调证 —— 已知基础设施,默认折叠)
  api.map.baidu.com / *.myqcloud.com / getui.net …

调证建议:凭上述 AppSecret 向【个推】调开发者账号实名、应用注册主体、推送下发记录。

实际渲染的 HTML 报告(演示数据,已脱敏):

apkscan 报告示例


安装

要求 Python 3.11+

# 从 PyPI
python -m pip install fxapk

# 或从源码
git clone https://github.com/s-silt/fxapk.git
cd fxapk
python -m pip install -e .

核心依赖:androguard(解析 APK)、jinja2typerpython-whoisrequestspyyaml

单元测试不依赖 androguard、不联网、不需要真机/jadx/frida(全部基于 FakeContext 合成数据):

python -m pip install jinja2 typer python-whois requests pyyaml pytest
python -m pytest -q          # 324 passed

可选依赖(缺失时对应能力优雅降级,核心不受影响、不报错):

可选项 启用的能力
jadx(PATH 外部命令) jadx 深度反编译增强器(不在 PATH 则自动跳过并在报告标注)
frida-tools + frida-dexdump unpack 真机脱壳
mitmproxy capture 真机抓包流量解析
Chrome / Edge / Chromium --fmt pdf 报告导出(无头打印)

快速开始

# 默认:联网富化归属,产出 HTML + JSON 到 out/
fxapk analyze app.apk --out out

# 离线(不联网),加导出 PDF
fxapk analyze app.apk --out out --offline --fmt html,json,pdf

# 只产 JSON(机器读 / 留档)
fxapk analyze app.apk --fmt json

未安装为命令时等价用:python -m apkscan.cli analyze app.apk --out out

常用参数

参数 说明
--out DIR 报告输出目录(默认 out
--fmt html,json,pdf 输出格式,逗号分隔(默认 html,jsonpdf 需 Chrome/Edge)
--online / --offline 是否联网富化 WHOIS / ICP 备案 / IP-ASN(默认联网)
--extra-dex PATH 并入脱壳 dump 出的 .dex(文件或目录)一起静态分析
--dynamic 静态分析后若探测到在线设备,自动跑 unpack + capture

输出

  • out/report.html —— 自包含单文件(CSS 内联,可直接分享/手机打开)
  • out/report.json —— Report 完整序列化(机器读 / 二次处理)
  • out/report.pdf —— --fmt pdf 时由本机 Chrome/Edge 无头打印生成

报告版式(按调证视角):概览(含加固/uni-app 加密标记)→ ★调用插件/配置键值(具体值) → 主控域名(建议调证)/ 通联域名·IP(无需调证,折叠)→ 支付·SDK·联系方式·加固·签名线索 → 网络端点全表(WHOIS/ICP/ASN 富化、明文/内网标记)→ 技术附录(权限/组件/证书/crypto/密钥) → 分析器与富化器运行状态(ran/skipped/error,透明不吞错)。


分析能力一览

静态分析器(零环境,自动发现)

分析器 产出
config_keys manifest <meta-data> + uni-app 配置抠真实 key=value,映射调证主体;敏感凭据产 HIGH Finding
sdk_fingerprint 第三方 SDK 指纹 → 厂商(支付/短信/推送/云存储/IM/统计/地图)
payment 聚合支付/收款/商户号/USDT/钱包地址 → 资金线索
endpoints dex/资源/native/manifest 全量抽 URL/域名/IP(严格降噪)
js_bundle uni-app/H5/RN 打包 JS 字符串字面量内精确抽端点 + 硬编码密钥
jadx (需 jadx)深度反编译补端点/密钥
packing 加固厂商识别(梆梆/爱加密/360/腾讯乐固/娜迦/百度/网易易盾/阿里聚安全/几维)
certificate 签名证书 → 跨样本关联同一开发者
contacts QQ/微信/Telegram/邮箱/手机号(带去误报)
permissions / components / manifest / crypto 危险权限/导出组件/基础指纹/弱加密

富化器(默认联网,--offline 可关,结果缓存)whois(注册人/注册商)、icp(ICP 备案主体)、asn(IP 归属云厂商/IDC)。

「是否建议调证」分级core/infra.py):命中公有云/主流 SDK/开源 CDN/标准协议/运营商域名 → 「无需调证」;私网/无效 → 「待核」;其余疑似 App 自有 → 「建议调证」。


真机动态补全(unpack / 脱壳、capture / 抓包)

涉诈 App 常加固(DEX 加密、运行时还原),静态拿不到真实 C2。apkscan 提供 device-gated 的动态补全:

fxapk unpack app.apk --out out          # root 设备 + frida-dexdump 脱壳,回灌重分析
fxapk capture <package> --duration 60   # mitmproxy + frida 绕证书绑定,抓运行时端点

无设备/缺工具时不报错:返回 status=skipped,打印可逐条复制的取证手册(装 frida-server、推 CA、注入 SSL unpinning、--extra-dex 回灌等完整步骤)。脱壳得到的 DEX 可用 fxapk analyze app.apk --extra-dex <dump_dir> 并入静态分析,补全加固隐藏的端点/SDK/配置。

云端方案:在 root 真机 / 云手机(华为云手机、阿里无影等原生 ARM 安卓)上跑 frida-server,apkscan 部署在小 Linux VM 上经 ADB 驱动即可。


项目结构

apkscan/
  core/       models / context / apk(androguard 适配) / registry(自动发现) / pipeline / infra / device
  analyzers/  13 个静态分析器(见上表)
  enrichers/  whois / asn / icp
  dynamic/    unpack(脱壳)/ capture(抓包)
  report/     html / json / pdf + templates/
  rules/      *.yaml(SDK/加固/支付/配置键/权限等规则库,数据与代码分离)
tests/        324 个单测(FakeContext,离线)
docs/         设计文档

合规边界

本工具仅用于授权的反诈调证 / 安全研究,只做分析与线索提取,不提供任何攻击、绕过、规避检测能力; 加固只识别不脱壳(脱壳为可选的真机取证步骤,需操作者自备授权环境),联网富化仅查公开的 WHOIS / ICP 备案 / ASN 信息。请在合法授权范围内使用。

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fxapk-0.1.2.tar.gz (208.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fxapk-0.1.2-py3-none-any.whl (196.2 kB view details)

Uploaded Python 3

File details

Details for the file fxapk-0.1.2.tar.gz.

File metadata

  • Download URL: fxapk-0.1.2.tar.gz
  • Upload date:
  • Size: 208.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fxapk-0.1.2.tar.gz
Algorithm Hash digest
SHA256 10ffee04287010472aae84484092db5f5dd3d4a595d644aa1560c9b81ca19095
MD5 19eb7b462a0c253d53a9a3ed6cb11c4a
BLAKE2b-256 ae0ad0d3c5d326a4c1196b2add4b9259fdb069c6307ee45c8c563350dc1ae82f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fxapk-0.1.2.tar.gz:

Publisher: release.yml on s-silt/fxapk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fxapk-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: fxapk-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 196.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fxapk-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ff2758d155cde42e7ec7748979df0e9ee024da13819708c8eb62eac626900e36
MD5 349ade550f09d0eda161025ccb096dba
BLAKE2b-256 d85333b8828e6949524020dfdd48d663783021d4d48a8557e1dab2fe1cb4284b

See more details on using hashes here.

Provenance

The following attestation bundles were made for fxapk-0.1.2-py3-none-any.whl:

Publisher: release.yml on s-silt/fxapk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page