加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

第三章:挖掘SimpleSection.o

发布时间:2020-12-14 03:59:23 所属栏目:大数据 来源:网络整理
导读:? ? ?1.查看.o目标文件用objdump 命令, 参数“-h"就是把ELF文件的各个段的基本信息打印出来。也可以使用-X打印更多的信息。 段的属性,Size是段的长度,FIle off 是段开始的位置,每个段的第二行中“CONTENTS”、“ALLOC”等表示段的属性,“CONTENTS”表示

? ? ?1.查看.o目标文件用objdump 命令, 参数“-h"就是把ELF文件的各个段的基本信息打印出来。也可以使用-X打印更多的信息。

段的属性,Size是段的长度,FIle off 是段开始的位置,每个段的第二行中“CONTENTS”、“ALLOC”等表示段的属性,“CONTENTS”表示

该段在文件中存在。虽然BSS段没有“CONTENTS”,表示它实际在ELF文件中并不存在。


? ? 2. 可以用Size命令来查看ELF文件的代码段、数据段和BSS段的长度;


? 3. .data段保存的是那些已经初始化了的全局变量和局部静态变量。

? ? ? .rodata.段存放的是只读数据,一般是程序里面的只读变量(如const修饰的变量)和字符串常量。

? ? ? .bss段存放的是未初始化的全局变量和局部静态变量。

? ? ? ?出来这些常用的段,ELF文件还有其他的段,用于保存与程序相关的其它信息。这些段的名字都是“.”作为前缀,表示这些表达名字是

系统保留的,应用程序也可以使用一些非系统保留 的名字作为段名。比如可以加以个music的段,用于存放歌曲,但是应用程序自定义的

段名不能使用“.” 作为前缀,否则很容易和系统保留段名冲突。

? ? ? GCC提供一个扩展机制,使得程序员可以指定变量或者函数所处的段:

? ? ? ?__attribute__( (section("Bar")) ) int global = 23; 注意attribute前后各有两个下划线。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读