我正在尝试使用 python 编写一些汇编代码来重定向二进制流。这是给学校的。我相处得很好,但我被困住了,唉。我已经确定了我需要执行的汇编代码操作列表,问题出在 movl 调用中。我需要这个看起来像movl $0x0, add(%ebp)
。我正在使用 python 将这些十六进制值存储在一个环境变量中,并计划跳转到该环境变量位置。所以,我做类似的事情
export CODE=`python -c 'print "somehex...\xc7\x45\xfc\x00\x00\x00\x00...morehex"'`
这很好地将它存储在 env 中,当我在 gdb 中跳转到它时,我可以 x/i 汇编代码。除了这个 movl 调用,一切看起来都很好。与其将 \x00 读取为参数(假定为 $0x0),不如将接下来的 4 个十六进制值作为源的参数。我找不到任何其他方式以我选择的 python 方式将 $0x0 写入 movl 的 src 参数。
任何帮助将不胜感激。已经为此工作了一段时间。