微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

命令行查看内容共享对象模块lib * .so

什么是命令行查看共享对象模块(lib * .so)的内容

就像我们如何使用:

ar -t lib*.a

对于档案(lib * .a),它显示库中的所有目标文件

EDIT1

从内存加载.so文件

Linux:LD_PRELOAD + -z,initfirst

链接无法find符号,但库被读取并且符号存在

一个是推荐的:使用静态库与dynamic库(共享对象)

在多个进程之间共享共享对象

ar -t lib*.a

给我一个展示:

asset.o

sldep.o

设置setuid位后,程序无法加载

我怎样才能注入或dynamic加载到另一个C程序的C函数

这是什么意思?

从命令行检索全局variables值

如何在共享对象库中共享variables

使用nm -D --defined-only libname.so从动态库中获取符号名称

--defined-only开关--defined-only显示在这文件中定义的符号,而不是引用外部函数

另一种方法是使用objdump,只捕捉文本部分中的符号:

objdump -T /usr/lib/libjpeg.so | grep text ... 0001b5c0 g DF .text 00000016 Base jdiv_round_up 00003730 g DF .text 00000417 Base jpeg_set_colorspace 0000cda0 g DF .text 000002de Base jpeg_consume_input 00002b30 g DF .text 00000023 Base jpeg_abort_compress 00003b50 g DF .text 000000b6 Base jpeg_default_colorspace 00002810 g DF .text 00000067 Base jpeg_suppress_tables 00004110 g DF .text 00000130 Base jpeg_add_quant_table 000100c0 g DF .text 0000011f Base jpeg_save_markers ...

我认为nm -D就是你要找的。

$ nm -D /usr/lib/libpng.so ... 00000000000058f0 T png_reset_zstream 000000000000d420 T png_save_int_32 000000000000d450 T png_save_uint_16 000000000000d3f0 T png_save_uint_32 0000000000007810 T png_set_IHDR 0000000000007500 T png_set_pltE 000000000000ce20 T png_set_add_alpha 0000000000006670 T png_set_asm_flags 0000000000006970 T png_set_bKGD 000000000001a740 T png_set_background ...

nm -D命令列出了共享库的动态符号,这似乎正是你想要的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐