python跨版本字节码反汇编和封送例程

xdis的Python项目详细描述


buildstatusLatest VersionSupported Python Versions

xdis

跨python字节码反汇编程序、字节码和幻数操作包

简介

pythondis模块允许您从 正在运行的python版本。但是字节码呢 不同的版本?

这就是这个包裹的目的。它可以“封送加载”python 来自不同版本python的字节码。命令行程序 pydisasm将显示使用python 3.6反汇编的反汇编输出 习俗。

另外,如果需要修改和编写字节码,这里的例程可以 帮帮忙。有一些例程可以打包和解包只读元组 在python的代码类型中。对于Python2和3之间的互操作性,我们 提供我们自己的代码类型版本,并且我们为 减少编写字节码文件的繁琐。

这个包还具有python字节码魔术的广泛知识。 数字,包括pypy和其他数字,以及如何从 系统系统信息 神奇的价值。

所以如果你想写一个跨版本的汇编程序,或者 字节码级优化器这个包可能也很有用。此外 对于dis提供的指令分类,我们有 在这种情况下有用的附加类别 字节码优化器。

这里的程序接受python 1.3到3.7版本的字节码,或者 所以。代码需要Python2.4或更高版本,并且已经在 运行许多python版本的python。

通过eggs或 在github中使用git的python-2.4分支。

安装

它使用setup.py,因此遵循标准的python例程:

pip install -r requirements.txt
pip install -r requirements-dev.txt
python setup.py install # may need sudo
# or if you have pyenv:
python setup.py develop

还提供了gnu makefile,因此make install(可能是根文件或 sudo)将执行上述步骤。

测试

make check

已经添加了一个gnu makefile来平滑运行右边的设置 命令,并从最快到最慢运行测试。

如果安装了remake,则可以看到所有任务的列表 包括通过remake --tasks进行的测试。

使用量

运行

./bin/pydisasm -h

使用帮助。

作为dis的替代品

xdis还提供了一些支持,作为 python库dis 模块。当您希望使用改进的api时,这可能是可取的 从python 3.4或更高版本的早期python。

例如:

>>> # works in Python 2 and 3
>>> import xdis.std as dis
>>> [x.opname for x in dis.Bytecode('a = 10')]
['LOAD_CONST', 'STORE_NAME', 'LOAD_CONST', 'RETURN_VALUE']

对于格式化的 反汇编或如何显示编译器标志。我们希望你 找到xdis输出更多信息。

另见

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

推荐PyPI第三方库


热门话题
java如何实现出站http响应和后续出站http请求之间的特定间隔   java QueryDSL查找在一天中的某个时间发生的多天事件   java我可以使用ApachePivot而不是Swing吗?   java中的安卓 studio调用方法,没有对象或类名   包含GUI类型实例的java停止EDT   具有复合主键的JavaSpring数据rest   JavaJScrollPane不会在JPanel上滚动   Java如何通过值初始化方法内部的HashMap   csv Java二进制文件格式并没有大大减小文件大小   java LibGDX Box2D防止对象在跳跃后减速   java Android:如何停止所有媒体播放器   主要是字符串之间有什么区别。。。Java中的args和String[]args?   java如何重用jframe而不使其成为新的?   java为什么我的计划作业不能并行执行   java将Osgi项目中的WebSocket与Atmosphere集成