必威体育Betway必威体育官网
当前位置:首页 > IT技术

linux之通过strings命令查看so里面是否包含****字符串

时间:2019-09-08 03:11:04来源:IT技术作者:seo实验室小编阅读:86次「手机版」
 

strings

1 问题

比如我们在一个C文件里面或者C++文件里面添加了日志打印字符串***,但是实际上没打印,我们会怀疑这个打印字符串有没有加到so里面去,那我们有什么办法呢?用strings命令

strings ***.so | grep 关键字

strings命令是在对象文件或者二进制文件中查找可打印的字符串

我们一般使用

strings命令是在对象文件或者二进制文件中查找可打印的字符串

 

2 介绍使用过程

1)比如我们写个最简单的减法函数在string.c文件中

#include <stdio.h>

int sub(int x, int y)
{
    return x - y;
}

int main()
{
    int x = 5, y = 2;
    int result = sub(x, y);
    printf("result is %d\n", result);
    printf("hello chenyu");
    return 1;
}

我们直接用strings string.c文件效果如下

1111deMacBook-Pro:str a1111$ strings strings.c 
#include <stdio.h>
int sub(int x, int y)
return x - y;
int main()
int x = 5, y = 2;
int result = sub(x, y);
printf("result is %d\n", result);
printf("hello chenyu");
return 1;

我们可以看到打印这个文件的基本信息了

然后我们生产之执行文件

gcc -g string.c -o str

2)生成这个文件的静态文件libstr,我们在用strings查看

ar rcs libstr.a str
1111deMacBook-Pro:str a1111$ strings libstr.a 
__mh_execute_header
_main
_sub
str             1546
result is %d
hello chenyu

我们这里看到了main函数 sub函数 和部分字符串打印

3 )我们生产动态链接库

gcc -shared -fPIC -o libstr.so strings.c 

我们直接strings libstr.so

1111deMacBook-Pro:str a1111$ strings libstr.so 
result is %d
hello chenyu

我们可以看到打印除了部分打印,如果我们在so文件里面有打印,我们直接strings **.so | grep 关键字  就行

3 对比nm命令

然后我们对比下nm命令

1111deMacBook-Pro:str a1111$ nm libstr.so 
0000000000000f10 T _main
                 U _printf
0000000000000ef0 T _sub
                 U dyld_stub_binder

我们用nm命令一般是查看so里面的函数

 

4 总结

如果我们要查看so文件里面的函数,我们一般用nm命令,如果我们要查看so里面的可打印字符串,我们一般使用strings命令

相关阅读

Oracle RAC中srvctl命令详细说明

SRVCTL Add添加数据库或实例的配置信息。在增加实例中,与-i一起指定的名字应该与INSTANCE_NAME 和 ORACLE_SID参数匹配。srvctl ad

Pearson(皮尔逊)相关系数

统计相关系数简介 由于使用的统计相关系数比较频繁,所以这里就利用几篇文章简单介绍一下这些系数。 相关系数:考察两个事物(在数

天猫买家的信用评价有什么用?在哪里查看信用等级?

很多人淘宝购物在退货的时候,遇到过急速退款的情况吧,这就是因为你有良好的信用评价,信用评价是买家和卖家相互评论,天猫买家的信用评

SM:Sadism & Masochism (性)虐待狂与受虐狂

SM:Sadism & Masochism (性)虐待狂与受虐狂虐恋一词英文为Sadomasochism,是施虐倾向(Sadism)和受虐倾向(Masochism)二者的合成词。

淘宝信用等级的查看方法

卖家每得到一个“好评”,就能够积累1分,中评不得分,差评扣一分。250分以内的积分用红心来表示,251分到1万分用蓝色钻石来表示,1万零1

分享到:

栏目导航

推荐阅读

热门阅读