pr0*_*gma 7 executable function elf relocation disassembly
假设我fn在.textELF64可执行文件的某个部分中有某个功能.有没有办法知道fn函数所在的ELF文件的起始位置(以字节为单位)?请注意,我不需要知道它在链接时重定位的VA,而是它在ELF文件中的位置.
通常是的,如果您可以直接解析ELF文件或组合objdump和readelf等工具的输出.
更具体:您可以使用'readelf -S file ' 获取.text部分的偏移量和虚拟地址- 将其写下来.此外,您可以使用'readelf -s file ' 列出符号,只要您的可执行文件未被剥离,并且您的函数是可见的(不是静态的或在匿名命名空间中),那么您应该找到您的函数及其虚拟地址.
因此,您可以计算偏移量
fn symbol offset = fn symbol VA - .text VA + .text offset
多数民众赞成你想用常用工具"脱机".如果你没有访问未经剥离的ELF文件会更加困难,并且由于只有部分ELF文件保留在内存中,如果没有添加"离线"技巧的某些信息,可能是不可能的.