首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python修改ELF文件

如何使用Python修改ELF文件
EN

Stack Overflow用户
提问于 2019-10-04 16:54:14
回答 1查看 2.5K关注 0票数 1

我正在尝试使用python修改ELF文件的.text段。我成功地获取了.text字段,这样我就可以简单地更改我想要的位。问题是,pyelftools不提供任何从ELF对象生成ELF文件的方法。

因此,我尝试了以下几点:

我用c创建了一个简单的helloworld程序,对其进行了编译并获得了a.out文件。然后我使用pyelftools对它进行了反汇编。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-02 11:26:40

要更改/编辑ELF文件的任何部分,我只需使用pyelftoolsELFFile类方法来获取字段的(i) offset和(ii) size

因此,在获得字段(A,B)的值边距后,我简单地将该文件视为普通的二进制文件。我所做的唯一一件事就是执行一个file.seek(A),将文件指针移动到我想要修改的特定部分。

代码语言:javascript
复制
def edit_elf_section(elf_object,original_file,section):
    
    elf_section = elf_object.get_section_by_name(section) 
                                             # !! IMPORTANT !!
    section_start = elf_section['sh_offset'] # NOT sh_addr. sh_addr is the logical address of the section
    section_end   = section_start + elf_section['sh_size']
    
    original_file.seek(section_start)

    # Write whatever you want to the file #

    assert(original_file.tell() <= section_end) # You've written outside the section

要验证结果,可以使用diff二进制文件查看这些文件是否相同

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58233027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档