{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Natural Language :: English", "Programming Language :: Python" ], "description": "# idaenv - IDAPython Plugin Management\n\nidaenv is a plugin manager for the IDA Pro disassembler. It bridges the gap\nbetween IDA Pro and the greater Python ecosystem of setuptools/virtualenv.\n\nMost Python packages are distributed using setuptools (or perhaps distutils) and\nthe PyPi package repository. However IDA Pro expects extensions to be standalone\nfiles placed in a specific directory. Using idaenv, you can install Python\npackages into a virtual environment using setuptools (or pip), run a single\n\"update\" command, and immediately use plugins, processor modules, or loaders\ncontained in the package.\n\n## Usage\n\nInitialize a virtual environment to use with IDA Pro:\n\n $ mkvirtualenv -p python2 ida\n\nInstall idaenv:\n\n $ cd idaenv\n $ python setup.py install\n\nUpdate the IDAUSR environment variable to include the idaenv plugin directory:\n\n $ export IDAUSR=$HOME/.idapro:$( idaenv prefix )\n\nInstall some idaenv compatible extensions using setup.py or pip. Then use the\nidaenv \"update\" command:\n\n $ pip install ...\n $ idaenv update\n ... TODO include output ...\n\nTo see what plugins are installed, use the \"status\" command.\n\n ... TODO include output ...\n\n## Mechanism\n\nidaenv takes inspiration from the established `console_scripts` mechanism in\nPython. It generates and manages small wrapper scripts that import from an\ninstalled package and then export the interface expected by IDA Pro. For\nexample, plugin wrappers use the following template:\n\n```python\nimport pkg_resources\n\ndef PLUGIN_ENTRY():\n ep = pkg_resources.load_entry_point(%(dist)r, %(group)r, %(name)r)\n return ep()\n```\n\n## Packaging\n\nIn order for idaenv to know where plugins are located inside of a package, they\nhave to be called out in `setup.py` using \"entry points\". For example, the\ndeclaration for keypatch might look like:\n\n```python\nfrom setuptools import setup, find_packages\n\n\nsetup(name='keypatch',\n version=\"0.0\",\n packages=find_packages(exclude=['ez_setup']),\n install_requires=[\n \"keystone-engine\"\n ],\n zip_safe=False,\n entry_points={\n \"idapython_plugins\": [\n \"keypatch=keypatch:Keypatch_Plugin_t\",\n ]\n })\n```\n\nThree different entry point groups are supported:\n\n- `idapython_plugins`\n- `idapython_procs`\n- `idapython_loaders`", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "idaenv", "package_url": "https://pypi.org/project/idaenv/", "platform": "", "project_url": "https://pypi.org/project/idaenv/", "project_urls": null, "release_url": "https://pypi.org/project/idaenv/0.2.0/", "requires_dist": null, "requires_python": "", "summary": "IDA Pro plugin manager.", "version": "0.2.0" }, "last_serial": 4027769, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "9a5a07c5dc508a2c39148d3844dc4bac", "sha256": "d5dcdbc0d7c60361dae275b98fbfb69e92e344257c057880a143f06ea118f700" }, "downloads": -1, "filename": "idaenv-0.1.tar.gz", "has_sig": false, "md5_digest": "9a5a07c5dc508a2c39148d3844dc4bac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5105, "upload_time": "2018-07-03T17:45:59", "url": "https://files.pythonhosted.org/packages/a1/df/869f4563e9764c5b686e57f3502845c1da90eb23f3ad287abc245c75c56e/idaenv-0.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "79c070a73c818c78b13b504715e1260b", "sha256": "5820ec9dfca0f118537d80c8c149a5110d70dbc6f302c1b7f3333f43a885ebc0" }, "downloads": -1, "filename": "idaenv-0.2.0.tar.gz", "has_sig": false, "md5_digest": "79c070a73c818c78b13b504715e1260b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5251, "upload_time": "2018-07-03T20:19:03", "url": "https://files.pythonhosted.org/packages/22/66/8b1635311f9e8722030cf24bc1451d348b5f101a7e841e543804129d0f33/idaenv-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "79c070a73c818c78b13b504715e1260b", "sha256": "5820ec9dfca0f118537d80c8c149a5110d70dbc6f302c1b7f3333f43a885ebc0" }, "downloads": -1, "filename": "idaenv-0.2.0.tar.gz", "has_sig": false, "md5_digest": "79c070a73c818c78b13b504715e1260b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5251, "upload_time": "2018-07-03T20:19:03", "url": "https://files.pythonhosted.org/packages/22/66/8b1635311f9e8722030cf24bc1451d348b5f101a7e841e543804129d0f33/idaenv-0.2.0.tar.gz" } ] }