{ "info": { "author": "Hapsida @securisec", "author_email": "", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3.7" ], "description": "\n\n\n[![Build Status](https://travis-ci.com/securisec/glorifiedgrep.svg?&branch=master)](https://travis-ci.com/securisec/glorifiedgrep)\n[![Read the Docs](https://img.shields.io/readthedocs/glorifiedgrep.svg?logo=read%20the%20docs)](https://glorifiedgrep.readthedocs.io/en/latest/)\n[![PyPI](https://img.shields.io/pypi/v/glorifiedgrep.svg?logo=python&color=blue)](https://pypi.org/project/glorifiedgrep/)\n\n# [DOCS](https://glorifiedgrep.readthedocs.io/en/latest/)\n\n# Glorified Grep\n\n`glorifiedgrep` is exactly what it sounds like... glorified grep. \n\nWhat motivated this project is seeing lots of tools for static analysis of applications specially Android applications. But most of these applications are all pretty much doing the same thing.\n\nThe aim of `glorifiedgrep` is to have a python module that allows the creation of such tools without the extra heavy lifting required. Underneath, `glorifiedgrep` uses [ripgrep](https://github.com/BurntSushi/ripgrep) to search for predefined patterns. \n\nBest effort has been given to document and reference all the methods. Refer to the docs for further documentation.\n\nWhat can `glorifiedgrep` be used for? \n- Analyze applications pythonically\n- Build tools for application analysis without the overhead of writing all of your own code.\n\nIf you are not sure what a method is called, glorified grep offers a helper method to search for them. \n```\nfrom glorifiedgrep import GlorifiedAndroid\ng = GlorifiedAndroid('/path/to/apk')\nprint(g.search_methods('webview'))\n\n['code_webview_content_access', 'code_webview_database', 'code_webview_debug_enabled', 'code_webview_file_access', 'code_webview_get_request', 'code_webview_js_enabled', 'code_webview_post_request', 'owasp_webview_cert_pinning', 'owasp_webview_loadurl', 'owasp_webview_native_function', 'owasp_webview_ssl_ignore']\n```\n\n## Hard requirements\n`glorifiedgrep` has one hard dependency. ripgrep. It will attempt to load `rg` from path, but this can be overwritten using `rg_path` paramter in the class. Refer to the docs for more info. \n\n## Install\n### Pypi\n**Developed using python 3.7**\nIt is recommended that you use virtualenv to install as some dependencies might break your other libs.\n```\npip3 install glorifiedgrep\n```\n### Dev build\n```\ngit clone https://github.com/securisec/glorifiedgrep.git\ncd glorifiedgrep\npip install .\n```\n#### OSX\n`libmagic` is required. Easiest way to install it is `brew install libmagic`\n\n## Coverage\n### Android\nCurrently, `glorifiedgrep` supports Android APK analysis OOB. It takes an apk file path, decompiles it using jadx, and then performs various analysis depending on the methods called.\n\nThe **GlorifiedAndroid** class does support flexiblity.\n- If you dont want to use the built in req of jadx, and want to use your pwn decompiler, then you can use\n ```\n from glorifiedgrep.android import CodeAnalysis\n ```\n This class takes *source_path* as a paramter. The source_path should include all of you decompiled java codes.\n- It also supports the concept of projects. By default, **GlorifiedAndroid** class will will setup all the output into `/tmp/GlorifiedAndroid/` directory. This can be overwritten using the `output_dir` parameter. In the future, if the `apk_path` and `output_dir` parameters are both specified, then it will not try to decompile again.\n#### Android sub modules\n`glorifiedgrep` offers the following Android sub modules that can be used independantly of the main **GlorifiedAndroid** class. Invoke as `from glorifiedgrep.android import ClassName`\n- **CertAnalysis**: Perform analysis on an Android RSA signing cert. Takes the path to the cert as an argument.\n- **CodeAnalysis**: Perform code analysis on a directory that contains the decompiled java classes. Takes the path to the source directory as an argument.\n- **ManifestAnalysis**: Perform analysis on the Android application manifest file. Takes path to the manifest file as an argument.\n- **OtherAnalysis**: Perform other source code related analysis.\n- **OWASPAnalysis**: Perform source code analysis based on OWASP MASVS. \n- There are a few other modules that are available which includes *malware*, *utils* and *react*. Refer to the docs for more information. \n\n#### Usage\n```\nfrom glorifiedgrep import GlorifiedAndroid\nglory = GlorifiedAndroid('/path/to/apk')\n```\n\n### dotNet\nNot implemented yet\n\n### JS\nNot implemented yet\n\n## Tested on\n- Ubuntu\n- OSX\n- Does not work properly on **Windows**\n\n# Pull requests\nAll pull requests must accompany test cases. If not, they will be rejected.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "glorifiedgrep", "package_url": "https://pypi.org/project/glorifiedgrep/", "platform": "", "project_url": "https://pypi.org/project/glorifiedgrep/", "project_urls": null, "release_url": "https://pypi.org/project/glorifiedgrep/0.9.5/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.9.5" }, "last_serial": 5569630, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "665664c27d9cecaf0ae210d5625db84a", "sha256": "06bc3d372526cadb2e148b290a0cdabfdf7f4b82dc5014193cd12bd2f08125a7" }, "downloads": -1, "filename": "glorifiedgrep-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "665664c27d9cecaf0ae210d5625db84a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13666, "upload_time": "2019-06-30T17:27:55", "url": "https://files.pythonhosted.org/packages/ed/49/cb1216be2c5c5a2086753249b2c40744f973278753305ace4103fb760a2d/glorifiedgrep-0.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3fafd5d770453d39e0605d9e77c6d82", "sha256": "3f124b5b4f4293e32bae60fc3d33cf54c47a4a4e1f8ffa96171c4428ed065d95" }, "downloads": -1, "filename": "glorifiedgrep-0.9.0.tar.gz", "has_sig": false, "md5_digest": "f3fafd5d770453d39e0605d9e77c6d82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1092, "upload_time": "2019-06-30T17:27:58", "url": "https://files.pythonhosted.org/packages/da/36/715f5765296fb025c160b40275303cefcce0f3f2482a385c2382afda21a8/glorifiedgrep-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "dbc37fdb13f8cab7f059ff77ba7a6879", "sha256": "deb38faf1e72bfb763050aec4fe417a24530a802608bd4d90d20b622bd31a32e" }, "downloads": -1, "filename": "glorifiedgrep-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dbc37fdb13f8cab7f059ff77ba7a6879", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 62740, "upload_time": "2019-07-02T21:40:22", "url": "https://files.pythonhosted.org/packages/68/0e/a049633e5f74b3928a4e8d09a695f4100b40ce1140c47b02011d2ec32694/glorifiedgrep-0.9.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "504e2a91933c8aff48e7eba51314249c", "sha256": "39301d524f03fbd96ae74e4bc45a0e392c86d4eaff612552dc0e00a03ee3d8e4" }, "downloads": -1, "filename": "glorifiedgrep-0.9.1.tar.gz", "has_sig": false, "md5_digest": "504e2a91933c8aff48e7eba51314249c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45331, "upload_time": "2019-07-02T21:40:24", "url": "https://files.pythonhosted.org/packages/13/96/6fb121d68c8198221a6c6515107eae70ebb1c4a61a7a03561cb47d97d0b9/glorifiedgrep-0.9.1.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "2ce43316fdcb963dd917d658ef4291a9", "sha256": "691f638e6cf0bfef310958ee2579d9359454ec3d715106b3ffe7b48250f57418" }, "downloads": -1, "filename": "glorifiedgrep-0.9.3.tar.gz", "has_sig": false, "md5_digest": "2ce43316fdcb963dd917d658ef4291a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45803, "upload_time": "2019-07-05T14:36:38", "url": "https://files.pythonhosted.org/packages/c9/e8/ed1e403c095e48082e3a543b5b276be3eb1268b9b2835ad101b04951961c/glorifiedgrep-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "71b8c062f1bc54255006f530ead63764", "sha256": "4a9b7474f23eaac4cb5d1dd991f8a479281d005bd0515cd5abb0cfd8a43cbc03" }, "downloads": -1, "filename": "glorifiedgrep-0.9.4.tar.gz", "has_sig": false, "md5_digest": "71b8c062f1bc54255006f530ead63764", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47815, "upload_time": "2019-07-09T23:57:52", "url": "https://files.pythonhosted.org/packages/ff/09/9f8d3f371557b55d311a8f561d2e97cdb4f5011289d19ffd771fb104b144/glorifiedgrep-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "fd6b87c1918826d5f68357620130dc40", "sha256": "ac2efa4f5bfa49125112dbad29cd3f63e94559a401f5bce04fce6dcf09e15dad" }, "downloads": -1, "filename": "glorifiedgrep-0.9.5.tar.gz", "has_sig": false, "md5_digest": "fd6b87c1918826d5f68357620130dc40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47990, "upload_time": "2019-07-22T23:32:48", "url": "https://files.pythonhosted.org/packages/31/fd/f43193801b3a28f63dd8f5b75280b8b3155f750392828d69543bb2bf68ef/glorifiedgrep-0.9.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fd6b87c1918826d5f68357620130dc40", "sha256": "ac2efa4f5bfa49125112dbad29cd3f63e94559a401f5bce04fce6dcf09e15dad" }, "downloads": -1, "filename": "glorifiedgrep-0.9.5.tar.gz", "has_sig": false, "md5_digest": "fd6b87c1918826d5f68357620130dc40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47990, "upload_time": "2019-07-22T23:32:48", "url": "https://files.pythonhosted.org/packages/31/fd/f43193801b3a28f63dd8f5b75280b8b3155f750392828d69543bb2bf68ef/glorifiedgrep-0.9.5.tar.gz" } ] }