python跨版本字节码汇编程序
xasm的Python项目详细描述
注:目前处于早期测试阶段
一个跨python字节码汇编程序
简介
pythonxasm模块有用于汇编的例程,并且有一个命令 为几个不同版本的python汇编字节码。
以下是一些潜在用途:
- 当没有源 时,用现有的Python字节码制作小补丁。
- 编写更高效的字节码
- 编写指令级优化编译器
- 尝试并了解python字节码
- foiluncompyle6能够反汇编字节码
这将支持python 1.5到3.6左右的字节码。
代码需要Python2.7或更高版本。
程序集文件
将填写更多详细信息,但有些原则:
- python程序集的首选扩展名是.pyasm
- assembly设计用于输出pydisasm
- 装配文件标签位于行的开头 以冒号结尾,例如“end if:”
- 程序集文件中的指令偏移被忽略,不需要 参加
- 在那些涉及偏移量的指令中,如果 操作数是一个整数,正是这个值将用于操作数。否则 我们将查找标签并与之匹配
安装
它使用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)将执行上述步骤。
用法
运行
pyxasm <Python assembler file>
使用帮助pyxasm–帮助
另请参见
- https://github.com/rocky/python-xdis:跨python版本disassemble
- https://github.com/rocky/python-xasm/blob/master/HOW-TO-USE.rst:如何编写汇编程序文件