- 博客(8)
- 资源 (8)
- 收藏
- 关注
原创 readelf——2—— -h --file-header Display the ELF file header
-h显示文件头应该是最简单的一个参数,我想没有之一了,只有下面这一点点的输出:ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's co...
2019-04-16 20:54:51 189
原创 readelf——1——环境搭建(编译)
上一个阶段翻译完了man elf,下面准备学习一下readelf,addr2lime,objdump等elf相关工具。之所以从readelf入手,是因为我感觉它最合适吧,原因也不清楚,因为哪个工具我都谈不上精通,选择一个马上行动才是最重要的。学习readelf,当然要知道它是从哪里来的。不是这个计划我真的不知道它们这些神秘的神器是来自哪里,linux内核是没有它们源码的。它们都是来自binut...
2019-04-16 20:40:46 564
原创 关于sizeof()使用的另外一种写法—— sizeof * 变量
今天在阅读代码的时候再次遇到了sizeof()的另外一种使用方法,然后自己进行了尝试,现在也仅仅是知道含义,深层次的含义此刻并不得而知,如果读者您知道,希望您能评论一下,谢谢。在readelf源码中有get_64bit_section_headers()这样一个函数,里面在进行长度比较的时候有下面这样的一段代码:Elf64_External_Shdr * shdrs;Elf_Inte...
2019-04-16 20:20:11 426
翻译 8——man elf的翻译——Notes (Nhdr)
Notes (Nhdr) ELF notes允许附加任意信息供系统使用。它们大部分情况是被内核文件使用(e_type of ET_CORE), 但是很多projects定义它们自己的扩展。例如,GNU tool chain使用ELF notes将信息从链接器 传递到C库。 Note sections 包含一系列的notes(请看下面的定义)。Ea...
2019-04-05 13:58:07 441
翻译 7——man elf的翻译——动态标签 (Dynamic tags(Dyn))
.dynamic section保存的是一系列和动态链接相关的结构。d_tag成员控制着d_un结构体的内容。 typedef struct { Elf32_Sword d_tag; union { Elf32_Word d_val; Elf32_Addr ...
2019-04-05 10:54:56 550
翻译 6——man elf的翻译——重定位条目 (Relocation entries(Rel & Rela))
重定位是一种用符号定义连接符号引用的过程。可重定位文件必须拥有描述如何去修改它们section contents的信息,好让 可执行或共享目标文件保存程序镜像的正确信息。可重定位条目就是这些数据。 重定位结构不需要附加信息: typedef struct { Elf32_Addr r_offset; uint32...
2019-04-03 10:23:50 1063
翻译 5——man elf的翻译——字符串和符号表 (String and symbol tables)
字符串和符号表 string table sections保存的是以NULL结尾的字符串序列,通常叫做strings。目标文件使用这些字符串去代表符号和节名字。它们 中的一个字符串被用作到string table section的索引。其中第一个字节,也就是索引号位0的,被赋值‘\0’。同样的,一个字符串表 的最后一个字节也被赋值‘\0’,确保是以NULL结尾。 ...
2019-04-02 09:40:15 516
翻译 4——man elf的翻译——所有Sections说明
各种各样的sections保存了程序和控制信息: .bss 此节保存的是contributes to the program's memory image的未初始化的数据。当然,程序运行起来之后, 系统会把这些数据初始化为零。此节的类型是SHT_NOBITS。参数类型是SHF_ALLOC和SHF_WRITE。 ...
2019-04-01 10:13:53 221
H265(ffmpeg_and_nginx-rtmp).7z
2020-05-20
vim-plugins.zip
2020-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人