objdump使用

objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,在分析so库文件时作用也非常显著。

在linux下编译ffmpeg最新版3.1.4,在lib文件夹中得到libavcodec.so文件

使用objdump -x命令分析该so文件:
objdump的help如下:-x, –all-headers Display the contents of all headers
能得到该so文件所依赖的库及版本,以及各个段的信息

版本定义: 1 0x01 0x0e9774b7 libavcodec.so.57 2 0x00 0x035ff8b7
LIBAVCODEC_57

版本引用: required from libz.so.1:
0x0827e5c0 0x00 11 ZLIB_1.2.0 required from libswresample.so.2:
0x03a93182 0x00 09 LIBSWRESAMPLE_2 required from libc.so.6:
0x06969194 0x00 12 GLIBC_2.14
0x0d696914 0x00 10 GLIBC_2.4
0x09691974 0x00 07 GLIBC_2.3.4
0x09691a75 0x00 06 GLIBC_2.2.5 required from libpthread.so.0:
0x09691a75 0x00 08 GLIBC_2.2.5
0x09691972 0x00 05 GLIBC_2.3.2 required from libavutil.so.55:
0x0f818435 0x00 04 LIBAVUTIL_55 required from libm.so.6:
0x09691a75 0x00 03 GLIBC_2.2.5

使用objdump -T分析ELF文件,能得到文件的dynamic symbol table

libavcodec.so.57.48.101: 文件格式 elf64-x86-64

DYNAMIC SYMBOL TABLE:
00000000007de490 g DO .rodata 0000000000000011 LIBAVCODEC_57 avpriv_mjpeg_bits_ac_luminance
00000000001483a0 g DF .text 0000000000000026 LIBAVCODEC_57 av_picture_copy

其中导出的函数信息在代码段或者数据段内

在可执行文件ffmpeg内也能找到该so的函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值