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

Linux、Windows、Android下查看可执行文件、动态库和静态库信息的命令

TL; DR

我常用的命令:

  • Linux
ldd
  • Windows(需要借助vs)
dumpbin /DEPENDENTS
  • Android
ldd +绝对路径

在不同的操作系统下,查看可执行文件、动态库和静态库的命令各不相同。以下是 Linux、Windows 和 Android 平台下的常用命令:

1. Linux

在 Linux 系统中,使用以下命令查看可执行文件、动态库和静态库的信息:

  • 查看可执行文件信息

    • file <filename>:查看文件类型,包括是否是可执行文件。
    • ldd <filename>:显示可执行文件或动态库所依赖的动态库。
    • readelf -h <filename>:查看 ELF 文件头信息,适用于 Linux 下的可执行文件和库。
    • objdump -x <filename>:显示可执行文件、动态库或静态库的详细信息。
    • nm <filename>:列出符号表信息(用于可执行文件和库)。
  • 查看动态库信息

    • ldconfig -p | grep <library_name>:列出系统中已加载的动态库,并过滤指定库名。
    • readelf -d <library_name>:显示动态库的动态段信息。
    • nm -D <library_name>:列出动态库中的导出符号。
  • 查看静态库信息

    • ar t <library_name.a>:列出静态库中的成员文件。
    • nm <library_name.a>:列出静态库中的符号表信息。

2. Windows

在 Windows 系统中,查看可执行文件和库信息通常通过命令提示符(cmd)或 PowerShell 来进行:

  • 查看可执行文件信息

    • dumpbin /HEADERS <filename>:显示可执行文件的头信息。
    • dumpbin /DEPENDENTS <filename>:显示可执行文件所依赖的 DLL 动态库。
    • sigcheck <filename>:用于查看可执行文件的签名和其他信息。
  • 查看动态库信息

    • dumpbin /EXPORTS <filename.dll>:列出 DLL 文件的导出符号。
    • depends.exe <filename>:使用 Dependency Walker 工具查看 DLL 的依赖关系(图形化工具)。
  • 查看静态库信息

    • dumpbin /SYMBOLS <library_name.lib>:列出静态库中的符号。

3. Android

Android 基于 Linux 内核,可以使用类似的命令。通常使用 Android 开发工具 (ADB) 或终端进行操作:

  • 查看可执行文件信息

    • file <filename>:查看文件类型。
    • readelf -h <filename>:查看 ELF 文件头信息。
    • objdump -x <filename>:显示详细信息。
  • 查看动态库信息

    • ldd <library_name>:查看动态库的依赖关系(注意:部分 Android 系统没有 ldd)。
    • readelf -d <library_name>:查看动态库的动态段。
    • nm -D <library_name>:列出动态库中的符号表。
  • 查看静态库信息

    • ar t <library_name.a>:列出静态库中的成员文件。
    • nm <library_name.a>:列出符号表。

对于 Android 系统,由于限制,很多命令需要在 rooted 环境或使用模拟器中执行,或者通过 ADB 来访问。

这些命令可以帮助你详细了解不同平台下的可执行文件、动态库和静态库的内容。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 997. 找到小镇的法官(24.9.22)
  • docker 镜像,导入导出,
  • Springboot常见问题(bean找不到)
  • 分享课程:云LAN到家视频教程
  • WebServer
  • 系统架构笔记-4-信息安全技术基础知识
  • Innodb内存结构
  • LeetCode讲解篇之1343. 大小为 K 且平均值大于等于阈值的子数组数目
  • C++门迷宫
  • 网络安全-shire写任务计划、反弹shell、写私钥、反序列化
  • TikTokDownloader 开源项目操作教程
  • Koa (下一代web框架) 【Node.js进阶】
  • Spring Mybatis 基本使用 总结
  • [数据集][目标检测]智慧养殖场肉鸡健康状态检测数据集VOC+YOLO格式4657张2类别
  • 基于centos7.9搭建SFTP服务
  • JavaScript-如何实现克隆(clone)函数
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • Codepen 每日精选(2018-3-25)
  • CSS中外联样式表代表的含义
  • Docker容器管理
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • iOS小技巧之UIImagePickerController实现头像选择
  • JavaScript学习总结——原型
  • JS题目及答案整理
  • scala基础语法(二)
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 学习Vue.js的五个小例子
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • mysql面试题分组并合并列
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • !!Dom4j 学习笔记
  • # dbt source dbt source freshness命令详解
  • #VERDI# 关于如何查看FSM状态机的方法
  • #宝哥教你#查看jquery绑定的事件函数
  • (14)Hive调优——合并小文件
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Python) SOAP Web Service (HTTP POST)
  • (理论篇)httpmoudle和httphandler一览
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (强烈推荐)移动端音视频从零到上手(下)
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (五)activiti-modeler 编辑器初步优化
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转载)CentOS查看系统信息|CentOS查看命令
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .Net Winform开发笔记(一)
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 的静态构造函数是否线程安全?答案是肯定的!