真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

用php讀取elf結(jié)構(gòu)的方法

這篇文章給大家分享的是有關(guān)用php讀取elf結(jié)構(gòu)的方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)與策劃設(shè)計,點軍網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務涵蓋:點軍等地區(qū)。點軍做網(wǎng)站價格咨詢:18982081108

前提知識
  1. UNIX系統(tǒng)的可執(zhí)行文件都采用ELF格式,類型分為目標文件、可執(zhí)行文件和共享庫

  2. ELF格式探析之三:sections

  3. 本例基于64位的小端序linux機器

以讀取目標文件hello.o為例
#include 
void say_hello(char *who) {
    printf("hello, %s!\n", who);
}
char *my_name = "wb";
int man() {
    say_hello(my_name);
    return 0;
}
// 執(zhí)行g(shù)cc -c hello.c生成hello.o
目標文件elf結(jié)構(gòu)主要有:
  1. ELF header,位于文件的0~64字節(jié),存儲文件的描述信息,Section header table的起始位置

  2. N個Section

  3. Section header table,每個條目64字節(jié),對應一個Section的信息

  4. Program header table,可執(zhí)行文件需要,本例的hello.o沒有

進一步分析elf結(jié)構(gòu)
  1. 首先用readelf命令讀取elf信息:readelf -h hello.o。總結(jié)如下:

  2. ELF header占用64字節(jié)

  3. N個Section占用6488-64-1472=4952字節(jié)

  4. Section header table占用23*64=1472字節(jié)

readelf -h hello.o
ELF Header:
Class:                             ELF64
Data:                              2's complement, little endian
OS/ABI:                            UNIX - System V
Type:                              REL (Relocatable file)
Machine:                           Advanced Micro Devices X86-64
Start of program headers:          0 (bytes into file)
Start of section headers:          5016 (bytes into file) //Section header table的起始位置
Size of this header:               64 (bytes) //ELF header的占用大小
Size of program headers:           0 (bytes)  //hello.o沒有program header table
Number of program headers:         0          //hello.o沒有program header table
Size of section headers:           64 (bytes) //Section header table每個條目占用大小
Number of section headers:         23         //Section header table條目個數(shù)
Section header string table index: 22         //.shstrtab Section位于Section header table第22個條目
用php讀取.shstrtab Section內(nèi)容
  1. .shstrtab Section其實是存儲的所有Section的名字

感謝各位的閱讀!關(guān)于用php讀取elf結(jié)構(gòu)的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


當前標題:用php讀取elf結(jié)構(gòu)的方法
本文來源:http://weahome.cn/article/gdohhi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部