查看linux 下二进制文件依赖信息
2013-02-25 20:48
351 查看
ldd
: 列出一个可执行文件在运行时需要的共享库信息
ar : 创建静态库,插入,删除,列出和提取成员
strings : 列出文件中的所有可打印字符串
strip : 从目标文件中删除符号表信息
nm : 列出目标文件中符号表中定义的符号
size : 列出目标文件中节的名字和大小
readelf : 显示一个木边文件完整结构,包括elf头中的编码的所有信息,包含size和nm的功能
objdump : 所有二进制工具之母。能够显示一个目标文件中的所有信息,它最有用的功能是反汇编.text节中的二进制指令
(1)arm-linux-gcc编译的程序:若有一个名为test1的可执行程序
#readelf -a "./test1" | grep "Shared"
结果:
0x00000001 (NEEDED) Shared library: [libQtSql.so.4]
0x00000001 (NEEDED) Shared library: [libQtGui.so.4]
0x00000001 (NEEDED) Shared library: [libQtNetwork.so.4]
0x00000001 (NEEDED) Shared library: [libQtCore.so.4]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libstdc++.so.6]
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
(2)gcc编译的程序,可在pc上执行的名为test1的可执行程序:
#ldd test1
结果:
linux-gate.so.1 => (0x00110000)
libQtSql.so.4 => /usr/local/Trolltech/Qt-4.6.3/lib/libQtSql.so.4 (0x00111000)
libQtGui.so.4 => /usr/local/Trolltech/Qt-4.6.3/lib/libQtGui.so.4 (0x00379000)
libQtCore.so.4 => /usr/local/Trolltech/Qt-4.6.3/lib/libQtCore.so.4 (0x00dff000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0014f000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x063d4000)
libm.so.6 => /lib/libm.so.6 (0x00168000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00191000)
libc.so.6 => /lib/libc.so.6 (0x0019f000)
libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x00308000)
librt.so.1 => /lib/librt.so.1 (0x0030d000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x0411c000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00317000)
libz.so.1 => /lib/libz.so.1 (0x0033e000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x03a10000)
libgobject-2.0.so.0 => /lib/libgobject-2.0.so.0 (0x03346000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x00352000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x03002000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x0691c000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x06b30000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x0697e000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x076ac000)
libdl.so.2 => /lib/libdl.so.2 (0x068e4000)
/lib/ld-linux.so.2 (0x0035b000)
libselinux.so.1 => /lib/libselinux.so.1 (0x06a26000)
libexpat.so.1 => /lib/libexpat.so.1 (0x08ccb000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x08a8b000)
libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0x08a7b000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x08c1b000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x08abb000)
: 列出一个可执行文件在运行时需要的共享库信息
ar : 创建静态库,插入,删除,列出和提取成员
strings : 列出文件中的所有可打印字符串
strip : 从目标文件中删除符号表信息
nm : 列出目标文件中符号表中定义的符号
size : 列出目标文件中节的名字和大小
readelf : 显示一个木边文件完整结构,包括elf头中的编码的所有信息,包含size和nm的功能
objdump : 所有二进制工具之母。能够显示一个目标文件中的所有信息,它最有用的功能是反汇编.text节中的二进制指令
(1)arm-linux-gcc编译的程序:若有一个名为test1的可执行程序
#readelf -a "./test1" | grep "Shared"
结果:
0x00000001 (NEEDED) Shared library: [libQtSql.so.4]
0x00000001 (NEEDED) Shared library: [libQtGui.so.4]
0x00000001 (NEEDED) Shared library: [libQtNetwork.so.4]
0x00000001 (NEEDED) Shared library: [libQtCore.so.4]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libstdc++.so.6]
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
(2)gcc编译的程序,可在pc上执行的名为test1的可执行程序:
#ldd test1
结果:
linux-gate.so.1 => (0x00110000)
libQtSql.so.4 => /usr/local/Trolltech/Qt-4.6.3/lib/libQtSql.so.4 (0x00111000)
libQtGui.so.4 => /usr/local/Trolltech/Qt-4.6.3/lib/libQtGui.so.4 (0x00379000)
libQtCore.so.4 => /usr/local/Trolltech/Qt-4.6.3/lib/libQtCore.so.4 (0x00dff000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0014f000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x063d4000)
libm.so.6 => /lib/libm.so.6 (0x00168000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00191000)
libc.so.6 => /lib/libc.so.6 (0x0019f000)
libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x00308000)
librt.so.1 => /lib/librt.so.1 (0x0030d000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x0411c000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00317000)
libz.so.1 => /lib/libz.so.1 (0x0033e000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x03a10000)
libgobject-2.0.so.0 => /lib/libgobject-2.0.so.0 (0x03346000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x00352000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x03002000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x0691c000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x06b30000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x0697e000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x076ac000)
libdl.so.2 => /lib/libdl.so.2 (0x068e4000)
/lib/ld-linux.so.2 (0x0035b000)
libselinux.so.1 => /lib/libselinux.so.1 (0x06a26000)
libexpat.so.1 => /lib/libexpat.so.1 (0x08ccb000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x08a8b000)
libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0x08a7b000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x08c1b000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x08abb000)
相关文章推荐
- Linux swap文件信息查看
- Linux命令-ls(查看文件或目录的一些信息)
- 在Win & Linux系统下查看二进制文件
- linux下查看动态链接库so文件的依赖的相关组件
- linux学习入门23——linux系統常用命令(linuxcast.net)(日期、文件查看(head,tail等)、查看硬件信息、关机重启、归档压缩及查找命令)
- linux下查看二进制文件
- linux 查看可执行文件动态链接库相关信息(转)
- Linux下查看二进制文件命令
- Linux查看CPU信息的.sh文件
- 在Linux下使用vim配合xxd查看并编辑二进制文件
- Linux 查看文件和文件夹大小,数目等信息,查找‘.jpg’图像的个数
- Linux下静态库_库的基本概念;如何生成静态库动态库;nm查看库中包含那些函数、ar生成静态库,查看库中包含那些.o文件、ldd查看程序依赖的.so文件;gcc/g++与库相关的参数-L,-l,-f
- 在Linux下使用vim配合xxd查看并编辑二进制文件
- Linux下静态库_库的基本概念;如何生成静态库动态库;nm查看库中包含那些函数、ar生成静态库,查看库中包含那些.o文件、ldd查看程序依赖的.so文件;
- Linux下如何查看动态链接库so文件的依赖
- 在Linux下使用vim配合xxd查看并编辑二进制文件
- Linux下查看编辑二进制文件
- Linux下查看可执行文件、动态库的ELF头等信息
- linux命令之查看进程运行动态库依赖及打开文件-lsof
- 在Linux下使用vim配合xxd查看并编辑二进制文件