{ "info": { "author": "Kyle", "author_email": "kyle@novogen.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: MacOS", "Operating System :: Microsoft", "Operating System :: Unix", "Programming Language :: C", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Disassemblers" ], "description": "# pydis\n\nPydis is a python binding for the [Zydis disassembler library](https://github.com/zyantific/zydis).\n\n\n```python\nimport pydis\n\ninstructions = b'\\x51\\x8d\\x45\\xff\\x50\\xff\\x75\\x0c\\xff\\x75\\x08\\xff\\x15\\xa0\\xa5\\x48\\x76\\x85\\xc0\\x0f\\x88\\xfc\\xda\\x02\\x00'\ninstruction_pointer = 0x007FFFFFFF400000\n\nfor instruction in pydis.decode(instructions, instruction_pointer):\n print(instruction)\n```\nOutput:\n```assembly\npush rcx\nlea eax, [rbp-0x01]\npush rax\npush [rbp+0x0C]\npush [rbp+0x08]\ncall [0x008000007588A5B1]\ntest eax, eax\njs 0x007FFFFFFF42DB15\n```\n\nThe module uses the same field names as Zydis with the exception that snake_case is used instead of camelCase.\n\n## Requirements\nPydis requires a python version >=3.6. The package has been tested on macOS, linux, and windows running cpython. Since \npydis uses `ctypes` to interface with zydis it may or may not work on other interpreters.\n\n## Installing\n```bash\npip install py-dis\n```\nor you can build from source as described below.\n\n## Building\nMacOS and linux machines will need cmake and a C compiler in order to build Zydis. Windows machines will need Visual \nStudios. Pydis does not use any python modules beyond ones provided by a default python installation.\n\nWith the tooling installed running: `python setup.py build install` will build Zydis and install the package.\n\n## Usage\nDocumentation is currently being worked on. For now the example script [pydisinfo](../master/scripts/pydisinfo) is\nthe best place to look for example usage.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "py-dis", "package_url": "https://pypi.org/project/py-dis/", "platform": "", "project_url": "https://pypi.org/project/py-dis/", "project_urls": null, "release_url": "https://pypi.org/project/py-dis/0.3/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Python bindings for Zydis library", "version": "0.3" }, "last_serial": 4422843, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "a03ad723271bd00054f980d7ac234b23", "sha256": "36423ece2213e1df74bf411f482f948007260105bd3bc760d8f1f1103ab0eaed" }, "downloads": -1, "filename": "py_dis-0.1-cp36-none-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "a03ad723271bd00054f980d7ac234b23", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 138654, "upload_time": "2018-06-17T03:15:37", "url": "https://files.pythonhosted.org/packages/cd/46/6023fd3046548c0920391ac20635165e9a7d40c17b44631127820ca0205f/py_dis-0.1-cp36-none-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "66afb197956e1bf3d97d805421489ee9", "sha256": "54daaeb8a01802f35e1c165bc2c8cc7bc9ebac37d0b856e2169d57c501a09e0b" }, "downloads": -1, "filename": "py_dis-0.1-cp36-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "66afb197956e1bf3d97d805421489ee9", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 150981, "upload_time": "2018-06-17T03:15:39", "url": "https://files.pythonhosted.org/packages/b7/ba/1632d9d7bc8c24afa287deb48e621da1265849dcba05c0b124f2cceda939/py_dis-0.1-cp36-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "9f32b73c532f48bc4a9ba5ece9bca6f7", "sha256": "ec0c949eda80a111515ee51a2d36ed4f275c30fe3f3919fa27c2c994b8c74c66" }, "downloads": -1, "filename": "py_dis-0.1.tar.gz", "has_sig": false, "md5_digest": "9f32b73c532f48bc4a9ba5ece9bca6f7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28401, "upload_time": "2018-06-17T03:15:40", "url": "https://files.pythonhosted.org/packages/16/a4/d1b705cd769d474c327df009e0469a5f44bbfe24bee18baca29bceb47dc3/py_dis-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "12f44c7237714042e8d0ecf03d2b74f1", "sha256": "9d7cfec6c71d69723d4ac96d1e7b369493bdc578f219ad38098863c48a3bcf54" }, "downloads": -1, "filename": "py_dis-0.2-cp36-none-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "12f44c7237714042e8d0ecf03d2b74f1", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 149175, "upload_time": "2018-06-23T14:42:58", "url": "https://files.pythonhosted.org/packages/1f/60/71d4e49af094f1b139ca4774431bff9fba03317e0b99395eeb07a27ca348/py_dis-0.2-cp36-none-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "ae9ab96134628bf23a81759d7d7c018d", "sha256": "32a6f126e8829627c847e54e67a62e58b8e622503d6e2fcdb68e5f17681ee68e" }, "downloads": -1, "filename": "py_dis-0.2-cp36-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "ae9ab96134628bf23a81759d7d7c018d", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 160174, "upload_time": "2018-06-23T14:43:00", "url": "https://files.pythonhosted.org/packages/d1/f9/77ae9eeb0b0cff1cd4db62e4f9cdbe8f44a35e2eaeddf8c2b04d914fec9d/py_dis-0.2-cp36-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "117d0003bdedb1fc8c2d529c54878196", "sha256": "2728000f7eda398a43c5479c456b764f0255304a71d695c6911871a31c89f22e" }, "downloads": -1, "filename": "py_dis-0.2-cp36-none-win_amd64.whl", "has_sig": false, "md5_digest": "117d0003bdedb1fc8c2d529c54878196", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 139344, "upload_time": "2018-06-23T14:43:02", "url": "https://files.pythonhosted.org/packages/7a/f3/37a2b84ff81d96ec3dd3d9461aa8cd057546e2f10f7e94bf397fd9093112/py_dis-0.2-cp36-none-win_amd64.whl" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "cacce8ea5ace73f6c1ac0c45a37ac3c2", "sha256": "b931810c77aff5b049b0d31c183b0b6b6f33be5f1689bbf1a9a139afdeb18210" }, "downloads": -1, "filename": "py_dis-0.3-cp36-none-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "cacce8ea5ace73f6c1ac0c45a37ac3c2", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 149597, "upload_time": "2018-10-27T20:46:17", "url": "https://files.pythonhosted.org/packages/22/3a/400a3ac5b002aadec195b4c89cfad8f8e2ef63b6d928704676ee9b9ed629/py_dis-0.3-cp36-none-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "193cca58effb49cb2ced5b4d2b9d290b", "sha256": "a50b03f4187a7b3640c8b856ca2beb056b1a8d09b9a6e576cae922e2c40f0f53" }, "downloads": -1, "filename": "py_dis-0.3-cp36-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "193cca58effb49cb2ced5b4d2b9d290b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 160893, "upload_time": "2018-10-27T20:46:19", "url": "https://files.pythonhosted.org/packages/ea/10/fb5461df42d6210265bfedc6b7efe1c82b98e5b6104bf4df2ac593b1fb8e/py_dis-0.3-cp36-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "fb6bcd9a3599ad261abbb69ced186619", "sha256": "e41677ed1ee13c8c220a4e66c40fd0c464858fc7c9364f321708a7abfd911ff5" }, "downloads": -1, "filename": "py_dis-0.3-cp36-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "fb6bcd9a3599ad261abbb69ced186619", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 160651, "upload_time": "2018-10-27T20:46:21", "url": "https://files.pythonhosted.org/packages/50/03/4112e1acbb84b847f8023d07c5449229535290c770c5bada41ed6292be39/py_dis-0.3-cp36-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "0181af3200657da54101e6df279867cb", "sha256": "5fdd326f45288a52a16397dbb13dcd1e21fa1621bf685f602e547ffb7bd7823e" }, "downloads": -1, "filename": "py_dis-0.3-cp36-none-win32.whl", "has_sig": false, "md5_digest": "0181af3200657da54101e6df279867cb", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 139775, "upload_time": "2018-10-27T20:46:23", "url": "https://files.pythonhosted.org/packages/9f/63/2725af721c8b20a2d3696a186b19500c509d78959e4c39eea64a66e6131c/py_dis-0.3-cp36-none-win32.whl" }, { "comment_text": "", "digests": { "md5": "51c4da8146f59b989489eba3a6e62231", "sha256": "1949a4284976156691f0f6a6b76a740e695ee12d979b00864573c1bac654586c" }, "downloads": -1, "filename": "py_dis-0.3-cp36-none-win_amd64.whl", "has_sig": false, "md5_digest": "51c4da8146f59b989489eba3a6e62231", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 139700, "upload_time": "2018-10-27T20:46:25", "url": "https://files.pythonhosted.org/packages/08/3b/b79759368244a3364c429b58427210da9676794f2f49cd0a04c859ade3fa/py_dis-0.3-cp36-none-win_amd64.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cacce8ea5ace73f6c1ac0c45a37ac3c2", "sha256": "b931810c77aff5b049b0d31c183b0b6b6f33be5f1689bbf1a9a139afdeb18210" }, "downloads": -1, "filename": "py_dis-0.3-cp36-none-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "cacce8ea5ace73f6c1ac0c45a37ac3c2", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 149597, "upload_time": "2018-10-27T20:46:17", "url": "https://files.pythonhosted.org/packages/22/3a/400a3ac5b002aadec195b4c89cfad8f8e2ef63b6d928704676ee9b9ed629/py_dis-0.3-cp36-none-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "193cca58effb49cb2ced5b4d2b9d290b", "sha256": "a50b03f4187a7b3640c8b856ca2beb056b1a8d09b9a6e576cae922e2c40f0f53" }, "downloads": -1, "filename": "py_dis-0.3-cp36-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "193cca58effb49cb2ced5b4d2b9d290b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 160893, "upload_time": "2018-10-27T20:46:19", "url": "https://files.pythonhosted.org/packages/ea/10/fb5461df42d6210265bfedc6b7efe1c82b98e5b6104bf4df2ac593b1fb8e/py_dis-0.3-cp36-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "fb6bcd9a3599ad261abbb69ced186619", "sha256": "e41677ed1ee13c8c220a4e66c40fd0c464858fc7c9364f321708a7abfd911ff5" }, "downloads": -1, "filename": "py_dis-0.3-cp36-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "fb6bcd9a3599ad261abbb69ced186619", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 160651, "upload_time": "2018-10-27T20:46:21", "url": "https://files.pythonhosted.org/packages/50/03/4112e1acbb84b847f8023d07c5449229535290c770c5bada41ed6292be39/py_dis-0.3-cp36-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "0181af3200657da54101e6df279867cb", "sha256": "5fdd326f45288a52a16397dbb13dcd1e21fa1621bf685f602e547ffb7bd7823e" }, "downloads": -1, "filename": "py_dis-0.3-cp36-none-win32.whl", "has_sig": false, "md5_digest": "0181af3200657da54101e6df279867cb", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 139775, "upload_time": "2018-10-27T20:46:23", "url": "https://files.pythonhosted.org/packages/9f/63/2725af721c8b20a2d3696a186b19500c509d78959e4c39eea64a66e6131c/py_dis-0.3-cp36-none-win32.whl" }, { "comment_text": "", "digests": { "md5": "51c4da8146f59b989489eba3a6e62231", "sha256": "1949a4284976156691f0f6a6b76a740e695ee12d979b00864573c1bac654586c" }, "downloads": -1, "filename": "py_dis-0.3-cp36-none-win_amd64.whl", "has_sig": false, "md5_digest": "51c4da8146f59b989489eba3a6e62231", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": ">=3.6", "size": 139700, "upload_time": "2018-10-27T20:46:25", "url": "https://files.pythonhosted.org/packages/08/3b/b79759368244a3364c429b58427210da9676794f2f49cd0a04c859ade3fa/py_dis-0.3-cp36-none-win_amd64.whl" } ] }