Linux ELF格式文件解析之relocation和entry入口点,基于gas汇编语言视角

问题引入:

Linux的elf文件一开始理解起来的确很难,有的人可能会去看《linkers and loaders》,这书的确好,但是没有详细的解释很多细节,尤其是从汇编语言视角。我读了这本书很多地方后还是不明白,然后我又读了IBM360计算机的汇编器设计文档,里面详解了二次扫描汇编器的设计原理,以及relocation概念。但这些依然解决不了我的疑惑,因为困扰我的是一个选项,即ld -Ttext=org,我不明白这个org偏移会对程序产生什么影响,一开始我以为这选项只不过更改了elf的文件头信息,但是我错了,这里面涉及到很复杂的机制。于是我经过很多次试验,终于得出了现在的个人见解,之所以说是个人见解,是因为可能在某些细节我的理解依然不准确,所以希望各位读者能给我指出。在此谢过。如果我的文章能对大家有所帮助,我将倍感荣幸。

首先让我们看看一个简单的汇编程序,

[cpp] view plaincopyprint?

.section .data

a:

.int 2222

.section .text

.globl _start

_start:

mov a,%eax

mov $1,%eax

mov $250,%ebx

int $0x80

这程序很简单,当然,这是用AT&T语法写的。程序简单的把2222存入eax,然后退出,并返回退出码250.

让我们汇编它。

as -o testelf.o testelf.s

下面即将开始链接,注意,我们为了以后看代码更清晰,所以要用到ld的很多选项,-x和-s都用于去掉不必要的符号信息,因为我们这篇博文重点是函数入口点和重定位。

好了,运行命令

ld -o testelf testelf.o -s -x

下面我们用

readelf testelf -a

看看elf可执行文件的详细信息。【为了简洁,我不截图了,直接复制必要的输出部分】

Entry point address:               0x8048074

Program Headers:

Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align

LOAD           0x000000 0x08048000 0x08048000 0x00085 0x00085 R E 0x1000

LOAD           0x000088 0x08049088 0x08049088 0x00004 0x00004 RW  0x1000

北京怎么找富婆包养 内蒙古怎么找富婆包养 吉林怎么找富婆包养 上海怎么找富婆包养 福建怎么找富婆包养 山东怎么找富婆包养 河南怎么找富婆包养 湖北怎么找富婆包养 重庆怎么找富婆包养 贵州怎么找富婆包养 西藏怎么找富婆包养 甘肃怎么找富婆包养 宁夏怎么找富婆包养 西城怎么找富婆包养 朝阳怎么找富婆包养 石景山怎么找富婆包养 门头沟怎么找富婆包养 房山怎么找富婆包养 顺义怎么找富婆包养 蓟县怎么找富婆包养 大兴怎么找富婆包养 密云怎么找富婆包养 和平怎么找富婆包养 河东怎么找富婆包养 河西怎么找富婆包养 河北怎么找富婆包养 津南怎么找富婆包养 北辰怎么找富婆包养 武清怎么找富婆包养 静海怎么找富婆包养 温州怎么找富婆包养 杭州怎么找富婆包养 九江哪里找富婆包养男人 天津哪里找富婆包养男人 山西哪里找富婆包养男人 辽宁哪里找富婆包养男人 黑龙江哪里找富婆包养男人 安徽哪里找富婆包养男人 江西哪里找富婆包养男人 河南哪里找富婆包养男人

Section to Segment mapping:

Segment Sections...

00     .text

01     .data

解释造句一下,我不翻译了,更准确

Offset:This member gives the offset from the beginning of the file at which the first byte of the segment resides.

VirtAddr:This member gives the virtual address at which the first byte of the segment resides in memory.

PhysAddr:On systems for which physical addressing is relevant, this member is reserved for the segment’s physical address. Because System V ignores physical addressing for application湖南哪里找富婆包养男人 广西哪里找富婆包养男人 贵州哪里找富婆包养男人 西藏哪里找富婆包养男人 甘肃哪里找富婆包养男人 宁夏哪里找富婆包养男人 东城哪里找富婆包养男人 朝阳哪里找富婆包养男人 石景山哪里找富婆包养男人 门头沟哪里找富婆包养男人 房山哪里找富婆包养男人 通州哪里找富婆包养男人 顺义哪里找富婆包养男人 蓟县哪里找富婆包养男人 大兴哪里找富婆包养男人 怀柔哪里找富婆包养男人 密云哪里找富婆包养男人 南开哪里找富婆包养男人 河北哪里找富婆包养男人 东丽哪里找富婆包养男人 津南哪里找富婆包养男人 武清哪里找富婆包养男人 杭州哪里找富婆包养男人 温州哪里找富婆包养男人 嘉兴哪里找富婆包养男人 湖州哪里找富婆包养男人 金华哪里找富婆包养男人 衢州哪里找富婆包养男人 丽水哪里找富婆包养男人 芜湖哪里找富婆包养男人淮南哪里找富婆包养男人 淮北哪里找富婆包养男人 安庆哪里找富婆包养男人 滁州哪里找富婆包养男人 宿州哪里找富婆包养男人 宣城哪里找富婆包养男人 莆田哪里找富婆包养男人 泉州哪里找富婆包养男人 常州哪里找富婆包养男人 苏州哪里找富婆包养男人

programs, this member has unspecified contents for executable files and shared objects.

FileSiz:This member gives the number of bytes in the file image of the segment; it may be zero.

MemSiz:This member gives the number of bytes in the memory image of the segment; it may be zero.

【发现再详细的写下去太麻烦了,都是十六进制代码没法写。。我自己当成记笔记算了,各位对不住】

总之就是我用-Ttext可以影响VirtAddr的值,-Ttext 0x22,VirtAddr就变成0x22(不是完全对等,后文有描述),但是entry是0x24,因为有对齐的因素存在。

如果-Ttext 0,那么你会发现出现了页对齐,也就是elf文件以4k的页面对齐,在第一页4k字节内,出了开头是文件头和program header,其余全0,这是为了填补第0和1页之间的空隙。ld一看你要把text段放到文件内第0页偏移0x22处,这会覆盖文件头,于是就把text搞到第1页去了,故而会出现空隙。text在第1页的偏移还是0x22。

Entry point address:               0x24

Program Headers:南通哪里找富婆包养男人 淮安哪里找富婆包养男人 扬州哪里找富婆包养男人 宿迁哪里找富婆包养男人 韶关哪里找富婆包养男人 珠海哪里找富婆包养男人 佛山哪里找富婆包养男人 湛江哪里找富婆包养男人 肇庆哪里找富婆包养男人 梅州哪里找富婆包养男人 河源哪里找富婆包养男人 清远哪里找富婆包养男人 中山哪里找富婆包养男人 潮州哪里找富婆包养男人 云浮哪里找富婆包养男人 新余哪里找富婆包养男人 鹰潭哪里找富婆包养男人 吉安哪里找富婆包养男人 抚州哪里找富婆包养男人 上饶哪里找富婆包养男人 济南哪里找富婆包养男人 淄博哪里找富婆包养男人 东营哪里找富婆包养男人 济宁哪里找富婆包养男人 泰安哪里找富婆包养男人 日照哪里找富婆包养男人 临沂哪里找富婆包养男人 聊城哪里找富婆包养男人 菏泽哪里找富婆包养男人 开封哪里找富婆包养男人 平顶山哪里找富婆包养男人 鹤壁哪里找富婆包养男人 新乡哪里找富婆包养男人 濮阳哪里找富婆包养男人

Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align

LOAD           0x001022 0x00000022 0x00000022 0x00013 0x00013 R E 0x1000

LOAD           0x001038 0x00001038 0x00001038 0x00004 0x00004 RW  0x1000

看,这就是变化,原先是把text和文件头一起加载,所以从偏移0开始,现在只是加载text,所以从第1页偏移0x22开始。当然为了对齐,真正的代码退后了两字节,故入口在0x24.把代码0x001022--0x001034载入内存0x00000022位置,代码入口正好是0x00000024

要是-Ttext 0x128,这样即使text放在第0页也不会覆盖文件头,所以这下ld就把text放在第0页,和文件头之间的空隙几百字节用0补全。program header内容随之调整。

Entry point address:               0x128

Program Headers:

Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align

LOAD           0x000000 0x00000000 0x00000000 0x00139 0x00139 R E 0x1000

LOAD           0x00013c 0x0000113c 0x0000113c 0x00004 0x00004 RW  0x1000

这次是从偏移0开始加载text,连同文件头一起。加载到0x00000000,entry是0x128正好访问到代码开头。

如果用-n禁止ld分页,那么你-Ttext 0会强制ld把text放到第0页的开头,为了避免覆盖文件头,ld会把text强制放到文件头后面。但是data依然在第1页,没有跟在text后面,原因是-Ttext 0没有影响data,除非你用-Tdata 0

基本就是这样,这个选项会影响elf的很多信息,包括文件格局,因为ld会根据参数不同做出调整。 漯河哪里找富婆包养男人
南阳哪里找富婆包养男人
信阳哪里找富婆包养男人
驻马店哪里找富婆包养男人
武汉哪里找富婆包养男人
黄石哪里找富婆包养男人
襄阳哪里找富婆包养男人
鄂州哪里找富婆包养男人
孝感哪里找富婆包养男人
黄冈哪里找富婆包养男人
随州哪里找富婆包养男人
恩施哪里找富婆包养男人
仙桃哪里找富婆包养男人
潜江哪里找富婆包养男人
长沙哪里找富婆包养男人
株洲哪里找富婆包养男人
衡阳哪里找富婆包养男人
常德哪里找富婆包养男人
张家界哪里找富婆包养男人
郴州哪里找富婆包养男人
怀化哪里找富婆包养男人
娄底哪里找富婆包养男人
哈尔滨哪里找富婆包养男人
鸡西哪里找富婆包养男人
双鸭山哪里找富婆包养男人
伊春哪里找富婆包养男人
七台河哪里找富婆包养男人
卢湾哪里找富婆包养男人
长宁哪里找富婆包养男人
普陀哪里找富婆包养男人
虹口哪里找富婆包养男人
南京哪里找富婆包养男人
涪陵哪里找富婆包养男人
大渡口哪里找富婆包养男人
沙坪坝哪里找富婆包养男人
南岸哪里找富婆包养男人
万盛哪里找富婆包养男人
渝北哪里找富婆包养男人
长寿哪里找富婆包养男人
潼南哪里找富婆包养男人
大足哪里找富婆包养男人
璧山哪里找富婆包养男人
城口哪里找富婆包养男人
垫江哪里找富婆包养男人
忠县哪里找富婆包养男人
云阳哪里找富婆包养男人
巫山哪里找富婆包养男人
黔江哪里找富婆包养男人
彭水哪里找富婆包养男人
合川哪里找富婆包养男人
南川哪里找富婆包养男人
自贡哪里找富婆包养男人
泸州哪里找富婆包养男人
绵阳哪里找富婆包养男人
遂宁哪里找富婆包养男人
乐山哪里找富婆包养男人
南充哪里找富婆包养男人
宜宾哪里找富婆包养男人
达州哪里找富婆包养男人
巴中哪里找富婆包养男人
甘孜哪里找富婆包养男人
贵阳哪里找富婆包养男人
遵义哪里找富婆包养男人
铜仁哪里找富婆包养男人
毕节哪里找富婆包养男人
黔南哪里找富婆包养男人
曲靖哪里找富婆包养男人
保山哪里找富婆包养男人
丽江哪里找富婆包养男人
临沧哪里找富婆包养男人
红河哪里找富婆包养男人
西双版纳哪里找富婆包养男人
德宏哪里找富婆包养男人
迪庆哪里找富婆包养男人
山南哪里找富婆包养男人
那曲哪里找富婆包养男人
林芝哪里找富婆包养男人
铜川哪里找富婆包养男人
咸阳哪里找富婆包养男人
延安哪里找富婆包养男人
榆林哪里找富婆包养男人
嘉峪关哪里找富婆包养男人
白银哪里找富婆包养男人
武威哪里找富婆包养男人
平凉哪里找富婆包养男人
庆阳哪里找富婆包养男人
陇南哪里找富婆包养男人
甘南哪里找富婆包养男人
海东哪里找富婆包养男人
黄南哪里找富婆包养男人
果洛哪里找富婆包养男人
海西哪里找富婆包养男人
唐山哪里找富婆包养男人
邢台哪里找富婆包养男人
张家口哪里找富婆包养男人
沧州哪里找富婆包养男人
衡水哪里找富婆包养男人
大同哪里找富婆包养男人
长治哪里找富婆包养男人
朔州哪里找富婆包养男人
运城哪里找富婆包养男人
临汾哪里找富婆包养男人
呼和浩特哪里找富婆包养男人
乌海哪里找富婆包养男人
通辽哪里找富婆包养男人
呼伦贝尔哪里找富婆包养男人
乌兰察布哪里找富婆包养男人
锡林郭勒哪里找富婆包养男人
沈阳哪里找富婆包养男人
鞍山哪里找富婆包养男人
本溪哪里找富婆包养男人
锦州哪里找富婆包养男人
卓新哪里找富婆包养男人
盘锦哪里找富婆包养男人
葫芦岛哪里找富婆包养男人
四平哪里找富婆包养男人
通化哪里找富婆包养男人
松原哪里找富婆包养男人
延边哪里找富婆包养男人
闵行哪里找富婆包养男人
嘉定哪里找富婆包养男人
金山哪里找富婆包养男人
青浦哪里找富婆包养男人
崇明哪里找富婆包养男人
无锡哪里找富婆包养男人
常州哪里找富婆包养男人
南通哪里找富婆包养男人
秀山哪里找富婆包养男人
酉阳哪里找富婆包养男人
江津哪里找富婆包养男人
两江新区哪里找富婆包养男人
商洛哪里找富婆包养男人
龙岩哪里找富婆包养男人
宁德哪里找富婆包养男人
德令哈哪里找富婆包养男人
南汇哪里找富婆包养男人
九华山哪里找富婆包养男人
武夷山哪里找富婆包养男人
武都哪里找富婆包养男人
英德哪里找富婆包养男人
增城哪里找富婆包养男人
都匀哪里找富婆包养男人
兴义哪里找富婆包养男人
玉屏哪里找富婆包养男人
丰润哪里找富婆包养男人
北安哪里找富婆包养男人
潢川哪里找富婆包养男人
襄樊哪里找富婆包养男人
吉首哪里找富婆包养男人
海门哪里找富婆包养男人
江阴哪里找富婆包养男人
仪征哪里找富婆包养男人
太仓哪里找富婆包养男人
启东哪里找富婆包养男人
井冈山哪里找富婆包养男人
白山哪里找富婆包养男人
海河哪里找富婆包养男人
阿拉善盟哪里找富婆包养男人
海拉尔哪里找富婆包养男人
临河哪里找富婆包养男人
秦安哪里找富婆包养男人
蓬莱哪里找富婆包养男人
侯马哪里找富婆包养男人
宁武哪里找富婆包养男人
榆次哪里找富婆包养男人
绥德哪里找富婆包养男人
西昌哪里找富婆包养男人
唐定哪里找富婆包养男人
内蒙古哪里找富婆包养男人
上海哪里找富婆包养男人
福建哪里找富婆包养男人
山东哪里找富婆包养男人
广东哪里找富婆包养男人
四川哪里找富婆包养男人
陕西哪里找富婆包养男人
西城哪里找富婆包养男人
海淀哪里找富婆包养男人
昌平哪里找富婆包养男人
河北哪里找富婆包养男人 内蒙古哪里找富婆包养男人 吉林哪里找富婆包养男人
上海哪里找富婆包养男人 福建哪里找富婆包养男人 山东哪里找富婆包养男人
湖北哪里找富婆包养男人 广东哪里找富婆包养男人 重庆哪里找富婆包养男人
四川哪里找富婆包养男人 云南哪里找富婆包养男人 陕西哪里找富婆包养男人
青海哪里找富婆包养男人 西城哪里找富婆包养男人 丰台哪里找富婆包养男人
海淀哪里找富婆包养男人 宝坻哪里找富婆包养男人 昌平哪里找富婆包养男人
平谷哪里找富婆包养男人 延庆哪里找富婆包养男人 河西哪里找富婆包养男人
红桥哪里找富婆包养男人 西青哪里找富婆包养男人 北辰哪里找富婆包养男人
宁河哪里找富婆包养男人 静海哪里找富婆包养男人 宁波哪里找富婆包养男人
绍兴哪里找富婆包养男人 舟山哪里找富婆包养男人 合肥哪里找富婆包养男人
蚌埠哪里找富婆包养男人 马鞍山哪里找富婆包养男人 铜陵哪里找富婆包养男人
六安哪里找富婆包养男人 厦门哪里找富婆包养男人 三明哪里找富婆包养男人
连云港哪里找富婆包养男人 盐城哪里找富婆包养男人 秦州哪里找秦富婆包养男人
广州哪里找富婆包养男人 深圳哪里找富婆包养男人 汕头哪里找富婆包养男人
江门哪里找富婆包养男人 惠州哪里找富婆包养男人 汕尾哪里找富婆包养男人
阳江哪里找富婆包养男人 东莞哪里找富婆包养男人 萧山哪里找富婆包养男人
揭阳哪里找富婆包养男人 南宁哪里找富婆包养男人 北海哪里找富婆包养男人
来宾哪里找富婆包养男人 九江哪里找富婆包养男人 宜春哪里找富婆包养男人
惠州怎么找富婆包养男人 汕尾怎么找富婆包养男人 汕头怎么找富婆包养男人
青岛哪里找富婆包养男人 洛阳哪里找富婆包养男人 安阳哪里找富婆包养男人
焦作哪里找富婆包养男人 许昌哪里找富婆包养男人 三门峡哪里找富婆包养男人
商丘哪里找富婆包养男人 周口哪里找富婆包养男人 济源哪里找富婆包养男人
十堰哪里找富婆包养男人 荆州哪里找富婆包养男人 咸宁哪里找富婆包养男人
天门哪里找富婆包养男人 神农架哪里找富婆包养男人 湘潭哪里找富婆包养男人
张家界哪里找富婆包养男人 益阳哪里找富婆包养男人 永州哪里找富婆包养男人
湘西哪里找富婆包养男人 齐齐哈尔哪里找富婆包养男人 鹤岗哪里找富婆包养男人
大庆哪里找富婆包养男人 佳木斯哪里找富婆包养男人 黄浦哪里找富婆包养男人
徐汇哪里找富婆包养男人 静安哪里找富婆包养男人 闸北哪里找富婆包养男人
杨浦哪里找杨富婆包养男人 无锡哪里找富婆包养男人 渝中哪里找富婆包养男人
江北哪里找富婆包养男人 九龙坡哪里找富婆包养男人 北碚哪里找富婆包养男人
双桥哪里找富婆包养男人 巴南哪里找富婆包养男人 綦江哪里找富婆包养男人
铜梁哪里找富婆包养男人 荣昌哪里找富婆包养男人 梁平哪里找富婆包养男人
丰都哪里找富婆包养男人 武隆哪里找富婆包养男人 开县哪里找富婆包养男人
奉节哪里找富婆包养男人 巫溪哪里找富婆包养男人 石柱哪里找富婆包养男人
江津哪里找富婆包养男人 永川哪里找富婆包养男人 成都哪里找富婆包养男人
攀枝花哪里找富婆包养男人 德阳哪里找富婆包养男人 广元哪里找富婆包养男人
内江哪里找富婆包养男人 眉山哪里找富婆包养男人 广安哪里找富婆包养男人
雅安哪里找富婆包养男人 阿坝哪里找富婆包养男人 凉山哪里找富婆包养男人
六盘水哪里找富婆包养男人 安顺哪里找富婆包养男人 黔西南哪里找富婆包养男人
黔东南哪里找富婆包养男人 昆明哪里找富婆包养男人 玉溪哪里找富婆包养男人
昭通哪里找富婆包养男人 普洱哪里找富婆包养男人 楚雄哪里找富婆包养男人
文山哪里找富婆包养男人 大理哪里找富婆包养男人 怒江哪里找富婆包养男人
昌都哪里找富婆包养男人 日喀则哪里找富婆包养男人 阿里哪里找富婆包养男人
西安哪里找富婆包养男人 宝鸡哪里找富婆包养男人 渭南哪里找富婆包养男人
汉中哪里找富婆包养男人 兰州市哪里找富婆包养男人 金昌哪里找富婆包养男人
天水哪里找富婆包养男人 张掖哪里找富婆包养男人 酒泉哪里找富婆包养男人
定西哪里找富婆包养男人 临夏哪里找富婆包养男人 西宁哪里找富婆包养男人
海北哪里找富婆包养男人 海南哪里找富婆包养男人 玉树哪里找富婆包养男人
银川哪里找富婆包养男人 邯郸哪里找富婆包养男人 保定哪里找富婆包养男人
廊坊哪里找富婆包养男人 太原哪里找富婆包养男人 阳泉哪里找富婆包养男人
晋城哪里找富婆包养男人 晋中哪里找富婆包养男人 忻州哪里找富婆包养男人
吕梁哪里找富婆包养男人 包头哪里找富婆包养男人 鄂尔多斯哪里找富婆包养男人
巴彦淖尔哪里找富婆包养男人 兴安哪里找富婆包养男人 阿拉善哪里找富婆包养男人
大连哪里找富婆包养男人 抚顺哪里找富婆包养男人 丹东哪里找富婆包养男人
营口哪里找富婆包养男人 辽阳哪里找富婆包养男人 长春哪里找富婆包养男人
铁岭哪里找富婆包养男人 辽源哪里找富婆包养男人 白山哪里找富婆包养男人
白城哪里找富婆包养男人 杨浦哪里找富婆包养男人 宝山哪里找富婆包养男人
浦东新哪里找富婆包养男人 松江哪里找富婆包养男人 南京哪里找富婆包养男人
秀山哪里找富婆包养男人 酉阳哪里找富婆包养男人 承德哪里找富婆包养男人
徐州哪里找富婆包养男人 苏州哪里找富婆包养男人 彭水哪里找富婆包养男人
南川哪里找富婆包养男人 漳州哪里找富婆包养男人 南平哪里找富婆包养男人
南昌哪里找富婆包养男人 格尔木哪里找富婆包养男人 同仁哪里找富婆包养男人
丰都哪里找富婆包养男人 贵池哪里找富婆包养男人 屯溪哪里找富婆包养男人
福安哪里找富婆包养男人 敦煌哪里找富婆包养男人 金昌哪里找富婆包养男人
顺德哪里找富婆包养男人 开平哪里找富婆包养男人 凯里哪里找富婆包养男人
新城哪里找富婆包养男人 伊春哪里找富婆包养男人 武穴哪里找富婆包养男人
常熟哪里找富婆包养男人 江都哪里找富婆包养男人 昆山哪里找富婆包养男人
周庄哪里找富婆包养男人 同里哪里找富婆包养男人 沭阳哪里找富婆包养男人
庐山哪里找富婆包养男人 珲春哪里找富婆包养男人 东胜哪里找富婆包养男人
集宁哪里找富婆包养男人 莱芜哪里找富婆包养男人 离石哪里找富婆包养男人
商州哪里找富婆包养男人 汶川哪里找富婆包养男人 乐山哪里找富婆包养男人
马尔康哪里找富婆包养男人 吉林哪里找富婆包养男人 福建哪里找富婆包养男人
湖北哪里找富婆包养男人 重庆哪里找富婆包养男人 云南哪里找富婆包养男人
青海哪里找富婆包养男人 丰台哪里找富婆包养男人 宝坻哪里找富婆包养男人
平谷哪里找富婆包养男人 天津怎么找富婆包养 山西怎么找富婆包养
辽宁怎么找富婆包养 黑龙江怎么找富婆包养 安徽怎么找富婆包养
江西怎么找富婆包养 湖南怎么找富婆包养 广西怎么找富婆包养
四川怎么找富婆包养 云南怎么找富婆包养 陕西怎么找富婆包养
青海怎么找富婆包养 东城怎么找富婆包养 丰台怎么找富婆包养
海淀怎么找富婆包养 通州怎么找富婆包养 宝坻怎么找富婆包养
大兴怎么找富婆包养 平谷怎么找富婆包养 怀柔怎么找富婆包养
怀柔怎么找富婆包养 密云怎么找富婆包养 延庆怎么找富婆包养
南开怎么找富婆包养 西青怎么找富婆包养 宁河怎么找富婆包养

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 02:20:55

Linux ELF格式文件解析之relocation和entry入口点,基于gas汇编语言视角的相关文章

ELF格式文件符号表全解析及readelf命令使用方法

http://blog.csdn.net/edonlii/article/details/8779075 1. 读取ELF文件头: $ readelf -h signELF Header:  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00  Class:                                                  ELF64  Data:                            

Dicom格式文件解析器

转自:http://www.cnblogs.com/assassinx/archive/2013/01/09/dicomViewer.html Dicom全称是医学数字图像与通讯,这里讲的暂不涉及通讯那方面的问题 只讲*.dcm 也就是diocm格式文件的读取,读取本身是没啥难度的 无非就是字节码数据流处理.只不过确实比较繁琐. 分析: 整体结构先是128字节所谓的导言部分,说俗点就是没啥意义的破数据 跳过就是了,然后是dataElement依次排列的方式 就是一个dataElement接一个d

Linux长格式文件属性介绍

长格式文件属性 查看长格式文件命令:ll (或ls -l) (1)-:文件类型 -:普通文件 d:目录 b:块设备文件(随机读取) c:字符设备文件(顺序读取) p:管道文件 s:Socket套接字文件 l:连接文件 (2)--------:属主权限属组权限其他人权限 属主:文件或目录的所有者 属组:文件或目录的所属组 其他人:既非属主,也非属组 权限:  r →读权限,权限值4 w →写权限,权限值2 x→执行权限,权限值1 -→无权限,权限值0 (3).:代表该文件被Selinux管理 (4

Arch Linux PDF格式文件无法显示中文

From: http://blog.sina.com.cn/s/blog_5e54bc6801012gfg.html $ sudo pacman -S poppler-data

linux下的ELF格式分析

ELF格式文档详解 一,ELF格式综述 ELF(Executable and Linkable Format)是Linux下的一种格式标准,Linux中的ELF格式文件一共有四种: ●可重定位文件(Relocatable File):这类文件包含了代码和数据,可被用来链接成可执行文件或者共享目录文件,扩展名为.o ●可执行文件(Executable File):这类文件包含了可以直接执行的程序,一般没有扩展名 ●共享目录文件(Shared Object File):这类文件包含了代码和数据,扩展

【有码】ELF文件解析器支持x86x64ELF文件

先贴两个图 32位文件 64位文件 此文为静态分析ELF文件结构,遍历其中Elf_Ehdr文件头信息,遍历Elf_Shdr节表头信息,并将所有节放置在左侧树控件上,遍历Elf_Phdr程序头也放置在左侧树控件上,并着重分析字符串表,重定位表,符号表.遍历表头的使用使用map将节表信息对应字符串存入,当点击树控件的时候取出显示在右侧. 遍历程序头 Elf64_Phdr* Phdr = (Elf64_Phdr*)(m_szFileData+Elf_Ehdr->e_phoff); for(int i

[Debug]linux elf文件格式

linux elf文件格式 浅谈Linux的可执行文件格式ELF Linux中ELF格式文件介绍

elf格式分析

近期研究了一下elf文件格式,发现好多资料写的都比較繁琐,可能会严重打击学习者的热情,我把自己研究的结果和大家分享,希望我的描写叙述可以简洁一些. 一.基础知识 elf是一种文件格式,用于存储Linux程序. 它内部都有一些什么信息呢?大概包含编制好的计算机指令,数据,计算机在须要的时候把这个文件读取到内存中,cpu就能够从内存中一条一条的读取指令来运行了. 所以说想明确elf格式,我们应该了解一下计算机运行程序须要那些信息.所以这一节,我们补充一些计算机系统的基础知识. 进程和虚拟内存: Li

ELF格式解析库之基本数据类型

ELF格式简介 ELF是现代linux/unix流行的程序可执行链接格式,它有官方定义文档,具体的资料在Tool Interface Standard Executable and Linking Format Specification version 1.2 有其对应的详细描述.我在这里不会讲述关于这个格式详细描述,如果我叙述的有什么不对的地方,欢迎指正出来.当然一切都以官方的参考文档为标准,建议您在阅读本文的时候,手边最好有一份官方定义文档参考. ELF由三个头表描述:ELF header