gpt4 book ai didi

python - 有没有办法只使用 python 库生成 ELF BINARY?

转载 作者:太空宇宙 更新时间:2023-11-04 00:13:06 27 4
gpt4 key购买 nike

有什么方法可以仅使用 python 库生成 ELF 二进制文件

我想使用 python 库组装下面的文件。

a.s :

line 1 : .global _start
line 2 : _start:
line 3 : push _STRING1
line 4 : push _STRING2
line 5 : call printf
line 6 : _STRING1:
line 7 : .string "gogo"
line 8 : _STRING2:
line 9 : .string "%s"

我尝试使用两个 python 库 keystonepwntool
但是,它们仅支持与汇编命令对应的机器代码字节发射。
(它没有生成由 elf header 、节 header 等组成的 ELF 二进制文件)

此外,它不支持处理外部库信息。 (例如第5行)


问。我想使用 python 库生成一个完整的 ELF BINARY a.out
有什么可行的方法吗?

最佳答案

I want to assemble the below file

请注意,您的程序是错误定义的:

  • 您调用了 printf,但您不允许初始化 C 运行时。 (如果你想调用任何 libc 函数,你应该让 _start 定义在 crt0.o 中,你的程序应该从 main,而不是 _start)。

  • 您没有正确终止程序(不要调用 exit_exit 或执行 SYS_exit 系统调用)。您可以从 main 返回(libc 提供的 _start 将为您执行 SYS_exit),但您必须_start 返回,当然不会从它的末尾掉到它后面的任何代码或数据。

回到您最初的问题:“手工组装”ELF 文件是可能的——数据就是数据。

但是,这是一项很多的工作(而且是毫无意义的工作),所以您最好直接调用外部汇编器和链接器。

关于python - 有没有办法只使用 python 库生成 ELF BINARY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51799030/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com