Android 010工具读取elf文件头部数据与分析

Android 010工具读取elf文件头部数据与分析

背景

查看elf头的信息,结合010工具查看头信息。

环境

macOS 12.6, 010 12.0.1

读取文件

010打开目标文件libc.so,这个文件是从12系统中导出,在010中打开后是这样的。

Android 010工具读取elf文件头部数据与分析
Xnip2024-03-05_11-05-42

如果没有模板,在Templates中搜索elf,点击安装即可,安装完成后重启010,再打开libc。展开struct file可以看到elf_header,点击这个位置,选中后上面十六进制文件显示区颜色会改变,点击的位置就是上面灰色的位置了。

对比代码读取的信息和elf头部字段的解释

标记了前面e_ident的信息和下面几个常用信息。

Android 010工具读取elf文件头部数据与分析
Xnip2024-03-05_11-18-58

可以看到,010工具查看比较直观,这些信息和c读取到的一致。

下面是ph和sh的头表信息

Android 010工具读取elf文件头部数据与分析
Xnip2024-03-05_11-30-28

ehsize

头大小

Android 010工具读取elf文件头部数据与分析
Xnip2024-03-05_15-36-36

在010editor中查看ELF信息时,Elf64_Half e_ehsize_ELF_HEADER_SIZE 64 34h 2h是表示ELF头部大小的字段的展示。

  • Elf64_Half e_ehsize_ELF_HEADER_SIZE:这是字段的名称,Elf64_Half是字段的类型,e_ehsize_ELF_HEADER_SIZE是字段的标识符。
  • 64:这是字段的值,表示ELF头部的大小是64字节。
  • 34h:这是字段在文件中的偏移位置,h表示这是一个十六进制数,34h等于十进制的52,所以这个字段在文件中的偏移位置是第52个字节。
  • Android 010工具读取elf文件头部数据与分析
    Xnip2024-03-05_15-39-55
  • 2h:这是字段的大小,h表示这是一个十六进制数,2h等于十进制的2,所以这个字段的大小是2字节。这里2字节完整的应该是0x0040,小端。

在c语言中,elf_header.e_ehsize = 0x40是将e_ehsize字段的值设置为0x40,0x40是64的十六进制表示,所以这个值表示ELF头部的大小是64字节,这与010editor中展示的结果是一致的。32位的ELF header占52个字节,64位的ELF header占64个字节。

Android 010工具读取elf文件头部数据与分析
417313-20181022201440705-1728299314




原文始发于微信公众号(安全后厨):Android 010工具读取elf文件头部数据与分析

版权声明:admin 发表于 2024年3月11日 下午6:01。
转载请注明:Android 010工具读取elf文件头部数据与分析 | CTF导航

相关文章