https://www.google.com.hk/search?q=ar%2C+nm%2C+objdump&oq=ar%2C+nm%2C+objdump&aqs=chrome..69i57j69i61.160j0j1&sourceid=chrome&ie=UTF-8

https://blog.csdn.net/princess9/article/details/6785108

nm

https://blog.csdn.net/K346K346/article/details/89088542

https://www.jianshu.com/p/a86bd1b8e4a5

https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/nm.html


https://blog.csdn.net/weixin_36094492/article/details/112657647

https://www.google.com.hk/search?q=go+tool+nm%E5%91%BD%E4%BB%A4&oq=go+tool+nm%E5%91%BD%E4%BB%A4&aqs=chrome..69i57j69i64l2j69i60.187j0j4&sourceid=chrome&ie=UTF-8

https://segmentfault.com/a/1190000040043628

Linux中的strace可以查看程序运行时的系统调用,有时对于调试程序很有帮助,Mac OS X中可用dtruss (需要root)替代

好用的二进制分析工具

ldd
ldd命令用于输出可执行文件或者库文件所依赖的共享库列表。

在linux中, ldd是list, dynamic, dependencies的缩写, 意思是, 列出动态库依赖关系。

mac可以用otool -L

nm
nm命令用于输出可执行文件或者库文件的符号表。

readelf
readelf命令用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。
常用的选项:
-s –syms –symbols 显示符号表段中的项(如果有的话)。
-d –dynamic 显示动态段的信息。

ar
ar命令可以用来创建、修改库,也可以从库中提出单个模块。

objdump
objdump命令是用查看目标文件或者可执行的目标文件的构成的gcc工具。
常用选项:
-T –dynamic-syms
显示文件的动态符号表入口,仅仅对动态目标文件意义,比如某些共享库。它显示的信息类似于 nm -D|–dynamic 显示的信息。
————————————————
版权声明:本文为CSDN博主「feisonzl」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/WEINILUO/article/details/97267364