




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
習(xí)ELF2習(xí)ELF2ELF目標(biāo)文件格式可重定位目標(biāo)文件的.text節(jié)、.rodata節(jié)、.data節(jié)和.bss可執(zhí)行目標(biāo)文件中的.text節(jié)、.rodata節(jié)、.data節(jié)和.bssC語言程序有兩個源文件:main.c和test.c4.234.233的符號表(.symtab節(jié))main.otest.o、該符號的類型是全局、外部還是本地符號、該符號出現(xiàn)在test.o中的哪個節(jié)(.text、.data或.bss)。在test.oi節(jié)/*test.cexternintintint int for(i=0;i<4;val+=return /*main.c inta[4]={1,2,3,externintintmain( returnval;}i在test.o的符號表中?在--節(jié)-i在test.o的符號表中?在--節(jié)-1234567889externintstaticint*bufp1;staticvoid{staticintvoidswap()}對于編譯生成的可重定位目標(biāo)文件swap.o,填寫下表中各符號的情況,說明每個符號是否出現(xiàn)在swap.o中的哪個節(jié)(.text、.data或.bss)節(jié)節(jié)---C語言程序有兩個源文件:main.c和proc1.c4.24b)proc1.c文a)main.c文4.245C語言程序有兩個源文件:main.c和proc1.c4.24b)proc1.c文a)main.c文4.245在上述兩個文件中,main.c中的強(qiáng)符號有x、z、main,弱符號有y;proc1.c中的強(qiáng)符號有字節(jié),隨后兩個字節(jié)存放y,再后面兩個字節(jié)存放z。01230123xx=-1.5后,便將“-1.5BFF8000000000000H存放到了&x8個00000000H&&z32BFF80000H16BFF8H。如上右圖所示。因此,最終打印的結(jié)果如下:x=0,z=-16392(3)只要將文件proc1.c中的1行修改為“staticdoublex;”就可以使得proc1x設(shè)定為本地變量,從而在proc1.o的.data節(jié)中專門分配存放x8個字節(jié)空間,而不會和mainx共用同一個存儲地址。因此,也就不會破壞main中x和z的值。mj中對符號x的任意引用與模塊mi中定義的符號x關(guān)聯(lián)記為REF(mj.x)→DEF(mi.x)請在下列空 void x=- #includeunsignedshorty,voidvoid printf(“x=%u,z=%d\n”,x,return /*m2.cintp1(){}(1)/*m1.c/*m2.cintp1(){}(1)/*m1.cintmain(){returnp1;} ①②③④(2)/*m1.cintx=100;intmain(){return}/*m2.c*/intmain=1;intp1(){}① ② ③ (3)/*m1.cintp1;int{returnx;}intx=10;intmain;intp1(){} ①②③④⑤(4)/*m1.cintx,y;intmain(){return/*m2.c*/inty;int{return}}① ② ③ ④ }}① ② ③ ④ ②REF(m2.main)→DEF( ③REF(m1.p1)→DEF( ②REF(m2.main)→DEF( . ③ ⑤ ①REF(m1.x)→DEF( ④ )或者 12345678/*m1.c*/12345678/*m2.c*/charmain[2];int{return}void{printf(“0x%x%x\n”,main[0],}main被定義在.text節(jié)中,通常mainDisassemblyofsection0000000012340:1:89其中,55H是指令“pushebp”的機(jī)器碼,89E5H是指令“movespebp”的機(jī)器碼。因此,可m2printf語句中引用數(shù)組元素main[0]main[1]時,main[0]=55H,main[1]=89H??勺x寫數(shù)據(jù)段(Read/writedatasegment)的信息表明,該數(shù)據(jù)段對應(yīng)虛擬存儲空間中起始地址為0x80494480x1040x4480xe8個4.25在可執(zhí)行目標(biāo)文件中描述的“可讀寫數(shù)據(jù)段”由所有可重定位目標(biāo)文件中的.data節(jié)合并生成的.data4.25在可執(zhí)行目標(biāo)文件中描述的“可讀寫數(shù)據(jù)段”由所有可重定位目標(biāo)文件中的.data節(jié)合并生成的.data因而其初始值必須記錄在可執(zhí)行文件中,而.bss節(jié)由未初始化的全局變量組成,因而在可執(zhí)行目標(biāo)文件中4.25中的內(nèi)容可知,.data0xe8中長度為0x104字節(jié)的可讀寫數(shù)據(jù)段中,開始的0xe8個字節(jié)取自.data節(jié),后面的28字節(jié)是未初始化全局變a和b是可重定位目標(biāo)文件或靜態(tài)庫文件,a→bba引用的符號。對于以下,(3)p.o→libx.a→liby.a→libz.a同時gcc-static–opp.olibx.agcc-static–opp.olibx.aliby.agcc-static–opp.olibx.aliby.alibz.amain0x8048386main要求根據(jù)對圖4.15main.o的.text節(jié)中需重定位的符號名、相對swap4.156行call4.15main.o中.text節(jié)和.rel.text Disassemblyofsection 00000000 1:89 3:83e4 6:e8fcffff 7 7:R_386_PC32 b:b8000000 Read-onlycodeLOADoff 0x00000000vaddr0x08048000paddr0x08048000align2**12filesz0x00000448memsz0x00000448flagsr-xRead/writedataLOADoff 0x00000448vaddr0x08049448paddr0x08049448align2**12filesz0x000000e8memsz0x00000104flagsrw-swap的起始地址就是0x8048398。ADDR(r_sym)–((ADDR(.text)+r_offset)-=0x8048398-((0x8048386+7)-(-4))=7、8、9、a處的call0700000011.圖4.18給出了圖4.7b所示的swap源代碼對應(yīng)的swap.o文件中.text節(jié)和.rel.text節(jié)的內(nèi)容,圖中顯示.text節(jié)中共有6處需重定位。假定鏈接后生成的可執(zhí)行目標(biāo)文件中buf和bufp0的存儲地址分別是仿照例子填寫下表,指出各個重定位的符號名、相對于.text123456123456(.bss)4.18swap.o4.18swap.o中.text節(jié)和.rel.text Disassemblyofsection 00000000 1:89 3:83ec 6:c70500000000 d:0000 8: c: 10:a1000000
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030氣動裝卸平臺行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2025-2030校園超市行業(yè)風(fēng)險投資發(fā)展分析及投資融資策略研究報告
- 2025-2030果汁飲料產(chǎn)業(yè)規(guī)劃專項研究報告
- 2025-2030有線鉆桿行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 廣播影視設(shè)備營銷策略考核試卷
- 果蔬汁飲料的食品安全監(jiān)管與法規(guī)遵守考核試卷
- 土木工程建筑玻璃安裝施工技術(shù)考核試卷
- 內(nèi)燃機(jī)車原理與構(gòu)造考核試卷
- 機(jī)床裝備智能制造裝備技術(shù)創(chuàng)新與產(chǎn)業(yè)發(fā)展考核試卷
- 2025年-云南建筑安全員-C證(專職安全員)考試題庫
- 2025年初級社會工作者綜合能力全國考試題庫(含答案)
- 器官捐獻(xiàn)合作協(xié)議書范文模板
- 2024年時事政治熱點題庫200道含完整答案(必刷)
- 血液形態(tài)學(xué)圖譜考核(ISO15189現(xiàn)場考核)
- 太平哨水利樞紐引水式水電站設(shè)計
- YC/T 425-2011煙用紙張尺寸的測定非接觸式光學(xué)法
- GB/T 6109.2-2008漆包圓繞組線第2部分:155級聚酯漆包銅圓線
- GB/T 17747.1-2011天然氣壓縮因子的計算第1部分:導(dǎo)論和指南
- 99S203 消防水泵接合器安裝圖集
- GB∕T 21489-2018 散糧汽車卸車裝置
- 2022自考審計學(xué)復(fù)習(xí)資料
評論
0/150
提交評論