概述
二进制文件是我们在学习Linux编程开发的时候会经常接触和使用到的一种文件,而今天我们就通过案例分析来了解一下,Linux环境下常用的二进制文件分析命令都有哪些。
1、file
file命令用于分析文件的类型。
如果你需要分析二进制文件,可以先使用file命令来切入。我们知道,在Linux下,一切皆文件,但并不是所有的文件都具有可执行性,我们还有各种各样的文件,比如:文本文件,管道文件,链接文件,socket文件,等等。
2、ldd
ldd命令可以用于分析可执行文件的依赖。
我们使用file命令来分析一个可执行文件的时候,有时候可以看到输出中有dynamicallylinked这样的字眼。这个是啥意思呢?
大部分程序,都会使用到三方库,这样就可以不用重复造轮子,节约大量时间。简单的,我们写C程序代码的话,肯定会使用到libc或者glibc库。当然,除此之外,还可能使用其它的库。
那我们在什么情况下需要分析程序的依赖库呢?有一个场景大家肯定经历过。你去你同事那边拷备他写好的程序放到自己的环境下运行,有时候可能会跑不起来。当然跑不起来的原因可能很多,但其中一个原因可能就是缺少对应的依赖库。
这时候,ldd就派上用场了。它可以分析程序需要一些什么依赖库,你只要把对应的库放在对应的位置就可以了。
3、ltrace
ltrace的功能是能够跟踪进程的库函数调用。
我们可以使用ldd命令来找到程序的依赖库,但是,一个库里少则几个,多则几千个函数,怎么知道现在程序调用的是什么函数呢?
ltrace命令就是用来做这个事的。在下面的例子里,我们可以看到程序调用的函数,以及传递进去的参数,同时你也可以看到函数调用的输出。
4、strace
strace命令可以用于追踪程序运行过程中的系统调用及信号。
通过上面的介绍,我们知道ltrace命令是用来追踪函数调用的。strace命令类似,但它追踪的是系统调用。何为系统调用?简单说就是我们可以通过系统调用与内核进行交互,完成我们想要的任务。
例如,如果我们想在屏幕上打印某些字符,可以使用printf或puts函数,而这两个都是libc的库函数,在更底层,他们都是调用write这个系统调用。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。
最后
以上就是孤独大门为你收集整理的linux分析二进制文件,Linux环境下常用的二进制文件分析命令的全部内容,希望文章能够帮你解决linux分析二进制文件,Linux环境下常用的二进制文件分析命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复