Python字节码中的扩展参数
我有一个Python字节码文件,但没有原始的.py文件。我试着运行它。但是,它会引发一个错误Python字节码中的扩展参数,python,python-3.x,reverse-engineering,bytecode,Python,Python 3.x,Reverse Engineering,Bytecode,我有一个Python字节码文件,但没有原始的.py文件。我试着运行它。但是,它会引发一个错误[1]5811分段错误python flag5.pyc。我知道,如果我删除下面的所有的代码> ExtDeDug ARG,它将是一个列表:“代码> A= [ 1,12,921737,…,1,12] < /COD>。但是,在字节码中有许多 ExpDeldAg,它们在 LoopyOnthist指令的中间。 因此,(1)它可以是什么python代码? (2) 如何计算BUILD\u LIST大小以避免分段错误
[1]5811分段错误python flag5.pyc
。我知道,如果我删除下面的所有的代码> ExtDeDug ARG<代码>,它将是一个列表:“代码> A= [ 1,12,921737,…,1,12] < /COD>。但是,在字节码中有许多<代码> ExpDeldAg<代码>,它们在(2) 如何计算
BUILD\u LIST
大小以避免分段错误
LOAD_CONST (1)
LOAD_CONST (12)
EXTENDED_ARG 1 (256)
LOAD_CONST (9)
LOAD_CONST (217)
LOAD_CONST (376)
EXTENDED_ARG 1 (256)
...
LOAD_CONST (1)
LOAD_CONST (12)
EXTENDED_ARG 9 (2304)
EXTENDED_ARG 2467 (631552)
BUILD_LIST 631690
我正在使用Python3.8.0。根据:
EXTENDED_ARG(ext)
前缀任何操作码,其参数太大,无法放入默认的一个字节ext
保存一个附加字节,作为参数中的高位。对于每个操作码,最多允许三个前缀EXTENDED_ARG
,形成从两个字节到四个字节的参数
您是如何获得发布的反汇编输出的?(是的,这是相关的。)还有,这个字节码文件是从哪里来的,它是如何被破坏的?如果我们知道这一点,我们就有更好的机会扭转局面,或者至少挽救更多的数据。谢谢你的评论。我将xdis和xasm与命令``pydisasm--asm``一起使用,以获得反汇编输出。