zydis库的python绑定

py-dis的Python项目详细描述


Pydis

pydis是Zydis disassembler library的python绑定。

importpydisinstructions=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'instruction_pointer=0x007FFFFFFF400000forinstructioninpydis.decode(instructions,instruction_pointer):print(instruction)

输出:

push rcx
lea eax, [rbp-0x01]
push rax
push [rbp+0x0C]
push [rbp+0x08]
call [0x008000007588A5B1]
test eax, eax
js 0x007FFFFFFF42DB15

该模块使用与zydis相同的字段名,但使用snake_case而不是camelcase除外。

要求

pydis需要python版本>;=3.6。该软件包已经在运行cpython的macos、linux和windows上进行了测试。自从 pydis使用ctypes与zydis接口,它可能在其他解释器上工作,也可能不在其他解释器上工作。

安装

pip install py-dis

或者您可以从源代码构建,如下所述。

建筑

macos和linux机器需要cmake和c编译器才能构建zydis。Windows计算机将需要可视化 工作室。pydis不使用默认python安装提供的python模块之外的任何python模块。

安装的工具运行时:python setup.py build install将生成zydis并安装包。

用法

目前正在编制文件。现在示例脚本pydisinfo是 最好的地方寻找例如用法。

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

推荐PyPI第三方库


热门话题
java在ArrayList中比较数字   java在Kotlin中使异步调用同步   让“Scala编程”junit示例在IntelliJ中工作的java问题   java Servlet侦听器未在ContextListener中设置属性   将Microsoft SQL Server数据库连接到我的Java项目   加载资源时出现java“需要注册工厂”异常   java如何使用POI检查excel中的重复记录?   java如何更改机器生成的代码   java如何确保重写的方法是同步的   用Spring编写Hibernate时的java XML奥秘   java管理mysql数据库中存储的用户权限   java如何运行。来自Javascript的jar方法   java我想在Web应用程序中进行身份验证&对桌面应用程序使用相同的凭据。我该怎么做?