Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
apk-info — APK全功能解析器 | Kitploit
工具/GitHubGitHub/delvinru/apk-info
Android安全静态分析逆向工程取证分析恶意软件分析二进制分析
GitHubdelvinru/apk-info

apk-info

APK全功能解析器

查看仓库
1331720小时39分前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

apk-info

Crates.io Version docs.rs PyPI - Version

一个功能齐全的apk解析器。

特性

  • 一个对恶意软件友好的zip提取器。关于BadPack技术的优秀文章;
  • 一个对恶意软件友好的axml和arsc提取器;
  • 完整的AXML(Android Binary XML)实现;
  • 完整的ARSC(Android Resource)实现;
  • 支持提取APK签名块42中包含的信息:
    • APK签名方案v1;
    • APK签名方案v2;
    • APK签名方案v3;
    • APK签名方案v3.1;
    • 印章块v1和v2;
    • Apk通道块;
    • Packer NG v2;
    • Vasdolly v2
    • Google Play Frosting(有相关计划,但相关信息极为有限);
  • 基于Android OS的实际做法正确提取MainActivity;
  • 提供python 3.10+的绑定及类型注解 - 不再需要# type: ignore;
  • 当然,还是一个快速解析器 - 🙃

快速开始

命令行工具

安装

root@kitploit:~
cargo install apk-info-cli

帮助

root@kitploit:~
A command-line tool to inspect and extract APK files

Usage: apk-info [COMMAND]

Commands:
  show        Show basic information about apk file
  extract     Unpack apk files as zip archive [aliases: x]
  axml        Read and pretty-print binary AndroidManifest.xml
  completion  Generate shell completion
  help        Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

Python

安装

root@kitploit:~
uv pip install apk-info

获取APK基本信息

root@kitploit:~
from apk_info import APK

apk = APK("./path-to-file.apk")
package_name = apk.get_package_name()
main_activities = apk.get_main_activities()
min_sdk = apk.get_min_sdk_version()

print(f"Package Name: {package_name}")
print(f"Minimal SDK: {min_sdk}")

if not main_activities:
    print("apk is not launchable!")
    exit()

print(f"Main Activity: {package_name}/{main_activities[0]}")

获取签名信息

root@kitploit:~
import sys

from apk_info import APK, Signature

if len(sys.argv) < 2:
    print(f"usage: {sys.argv[0]} <apk>")
    sys.exit(1)

file = sys.argv[1]
apk = APK(file)

signatures = apk.get_signatures()
for signature in signatures:
    match signature:
        case Signature.V1() | Signature.V2() | Signature.V3() | Signature.V31():
            for cert in signature.certificates:
                print(f"{cert.subject=} {cert.issuer=} {cert.valid_from=} {cert.valid_until=}")
        case Signature.ApkChannelBlock():
            print(f"got apk channel block: {signature.value}")
        case _:
            print(f"oh, cool, library added some new feature - {signature}")

性能分析

环境:

  • 操作系统:macOS Tahoe 26.0.1 arm64
  • CPU:Apple M3 Pro (12) @ 4.06 GHz

脚本:

  1. 从文件中提取所有可用签名;
  2. 提取包名;
  3. 提取最小SDK版本;
  4. 获取所有Main Activity列表;
  5. 获取应用名称;

apk-info 库:

  • 构建 - release-lto;
  • Python绑定(诚实对比);

测试用例(干净集合):

  • 152个apk文件;
  • 总大小 - 20GB;
  • 日志级别 - warning;
#apk-infoandroguard
1

测试用例(恶意样本集合):

  • 3084个apk文件;
  • 总大小 - 23GB;
  • 日志级别 - warning;

[!IMPORTANT] 该集合包含大量恶意样本,androguard根本无法解析。

#apk-infoandroguard
1

平均速度提升约10倍。

主要优势在于apk-info能够解析比androguard更多的恶意文件。

常见问题

  • 为什么不直接使用androguard?

我几乎所有的项目都源于某些工具使用起来不够方便。Androguard本身是一个很好的工具,但(在我看来)它几乎无法维护,并且不适合生产级代码。由于所有逻辑编写得不够优化,它也不适用于分析大量文件。

  • 我想修改apk,如何使用这个库?

该库仅设计为只读模式,因为我需要一个能够轻松快速提取apk信息的优秀工具。市面上还有许多其他优秀的工具可供修改使用。

致谢

  • androguard
  • apkInspector
下载工具
0.98s user 4.32s system 80% cpu 6.584 total
57.39s user 4.88s system 97% cpu 1:03.85 total
20.96s user 4.23s system 79% cpu 6.486 total57.98s user 5.04s system 97% cpu 1:04.80 total
30.95s user 4.15s system 79% cpu 6.422 total55.56s user 4.48s system 97% cpu 1:01.55 total
2.49s user 4.74s system 73% cpu 9.840 total
141.29s user 6.86s system 98% cpu 2:31.09 total
22.50s user 4.77s system 75% cpu 9.641 total138.04s user 6.32s system 97% cpu 2:27.33 total
32.49s user 4.78s system 75% cpu 9.650 total139.33s user 6.65s system 98% cpu 2:28.87 total