Android包标识符
apkid的Python项目详细描述
apkid
apkid提供有关apk是如何制作的信息。它确定 许多编译器、打包程序、混淆器和其他奇怪的东西。是的 PEiD适用于android。
屏幕截图2019-05-07上午10:55
有关此工具的更多信息,请查看:
安装
首先,使用--enable-dex安装yara python来编译yara的dex 模块:
pip install wheel pip wheel --wheel-dir=/tmp/yara-python --build-option="build" --build-option="--enable-dex" git+https://github.com/VirusTotal/yara-python.git@v3.10.0 pip install --no-index --find-links=/tmp/yara-python yara-python
然后,安装apkid:
pip install apkid
Docker
你也可以用 Docker!当然,这个 需要安装Git和Docker。
以下是如何使用Docker:
git clone https://github.com/rednaga/APKiD cd APKiD/ docker build . -t rednaga:apkid docker/apkid.sh ~/reverse/targets/android/example/example.apk [+] APKiD 2.0.3 :: from RedNaga :: rednaga.io [*] example.apk!classes.dex |-> compiler : dx
用法
usage: apkid [-h] [-j] [-t TIMEOUT] [-o DIR] [-r] [--scan-depth SCAN_DEPTH] [--entry-max-scan-size ENTRY_MAX_SCAN_SIZE] [--typing {magic,filename,none}] [-v] [FILE [FILE ...]] APKiD - Android Application Identifier v2.0.3 positional arguments: FILE apk, dex, or directory optional arguments: -h, --help show this help message and exit -j, --json output scan results in JSON format -t TIMEOUT, --timeout TIMEOUT Yara scan timeout (in seconds) -o DIR, --output-dir DIR write individual results here (implies --json) -r, --recursive recurse into subdirectories --scan-depth SCAN_DEPTH how deep to go when scanning nested zips --entry-max-scan-size ENTRY_MAX_SCAN_SIZE max zip entry size to scan in bytes, 0 = no limit --typing {magic,filename,none} method to decide which files to scan -v, --verbose log debug messages
提交新的打包程序/编译器/混淆器
如果你遇到一个apk或dex,apkid无法识别,请 打开GitHub问题并告诉我们:
- 您认为它是什么–模糊、打包等。
- 文件哈希(md5、sha1、sha256)
我们愿意接受你对“某物”的任何概念 有趣的是“要发现,所以不要只局限于包装工, 编译器或混淆器。如果有有趣的反汇编程序, 反虚拟机,反*伎俩,请发表意见。
欢迎拉取请求。如果要提交新规则,请确保 包括apk/dex的文件散列,以便我们可以检查规则。
许可证
此工具有两个许可证:一个合适的商业许可证 对于封闭源代码项目和可以在开放环境中使用的GPL许可证 源软件。
根据你的需要,你必须选择其中一个并遵循它 政策。每种许可证类型的策略和协议的详细信息 在LICENSE.COMMERCIAL和 LICENSE.GPL文件。
黑客攻击
如果要安装最新版本以进行更改, 开发自己的规则,等等,只需克隆这个存储库,编译 规则,并以可编辑模式安装包:
git clone https://github.com/rednaga/APKiD cd APKiD ./prep-release.py pip install -e .[dev,test]
如果上述操作不起作用,则由于权限错误,取决于 本地计算机和安装了python的位置,请尝试指定 --user标志。如果不使用虚拟的 环境:
pip install -e .[dev,test] --user
如果您更新了任何规则,请确保运行prep-release.pyto 重新编译它们。
对于维护人员
本节是为软件包维护人员准备的。
要更新pypi包:
./prep-release.py readme rm -f dist/* python setup.py sdist bdist_wheel twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
更新生成的README.rst,直到pandoc学会如何翻译 使用链接到RestructuredText的图像进行标记:
..image:: https://travis-ci.org/rednaga/APKiD.svg?branch=master :target:https://travis-ci.org/rednaga/APKiD..image:: https://img.shields.io/pypi/v/apkid.svg :target:https://pypi.python.org/pypi/apkid..image:: https://img.shields.io/pypi/pyversions/apkid.svg :target:https://pypi.python.org/pypi/apkid..image:: https://img.shields.io/pypi/format/apkid.svg :target:https://pypi.python.org/pypi/apkid..image:: https://img.shields.io/pypi/l/apkid.svg :target:https://pypi.python.org/pypi/apkid
有关详细信息,请参见Packaging Projects。