linux elf文件分析

linux elf文件分析

readelf命令,主要3招:

  1. readelf -l objectreadelf —segment object —— 查段信息,探索程序的空间布局。
  2. readelf -s objectreadelf —section object —— 看各部分细节,了解程序的结构。
  3. readelf -h —— 查看ELF文件头。
readelf示例

变身可执行文件,就像CISO一样:

  • .c文件预处理后变.i文件。
  • .i文件编译成.s文件,就是那个ASCII的汇编文本。
  • .s文件经汇编成.o文件,即可重定位目标文件。
  • .o文件最终通过链接器ld变成program,也就是可执行文件。

Segment和Section怎么分?

简单说,Section在汇编里标记代码块起始;而Segment是链接器ld打包好的Section。

segment可以理解成,是打包好的section。因为在链接器(ld)合成可执行过程中,ld操作了各个目标文件中的具有相同特性的section都整理成同一个segment

程序核心由.text(只读)、.data(可读写)、.bss(可读写)三大段组成。

内存布局

最后,Head(堆)和Stack(栈)是程序的基础,而栈的特点是”后进先出”,地址往下减小

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇