关于Linux常用的二进制文件分析方法
来源:互联网 发布:龙葵碱 知乎 编辑:程序博客网 时间:2024/05/29 14:03
当你在unix下拿到一个二进制文件但不知道它是什么的时候,可以通过以下方法得到一此提示 1、 最首先应该尝试strings命令,比如拿到一个叫cr1的二进制文件,可以: $ strings cr1 | more 里面可能会有一些对于这个cr1的描述,这些信息都是编译之后在程序中留下的一些文本性的说明,所以可能会告诉你这个文件是什么. 比如有输出: $ strings cr1 | more 那么我们就可以知道,其实 cr1就是dsniff命令. 2、 如果这样的方法没有帮助你的话,那么你可以尝试: $ /usr/ccs/bin/nm -p cr1 | more 比如说得到如下输出: cr1: 这些都是生成这个二进制文件的obj文件的文件名称,这些名称会告诉你这个二进制文件的作用的. 同样,如果希望查看二进制文件调用到的静态库文件都有哪些的话,可以使用nm -Du cr1来实现. 3、 当然我们也可以通过使用dump命令来得到任何一个二进制文件的选定部分信息 $ /usr/ccs/bin/dump -c ./cr1 | more dump命令的参数说明: -c Dump出字符串表 -C Dump出C++符号表 -D Dump出调试信息 -f Dump出每个文件的头 -h Dump出section的头 -l Dump出行号信息 -L Dump出动态与静态链接库部分内容 -o Dump出每个程序的可执行头 -r Dump出重定位信息 -s 用十六进制信息Dump出section的内容 -t Dump符号表. 4、 可以使用file命令得到二进制文件的信息 $ file cr1 5、 如果还是不清楚的话,那么我们可以使用ldd命令 $ ldd cr1 比如说输出为: 那么我们就可以知道这个程序与网络库相关,我们就可以知道它的大概功能了. 我们也可以能过adb命令来得到一个二进制文件的执行过程. 比如说: 我们知道这个程序是一个sniffer. 6、 如果你确定要运行这个程序的话,你可以先通过: truss命令可以帮你打开系统的信号与调用输出.你就可以知道这个程序到底干了什么. 有了上面这些工具的话,我们就可以大概了解到一个未知的二进制程序到底是干什么的. 最后提示大家,运行不了解的二进制程序有严重的安全问题,请大家小心.
%s %s %s%s%s -> %s%s%s (%.*s)
Version: 2.3
Usage: dsniff [-cdmn] [-i interface] [-s snaplen] [-f services]
[-t trigger[,...]] [-r|-w savefile] [expression]
...
/usr/local/lib/dsniff.magic
/usr/local/lib/dsniff.services
...
[Index] Value Size Type Bind Other Shndx Name
[180] |0 | 0| FILE | LOCL | 0 |ABS | decode_smtp.c
[2198] |160348| 320| FUNC | GLOB | 0 | 9 | decode_sniffer
...
libsocket.so.1 => /usr/lib/libsocket.so.1
librpcsvc.so.1 => /usr/lib/librpcsvc.so.1
...
$ adb cr1
:r
Using device /dev/hme0 (promiscuous mode)
192.168.2.119 -> web TCP D=22 S=1111 Ack=2013255208
Seq=1407308568 Len=0 Win=17520
web -> 192.168.2.119 TCP D=1111 S=22 Push Ack=1407308568 $ truss -f -o cr.out ./cr1
listening on hme0
^C
$
- 关于Linux常用的二进制文件分析方法
- Linux常用的二进制文件分析方法
- linux对二进制文件分析的命令
- 几种我常用的二进制文件分析工具
- 关于二进制文件的读写RandomAccessFile
- fstream读写二进制文件的方法
- java中关于二进制文件的读写[二进制文件读写]
- 关于二进制文件
- Linux常用系统性能分析和方法
- 关于字符串的常用方法
- 关于ArrayList 的常用方法
- 竞品分析的常用分析方法
- 关于C++中二进制文件的一些感想
- Oracle建立二进制文件索引的方法
- Ubuntu下查看二进制文件的简单方法
- VBS创建二进制文件的两种方法
- 一种C#读写二进制文件的通用方法
- od linux常用基本命令之二十八 (查看二进制文件)
- U-Boot的环境变量
- 关于VS2010的调试信息即.pdb文件
- 修正Windows XP对文档内容搜索的支持问题
- 文件上传下载——通过struts的FormFile上传单个excel文件
- 第三天 二列和三列布局
- 关于Linux常用的二进制文件分析方法
- Linux常见瓶颈
- 高并发高负载的大型网站系统架构
- 正则表达式
- U-Boot的常用命令
- Kernel panic 信息分析方法
- Android动画开发——Animation显示隐藏菜单效果
- eclipse db: ssl connect problem
- Oracle游标大全