【发布时间】:2018-10-21 05:38:12
【问题描述】:
我想知道如何简单地将汇编指令插入到已编译的 ELF 二进制文件中。我不想对它进行十六进制编辑或类似的东西。
【问题讨论】:
-
好吧,如果你想修改二进制文件,你必须“hexedit”。
-
您可能会发现 Agner Fog 的 Object file converter and disassembler 很有用。 ELF fmt,反汇编 -> ASM 输出,修改和组装 -> ELF fmt.
-
@m0skit0:不,你没有;您可以以可编写脚本的非交互方式替换或附加字节,例如
printf $'\xf3\x90'' | dd of=myfile conv=notrunc bs=1 seek=12345用 x86pause指令 (rep nop) (未经测试)替换字节偏移 12345 处的两个字节。或者写一个 C 程序到lseek+write。这显然不如使用十六进制编辑器完成一次性任务方便,但确实允许您编写脚本/程序来为多个系统上的同一个文件执行此操作。 -
给自己弄一份“Ida”(hex-rays.com/products/ida),学会使用它,你就会终生受益。 :-)
-
你可以接受什么样的解决方案?
标签: linux debugging assembly elf disassembly