Android包标识符

ak-apkid的Python项目详细描述


阿普基德

Build StatusPyPIPyPI - Python VersionPyPI - FormatPyPI - License

APKiD为您提供有关APK是如何制作的信息。它识别 许多编译器、打包程序、模糊处理程序和其他奇怪的东西。它是 PEiD适用于Android。在

Screen Shot 2019-05-07 at 10 55 00 AM

屏幕截图2019-05-07上午10:55

有关此工具的用途的详细信息,请查看:

安装

不幸的是,在将pull request合并到 附属国。以下是您的操作方法:

git clone --recursive -b "v3.10.0" https://github.com/VirusTotal/yara-python.git /tmp/yara-python
cd /tmp/yara-python/yara
curl https://patch-diff.githubusercontent.com/raw/VirusTotal/yara/pull/1073.patch | git am
cd ..
python setup.py build --enable-dex
python setup.py install

如果没有Yara的这个补丁,dexlib1检测规则也会失败 任何依赖字符串大小的规则。在

如果不需要这个补丁,下面是安装方法。首先,安装 yara-python--enable-dex编译Yara的DEX模块:

^{pr2}$

最后,安装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.1.0 :: from RedNaga :: rednaga.io
[*] example.apk!classes.dex
 |-> compiler : dx

使用

usage: apkid [-h] [-v] [-t TIMEOUT] [-r] [--scan-depth SCAN_DEPTH]
             [--entry-max-scan-size ENTRY_MAX_SCAN_SIZE] [--typing {magic,filename,none}] [-j]
             [-o DIR]
             [FILE [FILE ...]]

APKiD - Android Application Identifier v2.1.0

positional arguments:
  FILE                                       apk, dex, or directory

optional arguments:
  -h, --help                                 show this help message and exit
  -v, --verbose                              log debug messages

scanning:
  -t TIMEOUT, --timeout TIMEOUT              Yara scan timeout (in seconds)
  -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

output:
  -j, --json                                 output scan results in JSON format
  -o DIR, --output-dir DIR                   write individual results here (implies --json)

提交新的打包程序/编译器/模糊处理程序

如果你遇到APKiD无法识别的APK或DEX,请 打开GitHub问题并告诉我们:

  • 你认为它是什么-模糊,包装等
  • 文件哈希(MD5、SHA1、SHA256)

我们愿意接受你对“某物”的任何概念 很有趣,所以不要只局限于包装工, 编译器或模糊处理程序。如果有一个有趣的反反汇编程序, 反虚拟机,反*把戏,请发一个问题。在

欢迎拉取请求。如果要提交新规则,请确保 包含APK/DEX的文件哈希,以便我们可以检查规则。在

许可证

此工具具有双重许可证:商业许可证 对于封闭源代码项目和可以在开放环境中使用的GPL许可证 源软件。在

根据您的需要,您必须选择其中一个并遵循它 政策。每种许可证类型的策略和协议的详细信息 在LICENSE.COMMERCIALLICENSE.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.py到 重新编译它们。在

对于维护人员

本节是为包维护人员准备的。在

要更新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学会如何翻译 使用链接到RestructedText的图像进行标记:

..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。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在AlertDialog builder标题右侧放置图标   安装weblogic server12时发生java获取错误。1在windows 10上   java无法导入:安卓。支持v7。小装置。Android Studio中的RecyclerView   java Android应用程序等待通知奇怪行为   java如何比较ArrayList中的整数元素?   java Quartz属性不会触发Quartz作业   java轻松地将许多JavaFX属性绑定到UINode   Maven插件管理器导致java错误消息的原因是什么?   JAXB解组错误后java文件被阻止   java如何在spark kafka流中创建消费者组并将消费者分配给消费者组   java Gps lat&long随机显示非常不准确的结果   java使用assest文件夹文件在Android上执行shell命令   java如何在客户端使用javascript提取文本   java扩展描述的distincts之和   java重写默认Spring数据REST配置   java SQL未命名参数语法   二进制搜索任务的java真实解决方案   java在一个多模块多数据源项目中,用什么正确的方式来指示将哪个数据源注入我的DAOs?