本篇爲轉載,原連接以下:http://bdxnote.blog.163.com/blog/static/8444235201532911597959/vim
主要是作一個我的的資料收集,之後能夠快速找到。Ps.若是不喜歡被我轉載,能夠聯繫我刪掉,謝謝!socket
一、ELF文件內容解析
readelf : 可解析ELF文件的全部內容;
strings : 查看ELF文件中的字符串;
file : 查看ELF文件的信息;
nm : 查看ELF文件中的符號信息;
ldd : 查看ELF文件所依賴的庫文件;
二、objdump
用於對ELF文件進行反彙編;
objdump -d ;反彙編部分可執行的二進制代碼;
objdump -D ;反彙編所有的可執行的二進制代碼;
objdump -S ;儘可能把可執行的二進制代碼反彙編成源碼;
三、hexdump
以十六進制格式查看ELF格式的二進制可執行文件的內容;
hexdump -C elf_file_name
四、od
以指定的進制格式查看ELF格式的二進制可執行文件的內容;默認是八進制;
od -t x4 ;-t指定格式化的字節單元單位;
;x4-每4個字節爲一個單元格式化成十六進制,
;x2-每2個字節爲一個單元格式化成十六進制,
;x1-以1個字節爲一個單元格式化成十六進制;
-t x2 等價於 -x
-A選項指定進制格式:x-十六進制, d-十進制,o-八進制;
若是使用-t指定了十六進制格式,則-A選項就不是必須的了;
五、xxd
以十六進制格式查看ELF格式的二進制可執行文件的內容;
xxd ;以小寫的十六進制格式顯示;
xxd -u ;以大寫的十六進制格式顯示;
xxd -s +10 ;以ELF文件頭處的第1個字節爲參照,從第10個字節處開始顯示;
xxd -s -10 ;以ELF文件尾處的第1個字節爲參照,從第10個字節處開始顯示;
六、編輯ELF文件
使用vi/vim與命令xxd配合完成;
STEP1:使用vi/vim以二進制模式打開ELF文件;
vi -b binary_file
vim -b binary_file
STEP2:在vi/vim的命令模式下輸入以下內容,把二進制內容轉換成16進制格式顯示:
:%!xxd -u
STEP3:按照vi/vim正常的編輯方法來修改以十六進制格式顯示的二進制內容;
STEP4:編輯完成以後,在vi/vim的命令模式下輸入如下內容,把十六進制格式顯示的內容轉換回原始的二進制格式:
:%!xxd -r
STEP5:在vi/vim的命令模式下輸入如下內容,保存二進制格式的ELF文件:
:wq
---備註---
% :表示當前文件中顯示的全部行;
!xxd:表示執行外部命令xxd;函數