<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Linux下ELF文件簡單介紹

      引言

      最開始有在樹莓派中看見ELF文件,故在此進行記錄

      ELF文件介紹

      Executable and Linkable Format 可執(zhí)行鏈接格式(ELF),是Unix系統(tǒng)實驗室(USL)作為應用程序二進制接口而開發(fā)和發(fā)布的。

      ELF目標文件有三種類型:

      1. 可重定位文件:保存代碼和適當?shù)臄?shù)據(jù),用來和其他object文件一起創(chuàng)建一個可執(zhí)行文件或共享文件

      2. 可執(zhí)行文件:保存一個用來執(zhí)行的程序,該文件指出了如何來創(chuàng)建程序進程映像

      3. 共享目標文件:包含了在兩種使用環(huán)境中鏈接的代碼和數(shù)據(jù)。

        • 首先,鏈接器(ld)可以將它和其余可重定位文件和共享目標文件一起處理,生成另外一個目標文件
        • 其次,動態(tài)鏈接器可將它與某個可執(zhí)行文件以及其他共享目標文件按組合在一起創(chuàng)建進程映像

      三種類型的ELF文件結(jié)構(gòu)都是相同的

      ELF文件的結(jié)構(gòu)

      主要由四部分組成:

      • ELF header
      • Program header table
      • Sections
      • Section header table

      ELF header

      #define EI_NIDENT 16
      typedef struct{
        unsigned char   e_ident[EI_NIDENT];    //占用16個字節(jié)
        Elf32_Half      e_type;                //Elf32_Half表示是2個字節(jié)大小,代表文件的類型
        Elf32_Half      e_machine;             //代表運行該程序需要的體系結(jié)構(gòu) 
        Elf32_Word      e_version;            //Elf32_Word表示4個字節(jié)大小,代表文件版本
        Elf32_Addr      e_entry;              //Elf32_Addr表示4個字節(jié)大小,代表程序的入口地址
        Elf32_Off       e_phoff;              //Elf32_Off表示4個字節(jié)大小,是`Program header table`在文件中的偏移量
        Elf32_Off       e_shoff;              //是`Section header table`在文件中的偏移量
        Elf32_Word      e_flags;              //保存著相關(guān)文件的特定處理器信息
        Elf32_Half      e_ehsize;             //表示`ELF header`的大小
        Elf32_Half      e_phentsize;          //表示`Program header table`中每一個條目的大小
        Elf32_Half      e_phnum;              //表示`program header table`中有多少個條目
        Elf32_Half      e_shentsize;          //表示`Section header table`中每一個條目的大小
        Elf32_Half      e_shnum;              //表示`Section header table`中有多少個條目
        Elf32_Half      e_shstrndx;           //保存著字符表相關(guān)入口的節(jié)區(qū)頭部表索引
      
      }Elf32_Ehdr;
      

      Section header table

      typedef struct{
          Elf32_Word sh_name;   //節(jié)區(qū)名,是節(jié)區(qū)頭部字符串表節(jié)區(qū)(Section Header String Table Section)的索引。名字是一個 NULL 結(jié)尾的字符串。
          Elf32_Word sh_type;    //為節(jié)區(qū)類型
          Elf32_Word sh_flags;    //節(jié)區(qū)標志
          Elf32_Addr sh_addr;    //如果節(jié)區(qū)將出現(xiàn)在進程的內(nèi)存映像中,此成員給出節(jié)區(qū)的第一個字節(jié)應處的位置。否則,此字段為 0。
          Elf32_Off sh_offset;    //此成員的取值給出節(jié)區(qū)的第一個字節(jié)與文件頭之間的偏移。
          Elf32_Word sh_size;   //此 成 員 給 出 節(jié) 區(qū) 的 長 度 ( 字 節(jié) 數(shù) )。
          Elf32_Word sh_link;   //此成員給出節(jié)區(qū)頭部表索引鏈接。其具體的解釋依賴于節(jié)區(qū)類型。
          Elf32_Word sh_info;       //此成員給出附加信息,其解釋依賴于節(jié)區(qū)類型。
          Elf32_Word sh_addralign;    //某些節(jié)區(qū)帶有地址對齊約束.
          Elf32_Word sh_entsize;    //某些節(jié)區(qū)中包含固定大小的項目,如符號表。對于這類節(jié)區(qū),此成員給出每個表項的長度字節(jié)數(shù)。
      }Elf32_Shdr;
      

      Program header table

      typedef struct {  
          Elf32_Word p_type;           //此數(shù)組元素描述的段的類型,或者如何解釋此數(shù)組元素的信息。 
          Elf32_Off  p_offset;           //此成員給出從文件頭到該段第一個字節(jié)的偏移
          Elf32_Addr p_vaddr;         //此成員給出段的第一個字節(jié)將被放到內(nèi)存中的虛擬地址
          Elf32_Addr p_paddr;        //此成員僅用于與物理地址相關(guān)的系統(tǒng)中。System V忽略所有應用程序的物理地址信息。
          Elf32_Word p_filesz;         //此成員給出段在文件映像中所占的字節(jié)數(shù)。可以為0。
          Elf32_Word p_memsz;     //此成員給出段在內(nèi)存映像中占用的字節(jié)數(shù)。可以為0。
          Elf32_Word p_flags;         //此成員給出與段相關(guān)的標志。
          Elf32_Word p_align;        //此成員給出段在文件中和內(nèi)存中如何對齊。
      } Elf32_phdr;
      

      總結(jié)

      這個也只是簡單的介紹了一下ELF文件,并沒有對該文件進行具體的分析 我好菜

      如果需要更細致的分析,請點擊參考鏈接

      參考文章

      ELF文件格式解析
      知乎專欄

      posted @ 2022-06-25 13:53  sunshineoier  閱讀(570)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 成年女人片免费视频播放A| 国产精品亚洲专区无码破解版| 精品国精品自拍自在线| 亚洲熟女国产熟女二区三区| 国产成人亚洲无码淙合青草| 亚洲性日韩精品一区二区| 奶头又大又白喷奶水av| 亚洲综合久久精品国产高清| 日韩有码中文字幕av| 亚洲一区二区三区av激情| 久草热8精品视频在线观看| 在线 欧美 中文 亚洲 精品| 亚洲a人片在线观看网址| 国产精品日韩精品日韩| 国产精品扒开腿做爽爽爽a片唱戏| 精品日韩亚洲av无码| 18禁无遮挡啪啪无码网站| 国内少妇人妻偷人精品| 欧美乱妇高清无乱码免费| 国产稚嫩高中生呻吟激情在线视频| 亚洲人黑人一区二区三区| 91人妻无码成人精品一区91| 麻豆精品在线| 成年女人午夜毛片免费视频| 国产成人高清亚洲综合| 慈利县| 亚洲无线码一区二区三区| 日韩黄色av一区二区三区| 亚洲人妻系列中文字幕| 国产精品va在线观看h| 精品无码黑人又粗又大又长| 热久在线免费观看视频| 美欧日韩一区二区三区视频| 91区国产福利在线观看午夜| 亚洲人成网站在线观看播放不卡| 国产资源精品中文字幕| 精品久久久久无码| 日韩人妻无码精品久久久不卡| 激情综合色综合久久综合| 东京热无码av男人的天堂| 一区二区三区鲁丝不卡|