{ "info": { "author": "Caleb Fenton & Tim Strazzere", "author_email": "rednaga@protonmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "License :: Other/Proprietary License", "Natural Language :: English", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Security", "Topic :: Utilities" ], "description": "APKiD\n=====\n\n|Build Status| |PyPI| |PyPI - Python Version| |PyPI - Format| |PyPI -\nLicense|\n\nAPKiD gives you information about how an APK was made. It identifies\nmany compilers, packers, obfuscators, and other weird stuff. It\u2019s\n`PEiD `__ for Android.\n\n.. figure:: https://user-images.githubusercontent.com/1356658/57322793-49be9c00-70b9-11e9-84da-1e64d9459a8a.png\n :alt: Screen Shot 2019-05-07 at 10 55 00 AM\n\n Screen Shot 2019-05-07 at 10 55 00 AM\n\nFor more information on what this tool can be used for, check out:\n\n- `Android Compiler\n Fingerprinting `__\n- `Detecting Pirated and Malicious Android Apps with\n APKiD `__\n- `APKiD: PEiD for Android\n Apps `__\n\nInstalling\n==========\n\nFirst, install yara-python with ``--enable-dex`` to compile Yara\u2019s DEX\nmodule:\n\n.. code:: bash\n\n pip install wheel\n 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\n pip install --no-index --find-links=/tmp/yara-python yara-python\n\nThen, install apkid:\n\n.. code:: bash\n\n pip install apkid\n\nDocker\n------\n\nYou can also run APKiD with\n`Docker `__! Of course, this\nrequires that you have git and Docker installed.\n\nHere\u2019s how to use Docker:\n\n.. code:: bash\n\n git clone https://github.com/rednaga/APKiD\n cd APKiD/\n docker build . -t rednaga:apkid\n docker/apkid.sh ~/reverse/targets/android/example/example.apk\n [+] APKiD 2.0.3 :: from RedNaga :: rednaga.io\n [*] example.apk!classes.dex\n |-> compiler : dx\n\nUsage\n=====\n\n::\n\n usage: apkid [-h] [-j] [-t TIMEOUT] [-o DIR] [-r] [--scan-depth SCAN_DEPTH]\n [--entry-max-scan-size ENTRY_MAX_SCAN_SIZE] [--typing {magic,filename,none}] [-v]\n [FILE [FILE ...]]\n\n APKiD - Android Application Identifier v2.0.3\n\n positional arguments:\n FILE apk, dex, or directory\n\n optional arguments:\n -h, --help show this help message and exit\n -j, --json output scan results in JSON format\n -t TIMEOUT, --timeout TIMEOUT Yara scan timeout (in seconds)\n -o DIR, --output-dir DIR write individual results here (implies --json)\n -r, --recursive recurse into subdirectories\n --scan-depth SCAN_DEPTH how deep to go when scanning nested zips\n --entry-max-scan-size ENTRY_MAX_SCAN_SIZE max zip entry size to scan in bytes, 0 = no limit\n --typing {magic,filename,none} method to decide which files to scan\n -v, --verbose log debug messages\n\nSubmitting New Packers / Compilers / Obfuscators\n================================================\n\nIf you come across an APK or DEX which APKiD does not recognize, please\nopen a GitHub issue and tell us:\n\n- what you think it is \u2013 obfuscated, packed, etc.\n- the file hash (either MD5, SHA1, SHA256)\n\nWe are open to any type of concept you might have for \u201csomething\ninteresting\u201d to detect, so do not limit yourself solely to packers,\ncompilers or obfuscators. If there is an interesting anti-disassembler,\nanti-vm, anti-\\* trick, please make an issue.\n\nPull requests are welcome. If you\u2019re submitting a new rule, be sure to\ninclude a file hash of the APK / DEX so we can check the rule.\n\nLicense\n=======\n\nThis tool is available under a dual license: a commercial one suitable\nfor closed source projects and a GPL license that can be used in open\nsource software.\n\nDepending on your needs, you must choose one of them and follow its\npolicies. A detail of the policies and agreements for each license type\nare available in the `LICENSE.COMMERCIAL `__ and\n`LICENSE.GPL `__ files.\n\nHacking\n=======\n\nIf you want to install the latest version in order to make changes,\ndevelop your own rules, and so on, simply clone this repository, compile\nthe rules, and install the package in editable mode:\n\n.. code:: bash\n\n git clone https://github.com/rednaga/APKiD\n cd APKiD\n ./prep-release.py\n pip install -e .[dev,test]\n\nIf the above doesn\u2019t work, due to permission errors dependent on your\nlocal machine and where Python has been installed, try specifying the\n``--user`` flag. This is likely needed if you\u2019re not using a virtual\nenvironment:\n\n.. code:: bash\n\n pip install -e .[dev,test] --user\n\nIf you update any of the rules, be sure to run ``prep-release.py`` to\nrecompile them.\n\nFor Maintainers\n===============\n\nThis section is for package maintainers.\n\nTo update the PyPI package:\n\n.. code:: bash\n\n ./prep-release.py readme\n rm -f dist/*\n python setup.py sdist bdist_wheel\n twine upload --repository-url https://upload.pypi.org/legacy/ dist/*\n\nUpdate the generated ``README.rst`` until Pandoc learns how to translate\nMarkdown with images that are links into reStructuredText:\n\n.. code:: rst\n\n .. image:: https://travis-ci.org/rednaga/APKiD.svg?branch=master\n :target: https://travis-ci.org/rednaga/APKiD\n\n .. image:: https://img.shields.io/pypi/v/apkid.svg\n :target: https://pypi.python.org/pypi/apkid\n\n .. image:: https://img.shields.io/pypi/pyversions/apkid.svg\n :target: https://pypi.python.org/pypi/apkid\n\n .. image:: https://img.shields.io/pypi/format/apkid.svg\n :target: https://pypi.python.org/pypi/apkid\n\n .. image:: https://img.shields.io/pypi/l/apkid.svg\n :target: https://pypi.python.org/pypi/apkid\n\nFor more information see `Packaging\nProjects `__.\n\n.. |Build Status| image:: https://travis-ci.org/rednaga/APKiD.svg?branch=master\n :target: https://travis-ci.org/rednaga/APKiD\n.. |PyPI| image:: https://img.shields.io/pypi/v/apkid.svg\n :target: https://pypi.org/project/apkid/\n.. |PyPI - Python Version| image:: https://img.shields.io/pypi/pyversions/apkid.svg\n :target: https://pypi.org/project/apkid/\n.. |PyPI - Format| image:: https://img.shields.io/pypi/format/apkid.svg\n :target: https://pypi.org/project/apkid/\n.. |PyPI - License| image:: https://img.shields.io/pypi/l/apkid.svg\n :target: https://pypi.org/project/apkid/\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rednaga/APKiD", "keywords": "android analysis reversing malware apk dex dalvik", "license": "GPL & Commercial", "maintainer": "", "maintainer_email": "", "name": "apkid", "package_url": "https://pypi.org/project/apkid/", "platform": "", "project_url": "https://pypi.org/project/apkid/", "project_urls": { "Homepage": "https://github.com/rednaga/APKiD" }, "release_url": "https://pypi.org/project/apkid/2.0.3/", "requires_dist": [ "yara-python (==3.10.0)", "argparse", "mypy ; extra == 'dev'", "pypandoc ; extra == 'dev'", "delayed-assert ; extra == 'test'", "factory-boy ; extra == 'test'", "mock ; extra == 'test'", "pytest ; extra == 'test'", "pytest-cov ; extra == 'test'", "pytest-factoryboy ; extra == 'test'", "pytest-flask ; extra == 'test'", "pytest-runner ; extra == 'test'", "tox ; extra == 'test'" ], "requires_python": "", "summary": "Android Package Identifier", "version": "2.0.3" }, "last_serial": 5345066, "releases": { "0.9.2": [ { "comment_text": "", "digests": { "md5": "da56eb6ffb4ab0f8474934dfbc87a7ee", "sha256": "a0025100398a209df9be750652cf10c690ce171cfc7f3d96e05f673da5a398a3" }, "downloads": -1, "filename": "apkid-0.9.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "da56eb6ffb4ab0f8474934dfbc87a7ee", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 24609, "upload_time": "2016-07-25T02:08:53", "url": "https://files.pythonhosted.org/packages/95/87/919246ba87ea7292c7c01f8d1c80b73631b978320825ed3912a90035a187/apkid-0.9.3-py2.py3-none-any.whl" } ], "0.9.3": [], "0.9.4": [ { "comment_text": "", "digests": { "md5": "68ba56677ccf92f50b95008d1f548633", "sha256": "c8d959624fcce2f8916d3e2bf0d760407aa0ed53dca717146251ef169aa49d5b" }, "downloads": -1, "filename": "apkid-0.9.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68ba56677ccf92f50b95008d1f548633", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 28574, "upload_time": "2016-09-25T21:39:46", "url": "https://files.pythonhosted.org/packages/78/50/d7bd0565b99331954158bff089987a8869b0697e5931875a30c6e7403029/apkid-0.9.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa7ef05b2c20a2c6df192311a7eeb083", "sha256": "1b4580f0653e065fa31318b3813229c3a57dd2e89837feb590723585865fd5e4" }, "downloads": -1, "filename": "apkid-0.9.4.tar.gz", "has_sig": false, "md5_digest": "aa7ef05b2c20a2c6df192311a7eeb083", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40738, "upload_time": "2016-09-25T21:39:43", "url": "https://files.pythonhosted.org/packages/d3/4d/542418f125024b8afe57e18e19316f7c3cc4161756d6fd7fab07baa078df/apkid-0.9.4.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "7e67dbb7c74e39de1e0c497a1e8038a7", "sha256": "01c607996e7c7ce2832c12dc6cee169f6cc7908663ebd47824b7da306ff5fd84" }, "downloads": -1, "filename": "apkid-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e67dbb7c74e39de1e0c497a1e8038a7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 38674, "upload_time": "2017-03-09T19:21:14", "url": "https://files.pythonhosted.org/packages/70/af/fff737d812289e22013e9de2abd7c24d4e09888f6cf88f566afaf5263412/apkid-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b95d07b778eea9ac38100565746a776", "sha256": "04a5e9e1c96f41caf1da229b178628c9e5bf295a260f58f2a54f0172b2538c36" }, "downloads": -1, "filename": "apkid-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3b95d07b778eea9ac38100565746a776", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51030, "upload_time": "2017-03-09T19:20:56", "url": "https://files.pythonhosted.org/packages/3e/26/ef77e754648644af8b41521ee1e2ecfe309027d8986901a46e308dfe189d/apkid-1.0.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "e0891f6d2e9f37f2c4677f9f332064a7", "sha256": "80da81a28867ca766a61ae029a6176e82d9992d9e8185c022dcfd1969d8ab282" }, "downloads": -1, "filename": "apkid-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e0891f6d2e9f37f2c4677f9f332064a7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52475, "upload_time": "2018-07-14T15:52:39", "url": "https://files.pythonhosted.org/packages/a2/d6/4b59a9ef908981fffa519d801e04c165ed3848251beb33c4f9dea3f65c37/apkid-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d44bb9475ccfd419659cade807545c9", "sha256": "5b563b87a6a240d15f4ce32089ed099863a29f312166559b60edd52de46536f8" }, "downloads": -1, "filename": "apkid-1.2.1.tar.gz", "has_sig": false, "md5_digest": "7d44bb9475ccfd419659cade807545c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68501, "upload_time": "2018-07-14T15:52:40", "url": "https://files.pythonhosted.org/packages/a0/35/5588ebfbc787b7cc2ed25def36888a534e1e7e3bc58afe310f2e8209596c/apkid-1.2.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "140ace166d6505b97ada1c8446372f02", "sha256": "b1218737ca7afdb07ecc68dcb48daba274ef86d570a37f64b5ce95a705031893" }, "downloads": -1, "filename": "apkid-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "140ace166d6505b97ada1c8446372f02", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17049, "upload_time": "2019-05-07T20:47:38", "url": "https://files.pythonhosted.org/packages/13/58/e70a54bd42ced9624dd1e3b62fa8851ad1fde36a1e4fdb6f07cd3859c41f/apkid-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "461b10856f9f549b7b36de4edc30dbca", "sha256": "d5ce148e328b0cd8107768aaa7fd952110c0c8acfefc1afec61d096a357cf84b" }, "downloads": -1, "filename": "apkid-2.0.0.tar.gz", "has_sig": false, "md5_digest": "461b10856f9f549b7b36de4edc30dbca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84057, "upload_time": "2019-05-07T20:47:40", "url": "https://files.pythonhosted.org/packages/e3/02/e603dcbcd0419d5ab9d89f8f60e24b7d699d771ad66c171568dbfb3294a5/apkid-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "4ba1939418c0f637670cfc0016d58a3b", "sha256": "8d1e4a316591b69f100468be55a4d9232588c17ba4757322756f2389d47cb1f8" }, "downloads": -1, "filename": "apkid-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ba1939418c0f637670cfc0016d58a3b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 81159, "upload_time": "2019-05-08T14:34:03", "url": "https://files.pythonhosted.org/packages/59/1f/09a93017ca173d6d3321909049b95997f91c47dfc3482452586f6ffa0a27/apkid-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e9e2aecabc8ceb5857e3904a00f8bae", "sha256": "ee7a02be5ba41a66213a5e160348117d4136a91bd775c2e0aa33ebc5c29f07b1" }, "downloads": -1, "filename": "apkid-2.0.1.tar.gz", "has_sig": false, "md5_digest": "2e9e2aecabc8ceb5857e3904a00f8bae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84061, "upload_time": "2019-05-08T14:34:05", "url": "https://files.pythonhosted.org/packages/7e/b0/6e9efdcc70a44b91b1228a8908f4009f69ed151749b68257a4cab0d40259/apkid-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "3d251f083afdb4d750647f8d233f41eb", "sha256": "fcef8334f1532135673e4872e55137f10e43007c0210d62b9b91b23eef6efdc8" }, "downloads": -1, "filename": "apkid-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d251f083afdb4d750647f8d233f41eb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 81251, "upload_time": "2019-05-15T05:20:48", "url": "https://files.pythonhosted.org/packages/5d/49/d8bc54982dc1a27c6e3c25a5f4c05d46d102eab3e033f096dc8154f83f2b/apkid-2.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf8b8257b2fa9164d6f05dd6d0520a3c", "sha256": "e9a658c84262e209d78c3d92f5a3112aa847124e5fe1069021f30d17a92a3725" }, "downloads": -1, "filename": "apkid-2.0.2.tar.gz", "has_sig": false, "md5_digest": "bf8b8257b2fa9164d6f05dd6d0520a3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84136, "upload_time": "2019-05-15T05:20:51", "url": "https://files.pythonhosted.org/packages/69/77/ea76eb282c66b0c21ffc62d22e89a90aa35482113a810943dfe72f3530bc/apkid-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "b669741710e7bf98320e1853fd78a728", "sha256": "846520f77341c42757aeb9ff0fbbe902214be719e870edf855721c18eb761bdd" }, "downloads": -1, "filename": "apkid-2.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b669741710e7bf98320e1853fd78a728", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 81581, "upload_time": "2019-06-01T00:50:51", "url": "https://files.pythonhosted.org/packages/ac/85/1bca460c38af3183db7d20252c49bb58c3cb8c5de179c17246317599e14d/apkid-2.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "043d5ef16776a8e916f5ad8e0dcf4e21", "sha256": "b6f907b23f3c66d9bf2623e023463be799d12d88cc163d67a75af903897e91e8" }, "downloads": -1, "filename": "apkid-2.0.3.tar.gz", "has_sig": false, "md5_digest": "043d5ef16776a8e916f5ad8e0dcf4e21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84471, "upload_time": "2019-06-01T00:50:53", "url": "https://files.pythonhosted.org/packages/1e/6f/a0a739c635bb34f5fb71081abaa8f99128efdd78e196b87ddb69caa5f02f/apkid-2.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b669741710e7bf98320e1853fd78a728", "sha256": "846520f77341c42757aeb9ff0fbbe902214be719e870edf855721c18eb761bdd" }, "downloads": -1, "filename": "apkid-2.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b669741710e7bf98320e1853fd78a728", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 81581, "upload_time": "2019-06-01T00:50:51", "url": "https://files.pythonhosted.org/packages/ac/85/1bca460c38af3183db7d20252c49bb58c3cb8c5de179c17246317599e14d/apkid-2.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "043d5ef16776a8e916f5ad8e0dcf4e21", "sha256": "b6f907b23f3c66d9bf2623e023463be799d12d88cc163d67a75af903897e91e8" }, "downloads": -1, "filename": "apkid-2.0.3.tar.gz", "has_sig": false, "md5_digest": "043d5ef16776a8e916f5ad8e0dcf4e21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84471, "upload_time": "2019-06-01T00:50:53", "url": "https://files.pythonhosted.org/packages/1e/6f/a0a739c635bb34f5fb71081abaa8f99128efdd78e196b87ddb69caa5f02f/apkid-2.0.3.tar.gz" } ] }