代码之家  ›  专栏  ›  技术社区  ›  Doug Currie

简单修改elf文件的工具?

  •  6
  • Doug Currie  · 技术社区  · 14 年前

    开发工具已经切换到ELF,所以我需要重新实现CRC补丁程序。在此之前,我想我应该寻找一个现有的工具来做这件事。编译器是基于gcc的,但是我看不到 ld nm readelf 那就行了。谷歌(Google)的搜索结果并不理想。

    纳米

    我可以用 libelf 和自定义代码,但在此之前,它已经存在了吗?

    有没有更好的方法来实现我的目标,将可执行文件的CRC放入可执行文件中,以便应用程序可以使用它?

    2 回复  |  直到 14 年前
        1
  •  4
  •   Matthew Slattery    14 年前

    如果我理解了您的正确做法,我认为以下方法会奏效:

    • nm 提供要修补的位置的运行时虚拟地址;
    • readelf -S
    • 将两者缝合在一起(例如,使用您最喜欢的脚本语言的几行代码)可以获得要修补的文件中的偏移量。
        2
  •  0
  •   nategoose    14 年前

    我不确定这是否可行,但您可以安排它,以便将对象文件中的CRC位置设置为外部符号的地址 . 最后一个链接步骤通过在一个elf文件中链接来满足这个外部符号,这个文件除了指定外什么都不做

    这仍然是相当黑客,我不确定它是否容易做到(因为这是对工具的滥用)。