当前位置: 首页 > news >正文

Linux之查看so/bin依赖(三十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:如何查看so、bin启动依赖的库文件,帮助开发者快速定位问题。

2.实践

<1>.readelf命令

在Linux平台上,readelf是一个非常有用的命令行工具,用于分析可执行文件、共享库和目标文件的ELF格式(Executable and Linkable Format,可执行和可链接格式)的信息。ELF是Linux系统和其他类Unix系统上可执行文件和对象文件的标准格式。

以下是一些常用的readelf命令选项和作用:

  1. readelf -h <filename>:显示目标文件的文件头信息,包括文件类型、目标体系结构、入口点地址等。

  2. readelf -l <filename>:显示目标文件的程序头信息,包括段的起始地址、大小和属性等。

  3. readelf -S <filename>:显示目标文件的节头信息,包括节的名称、起始地址、大小、属性等。

  4. readelf -s <filename>:显示目标文件的符号表,包括函数、变量和其他符号信息。

  5. readelf -r <filename>:显示目标文件的重定位表,展示代码和数据的重定位信息。

  6. readelf -d <filename>:显示目标文件的动态节信息,包括依赖的共享库、动态链接信息等。

readelf命令对于调试、分析和了解可执行文件和目标文件的结构非常有用。它可以帮助开发者查看文件的头部、节、符号表等信息,了解程序的组织结构、依赖关系和动态链接信息,有助于进行代码审计、调试和性能优化。

# readelf -a libstagefrighthw.so | grep -i needed
0x0000000000000001 (NEEDED)             共享库:[libutils.so]0x0000000000000001 (NEEDED)             共享库:[libcutils.so]0x0000000000000001 (NEEDED)             共享库:[liblog.so]0x0000000000000001 (NEEDED)             共享库:[libc++.so]0x0000000000000001 (NEEDED)             共享库:[libc.so]0x0000000000000001 (NEEDED)             共享库:[libm.so]0x0000000000000001 (NEEDED)             共享库:[libdl.so]

otool命令用于调试和分析可执行文件和共享库。

<2>.objdump命令

在Linux平台上,objdump是一个非常有用的命令行工具,用于反汇编目标文件。它可以对可执行文件、共享库和目标文件进行静态反汇编,以便查看其二进制代码的详细信息。objdump提供了各种选项,可以用于分析目标文件、查看符号表、显示程序入口点、反汇编代码以及更多。

以下是一些常用的objdump命令选项和作用:

  1. objdump -d <filename>:对目标文件进行反汇编,显示其二进制代码和汇编指令。

  2. objdump -t <filename>:显示目标文件的符号表,包括函数、变量和节等信息。

  3. objdump -r <filename>:显示目标文件的重定位表,展示代码和数据的重定位信息。

  4. objdump -x <filename>:显示目标文件的所有头部信息,包括段、节和其他文件头信息。

  5. objdump -S <filename>:将源代码和反汇编代码以交叉的方式显示,方便进行源码和汇编代码的对比。

objdump用于软件调试、逆向工程和软件安全分析。

# objdump -p libstagefrighthw.so | grep -i needNEEDED               libutils.soNEEDED               libcutils.soNEEDED               liblog.soNEEDED               libc++.soNEEDED               libc.soNEEDED               libm.soNEEDED               libdl.soVERNEED              0x0000000000000530VERNEEDNUM           0x0000000000000003

<3>.Mac OS平台工具:otool

在Mac OS平台上,otool命令用于分析可执行文件、共享库和内核扩展。它可以提供关于这些二进制文件的信息,包括文件的结构、依赖关系和符号表等内容。以下是otool命令常用的选项和作用:

  1. otool -h:显示可执行文件或共享库的文件头信息,包括文件类型、可执行文件的入口点等。

  2. otool -l:显示二进制文件的加载命令信息,包括依赖的动态库、段和节的信息等。

  3. otool -L:显示二进制文件依赖的动态库和其对应的路径。

  4. otool -tV:显示二进制文件的文本节(Text Section)的内容,其中包含了可执行代码。

  5. otool -d:显示共享库的动态链接信息,包括其他共享库的引用。

  6. otool -arch:指定CPU架构,可以用于查看特定架构的二进制文件信息。

#    otool -L xxx.dylib

3.如果以上三种命令没有满足你的需求:请继续往下看

###<4>.strings命令
Linux中的strings命令用于在一个文件中查找并打印可打印字符序列。它的主要作用是从二进制文件中提取文本信息,例如从可执行文件或库文件中提取字符串常量。

# strings libstagefrighthw.so |grep .so
liblog.so
libc.so
libdl.so
libutils.so
libcutils.so
libc++.so
libm.so
libstagefrighthw.so
libOmxCore.so

相关文章:

Linux之查看so/bin依赖(三十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…...

day-45 代码随想录算法训练营(19)动态规划 part 07

70.爬楼梯&#xff08;进阶&#xff09; 分析&#xff1a;基本动态规划转换为完全背包&#xff0c;因为1、2 两种上楼梯方式是无限选择的 思路&#xff1a; 1. j 表示 容量为 j 时&#xff0c;装满有dp[j]种方法2. dp[j]dp[j-nums[i]]3. 初始化 dp[0]1,dp[1]14. 遍历顺序&am…...

static关键字和final关键字

在java的关键字中&#xff0c;static关键字和final关键字是两个必须掌握的关键字。static关键字和final关键字用法多样&#xff0c;且在一定环境下使用&#xff0c;可以提高程序的运行性能&#xff0c;优化程序的结构。下面将依次介绍static关键字和final关键字。注意&#xff…...

使用Postman如何在接口测试前将请求的参数进行自定义处理

1、前言 当我们使用 Postman 进行接口测试时&#xff0c;对于简单的不需要处理的接口&#xff0c;直接请求即可&#xff0c;但是对于需要处理的接口&#xff0c;如需要转码、替换值等&#xff0c;则就麻烦一些&#xff0c;一般我们都是先手动把修改好的值拷贝到请求里再进行请…...

QT第二天

1.优化登陆界面&#xff0c;当点击登录按钮后&#xff0c;在该按钮对应的槽函数中&#xff0c;判断账户和密码框内的数据是否为admin和123456&#xff0c;如果账户密码匹配成功&#xff0c;则提示登陆成功并关闭登录界面&#xff0c;如果账户密码匹配失败&#xff0c;则提示登录…...

鸿蒙应用程序入口UIAbility详解

一、UIAbility概述 UIAbility是一种包含用户界面的应用组件&#xff0c;主要用于和用户进行交互。UIAbility也是系统调度的单元&#xff0c;为应用提供窗口在其中绘制界面。每一个UIAbility实例&#xff0c;都对应于一个最近任务列表中的任务。一个应用可以有一个UIAbility&am…...

扫地僧站群·静态养站王:自动万站智能LOGO功能说明

扫地僧站群静态养站王:自动万站智能LOGO功能说明,无需配置,自动根据网站状态生成对应LOGO&#xff0c;高质量LOGO万站不重样.说明&#xff1a;模板调用智能LOGO方式&#xff1a;{当前域名}/logo.png 自动识别HTTP/HTTPS 只需在模板需要展示LOGO的地方放上如上标签即可。以下为L…...

【Day-32慢就是快】代码随想录-二叉树-合并二叉树

给定两个二叉树&#xff0c;想象当你将它们中的一个覆盖到另一个上时&#xff0c;两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠&#xff0c;那么将他们的值相加作为节点合并后的新值&#xff0c;否则不为 NULL 的节点将直接…...

接口测试系列 —— 什么是接口测试?

接口测试系列 为什么要做这个事情&#xff1f; 对自己过往在接口测试上的经验&#xff0c;写一个小结的系列文章&#xff0c;是一个系统性的思考和知识构建。发布的同时&#xff0c;也是希望获得更多感兴趣的同学的意见和反馈&#xff0c;可以把这个部分做的更好。 接口测试概…...

qt作业day2

//widget.cpp#include "widget.h" #include "ui_widget.h"void Widget::usr_login() {if("admin" this->edit_acc->text()){if("123456" this->edit_psd->text()){speech->say("登录成功");emit jump_sig1…...

JWT一篇通

JWT 是什么&#xff1f; JWT&#xff08;JSON Web Token&#xff09;是一种开放的标准&#xff0c;标准的编号是RFC7591。用于在不同实体之间安全地传输信息。它是基于 JSON 编码的令牌。 JWT 的组成 JWT由三个部分组成&#xff1a;头部&#xff08;Header&#xff09;、载荷…...

【2023-09-01】vue中自定义按钮设置disabled属性后,异常触发click事件

vue中自定义按钮设置disabled属性后&#xff0c;异常触发click事件 项目中自定义按钮&#xff0c;使用a标签实现。设置disabled属性后&#xff0c;点击可以触发click事件。 由于各种原因&#xff0c;项目中并未使用成熟的第三方组件库&#xff0c;例如element-ui&#xff0c;a…...

nginx报错file not found解决

文章目录 一、nginx配置文件修改1.1 配置文件位置1.2 php fastcgi配置1.3 测试 二、nginxphp运行原理三、外网访问内网设置 采用nginxphp作为webserver的架构模式&#xff0c;在现如今运用相当广泛。然而第一步需要实现的是如何让nginx正确的调用php。由于nginx调用php并不是如…...

【力扣】96. 不同的二叉搜索树 <动态规划>

【力扣】96. 不同的二叉搜索树 给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;5 示例 2&#xff1a; 输入&am…...

Win11搭建 Elasticsearch 7 集群(一)

一&#xff1a; ES与JDK版本匹配一览表 elasticsearch从7.0开始默认安装了java运行环境&#xff0c;以便在没有安装java运行环境的机器上运行。如果配置了环境变量JAVA_HOME&#xff0c;则elasticsearh启动时会使用JAVA_HOME作为java路径&#xff0c;否则使用elasticsearch根目…...

哭了,python自动化办公,终于支持 Mac下载了

想了解更多精彩内容&#xff0c;快来关注程序员晚枫 大家好&#xff0c;这里是程序员晚枫&#xff0c;小红薯/小破站也叫这个名。 在我的主页发布的免费课程&#xff1a;给小白的《50讲Python自动化办公》&#xff0c;一直在更新中&#xff0c;昨晚12点多&#xff0c;有朋友在…...

【已更新建模代码】2023数学建模国赛B题matlab代码--多波束测线问题

一、 问题重述 1.1问题背景 海洋测深是测定水体深度与海底地形的重要任务&#xff0c;有两种主要技术&#xff1a;单波束测 深与多波束测深。单波束适用于简单任务&#xff0c;但多波束可提供更精确的地形数据。多 波束系统的关键在于覆盖宽度与重叠率的设计&#xff0c;以确保…...

GMSL技术让汽车数据传输更为高效(转)

目前&#xff0c;大部分车企都在其旗舰车型上配备了达到Level 2水平的自动驾驶技术&#xff0c;也就是高级自动驾驶辅助 ADAS系统。ADAS系统硬件主要由以下几部分组成&#xff0c;包括传感器、串行器、解串器、ADAS处理器等。 除了ADAS系统&#xff0c;包括传感器融合、音视频影…...

ARM+Codesys标准通用型控制器

整机工业级设计&#xff0c;通讯外设经过隔离保护 电源宽电压设计(9~36V DC ) 丰富的通讯接口&#xff0c;满足多种场合控制和通讯需求 四核工业级处理器&#xff0c;高性能&#xff0c;低功耗&#xff0c;高可靠性 机身无风扇设计&#xff0c;外壳小巧 搭载内核 100% 自主…...

YOLOV8从零搭建一套目标检测系统(修改model结构必看)附一份工业缺陷检测数据集

目录 1.YOLOV8介绍 2.YOLOV8安装 2.1环境配置 3.数据集准备 1.YOLOV8介绍 Yolov8结构图&#xff1a; YoloV8相对于YoloV5的改进点&#xff1a; Replace the C3 module with the C2f module. Replace the first 6x6 Conv with 3x3 Conv in the Backbone. Delete two Convs …...

形转化理论SYS方程组系数推导的现状:进展、成就与挑战

作者&#xff1a;温沛林日期&#xff1a;2026年5月20日摘要形转化理论&#xff08;FTT&#xff09;的核心动力学内核——形转化最小赋予系统&#xff08;SYS&#xff09;方程组——的系数完全确定&#xff0c;是从一个自洽的数学框架走向可计算、可检验物理模型的关键枢纽。本文…...

非 CTP 柜台连接天勤:众期融航易达等网关差异备忘

前言 天勤除 CTP 外还支持众期、融航、杰宜斯、易达等柜台路线&#xff0c;构造函数与可用报单类型可能不同。我帮同事对接时&#xff0c;会先查文档里对应类名&#xff0c;再在模拟环境测通连与下单&#xff0c;避免直接上实盘试错。 一、选型前先确认的三件事 开户期货公司支…...

实验7全流程

## 实验七&#xff1a;微服务综合项目实战&#xff08;零基础全流程&#xff09;本实验基于 **Spring Boot 3.5.x** **Spring Cloud 2025.0.1** **RabbitMQ 4.2.3** **Redis 7.x**&#xff0c;带你从零搭建一个完整的电商下单系统&#xff1a; **用户请求 → Gateway网关 …...

魔,法变,声器,低延迟高保真设计,让语音聊天与直播互动更具趣味性与辨识度

获取连接&#xff1a; 魔法变声器https://pan.quark.cn/s/77bfbefc8233 魔,法变,声器是一款专为移动端语音交互设计的实时音频处理工具。 它针对游戏开黑与社交场景进行了低延迟优化&#xff0c;能在不占用过多系统资源的前提下&#xff0c;将原始人声精准转换为目标音色&…...

# 让工具自己声明并发安全:我把调度逻辑砍到一行

让工具自己声明并发安全&#xff1a;我把调度逻辑砍到一行 这是 《写完一个 AI 编程助手之后&#xff0c;我才确定 prompt 工程不是重点》 的第四篇。前几篇讲了进程模型和权限系统&#xff0c;这一篇讲并发调度。 代码&#xff1a;[https://github.com/sishenaichipingguo/cod…...

DeepSeek-R1 MoE架构逆向工程报告(基于HuggingFace源码+NCCL trace分析):专家粒度、FFN维度与token路由热力图首次披露

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek-R1 MoE架构逆向工程总览 DeepSeek-R1 是一款基于稀疏混合专家&#xff08;Mixture of Experts, MoE&#xff09;架构的大语言模型&#xff0c;其推理与训练行为在公开文档中未完全披露。本章聚焦于通…...

Python+AI智能体(Agent)零基础入门全攻略:原理、架构、手搓代码与实战落地

PythonAI智能体(Agent)零基础入门全攻略&#xff1a;原理、架构、手搓代码与实战落地 文章目录&#xff1a; 【前言】 一、前言&#xff1a;为什么现在必须学PythonAI Agent智能体二、核心概念&#xff1a;彻底搞懂什么是AI Agent智能体 2.1 官方工程定义2.2 普通大模型LLM V…...

番茄小说下载器:打造个人数字书库的终极解决方案

番茄小说下载器&#xff1a;打造个人数字书库的终极解决方案 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在数字阅读时代&#xff0c;你是否曾因网络不稳定而中断阅读&#xff1f;是否想…...

HTTPS单向认证、双向认证、抓包原理与反抓包策略详解

HTTPS单向认证、双向认证、抓包原理与反抓包策略详解 一、HTTPS单向认证 HTTPS单向认证是只要求站点部署 SSL证书&#xff0c;客户端会去验证服务器的身份&#xff0c;而服务器不会去验证客户端的身份。这种认证方式相对简单&#xff0c;但可以提供一定的 安全性。任何用户都可…...

【Windows版Redis安装本地使用】

本地安装运行 一、Redis官网 二、下载 三、配置redis服务 一、Redis官网 官网: redis 二、下载 下载版本:版本下载 下载完后,解压文件到文件夹 三、配置redis服务 打开目录对应的终端 安装redis服务 redis-server.exe --service-install redis.windows.conf --loglevel verbos…...