我知道的唯一库是elfesteem(在Miasm中使用)。但是,必须有其他人。那么,用于静态修改ELF可执行文件的库或框架是什么?
#1 楼
我只是偶然发现了这个ERESI项目。该项目本身看起来非常雄心勃勃,并且主要支持Intel和Sparc处理器,并且对其他处理器也有一定支持。还有很多工具可能会派上用场。它确实有一个特定的工具听起来像是否完全符合要求,还有很多其他相关工具:Evarista:正在进行的静态二进制程序转换器
完全用ERESI语言实现。
Patchelf可能会方便地修改elf中指定的链接器或rpath:
PatchELF是一个用于修改ELF可执行文件的动态链接器和RPATH的小实用程序。此外,还有关于injectso的演示,它似乎与elf二进制文件的静态和动态修补有关。诚然,静态二进制文件的覆盖范围是有限的,但这是可以预料的,因为它只是作为一个库插入程序会更加复杂。因此,您可能可以将Evarista用作指南,并使用自己的库编写更符合您目标的东西。
libelfsh:ELFsh,Kernsh,
使用的二进制操作库E2dbg和Etrace。
libe2dbg:在
debuggee程序中运行的嵌入式调试器库。
libasm:智能拆卸引擎(x86,sparc,mips, arm)
,它为指令及其操作数提供了语法和语义属性。
libmjollnir:控制流分析和指纹识别库。
librevm:运行时ERESI虚拟机,它包含框架的中央运行时环境实现。
libstderesi:标准ERESI库,包含多个
100个内置分析命令。
libaspect:方面库使用其API来反映ERESI语言中的代码和数据结构。
libedfmt:ERESI调试格式库,可以转换
dwarf和stabs调试格式转换为ERESI调试格式。
libetrace:Etrace所基于的ERESI跟踪器库。
libkernsh:Kernnel shell库是Kernsh所基于的内核可访问性
库。
libgdbwrap:GDB串行协议库,出于兼容性考虑
在ERESI和GDB / VMware / Bochs / Qemu / OpenOCD之间。
#2 楼
我认为您最好的选择是采用低级ELF库并编写一个小程序来完成您想要的事情。我喜欢ELF工具链项目。我发现该团队整理的测试和文档非常好。无论最终使用哪种工具,您都绝对想阅读有关为Linux创建真正的青少年ELF可执行文件的旋风教程,该教程讨论了如何将ELF可执行文件修改得尽可能小(您的目的可能有所不同,但有很多东西一般课程)。评论
+1可链接到精彩的“ teensy ELF”教程。几年前,我看到了这个,却忘记了。
–st01
4月22日9:58
评论
好读;)也许有点太客气了,我在这个SE子站点中到处都看到了错误和0xC0000022L。 Anw有没有更好的工具(最好是python)atm? ERESI在接受的答案中建议似乎不再得到积极维护。
据我所知,除此页面中引用的库外,我不知道其他任何库...可能还有其他项目,但与此处列出的那些库相比,它们的功能较弱或使用起来比较隐晦。无论如何,如果您证明我错了,我将非常高兴!
是否有关于如何打开Mism的ELF和修改装配的最小教程?