本篇为转载,原连接以下: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;函数