娛樂城
幾通博娛樂城 個下令相識ELF文件的”神秘“ - 財神娛樂城_捕魚達人_電子遊戲

幾通博娛樂城 個下令相識ELF文件的”神秘“

增加偏財運的方法

媒介
在Linux中,可履行文件的格局是ELF格局,而有一些下令可以輔助咱們相識它們更多的“神秘”,以此來輔助咱們辦理成績。

示例法式
咱們的示例法式以下:

  1. #include<stdio.h> 
  2. int main(int argc,char *argv[]) 
  3.     printf("hello shouwangxiansheng\n"); 
  4.     return 0 ; 

編譯:

  1. $ gcc -o hello hello.c 

失去hello可履行文件。
查望文件類型
file下令可以用來查望文件類型:

  1. $ file hello 
  2. hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 2.6.32, BuildID[sha1]=8f1de0f59bdfe9aaff85ade6898173aa436b296a, not stripped 

從效果中,咱們可以曉得,它是ELF可履行文件,且是64位法式,有靜態鏈接,最初的not stripped也注解了它保留了符號表信息或者者調試信息。
若是不是可履行文件,它的信息是奈何的呢?舉個例子:

  1. $ file hello.c 
  2. hello.c: C source, UTF-8 Unicode text 

望到了吧。
查望ELF頭
readelf用于查望ELF文件,而:

  1. $ readelf -h hello 
  2. ELF Header: 
  3.   Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00  
  4.   Class:                             ELF64 
  5.   Data:                              2’s complement, little endian 
  6.   Version:  &n地下539公式bsp;                        1 (current) 
  7.   OS/ABI:                            UNIX – System V 
  8.   ABI Version:                       0 
  9.   Type:           &nbsp偏財運生肖;                  EXEC (Executable file) 
  10.   Machine:                           Advanced Micro Devices X86-64 
  11. (略) 

可以望到它是EXEC,即可履行文件,且小端法式,運轉于X86-64。在穿插編譯的時辰,這個文件頭的信息也特別很是有效。例如你在x86的機械上穿插編譯出powerpc的可履行文件,在powerpc上卻不被辨認,不克不及運轉,不如用readelf望望它的Machine字段,是否是沒有編譯好。
查找ELF文件中的字符串
例如,你在文件中寫入了版本號或者者非凡字符串,可以經由過程strings下令搜刮到:

  1. $ strings hello|grep shouwang 
  2. hello shouwangxiansheng 

查望ELF文件各段巨細

  1. $ size hello 
  2.    text       data     bss     dec     hex filename 
  3.    1210        552       8    1770     6ea hello 

這里可以望到代碼段,數據段各自占若干,需要時辰還可以依據必要優化代碼,淘汰磁盤空間占用。
查望鏈接的靜態庫
運轉時浮現找不到靜態庫?不如望望它鏈接了哪如何算出你的偏財運些庫吧:

  1. $ ldd hello 
  2.   &算偏財運nbsp; linux-vdso.so.1 =>  (0x00007ffd16386000) 
  3.     libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f507e083000) 
  4.     /lib64/ld-linux-x86-64.so.2 (0x00007f507e44d000) 

可以望到它鏈接的靜態庫是/lib/x86_64-linux-gnu/libc.so.6,而若是該文件不存在,則運轉時將會失足。這里也能夠參考《靜態庫的建造以及使用》。
查望符號表

【免責聲明】本站內容轉載自互聯網,其相關談吐僅代表作者小我私家概念盡非權勢巨子,不代表本站態度。如您發明內容存在版權成績,請提交相關鏈接至郵箱:,咱們將實時予以處置。
大樂透中2個號碼多少錢