1. strings
strings命令:在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。strings命令对识别随机对象文件很有用。
语法
strings [ -a ] [ - ] [ -o ] [ -t Format ] [ -n Number ] [ -Number ] [file ... ]
选项
-a --all:扫描整个文件而不是只扫描目标文件初始化和装载段
-f –print-file-name:在显示字符串前先显示文件名
-n –bytes=[number]:找到并且输出所有NUL终止符序列
- :设置显示的最少的字符数,默认是4个字符
-t --radix={o,d,x} :输出字符的位置,基于八进制,十进制或者十六进制
-o :类似--radix=o
-T --target= :指定二进制文件格式
-e --encoding={s,S,b,l,B,L} :选择字符大小和排列顺序:s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit
@ :读取中选项
实例
列出ls中所有的ASCII文本:
strings /bin/ls
列出ls中所有的ASCII文本(请勿使用):
cat /bin/ls strings
查找ls中包含libc的字符串,不区分大小写:
strings /bin/ls | grep -i libc
2. c++filt
c++filt 命令可用于解析 C++ 和 Java 中被修饰的符号,比如变量与函数名称。
命令格式
c++filt [-_|--strip-underscore][-n|--no-strip-underscore][-p|--no-params][-t|--types][-i|--no-verbose][-s format|--format=format][--help] [--version] [symbol...]
3. ulimit
Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux用户的最大进程数,我们可以用ulimit来显示当前的各种用户进程限制。
常用参数
-a | 显示目前资源限制的设定 |
-d | 程序数据节区的最大值,单位为KB |
-t | 指定CPU使用时间的上限,单位为秒 |
-u | 用户最多可开启的程序数目 |
-v | 指定可使用的虚拟内存上限,单位为KB |
-s | 线程栈大小,以bytes为单位 |
4. nm
nm命令用于将二进制文件或可执行文件进行剖析
常用参数
// 可以直接man
-A 或-o或 --print-file-name:打印出每个符号属于的文件
-a或--debug-syms:打印出所有符号,包括debug符号
-B:BSD码显示
-C或--demangle[=style]:对低级符号名称进行解码,C++文件需要添加
--no-demangle:不对低级符号名称进行解码,默认参数
-D 或--dynamic:显示动态符号而不显示普通符号,一般用于动态库
-f format或--format=format:显示的形式,默认为bsd,可选为sysv和posix
-g或--extern-only:仅显示外部符号
-h或--help:国际惯例,显示命令的帮助信息
-n或-v或--numeric-sort:显示的符号以地址排序,而不是名称排序
-p或--no-sort:不对显示内容进行排序
-P或--portability:使用POSIX.2标准
-V或--version:国际管理,查看版本
示例
nm -f sysv -n main.o
参考文献
strings命令用法_小小白@的博客-CSDN博客_strings命令
Linux 命令(59)—— c++filt 命令_恋喵大鲤鱼的博客-CSDN博客
ulimit命令 - Linux命令大全 | linux教程
ulimit的说明_薯可的博客-CSDN博客_ulimit
nm命令和其内容详解_二芒星的博客-CSDN博客_nm命令