如何找到带有标题信息的 ELF 文件/图像的大小?

2024-01-27

我需要找到精灵图像的大小进行一些计算。我尝试过在 Linux 上使用 readelf 实用程序,它提供了有关标题和部分的信息。我需要知道精灵的确切文件大小(总体而言)。

如何从标题信息中找到 ELF 的大小,或者是否有其他方法可以在不读取完整图像的情况下找到 elf 的大小。


对于 ELF 文件来说,具体问题的答案有点棘手。

下面将使用标头计算 ELF 文件中“描述性”信息的大小:e_ehsize + (e_phnum * e_phentsize) + (e_shnum * e_shentsize)

以上是基于ELF文档的。

添加到上述总和中的下一个部分是文件中节条目的大小。直观上我们想使用以下方法来计算sh_size对于文件中的每个部分——e_shnum其中。然而,这没有给出正确答案由于对齐问题。如果您使用sh_offset 值的有序列表您可以计算节条目占用的确切字节数(我发现一些奇怪的对齐方式,其中使用 sh_addralign 并不像您想要的那么有用);对于最后一个部分条目,使用文件头的e_shoff因为节头表是最后的。这对我检查过的夫妇有效。

libelf 中的 update.c包含更新 elf 文件时使用的详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何找到带有标题信息的 ELF 文件/图像的大小? 的相关文章

  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost
  • Windows CE 与嵌入式 Linux [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 现在我确信我们都清楚 Linux 与 Windows 桌面的相对优点 然而 我对嵌入式开发世界的了解却少得多 我主要对行业解决方案感兴
  • 为什么C Clock()返回0

    我有这样的事情 clock t start end start clock something else end clock printf nClock cycles are d d n start end 我总是得到输出 时钟周期是 0
  • Mcrt1.o和Scrt1.o有什么用?

    我坚持使用以下两个文件 即 Mcrt1 o 和 Scrt1 o 谁能帮我知道这两个文件的用途 如何使用它 我们以 gcrt1 o 为例 在使用 pg 选项编译进行性能测试时非常有用 谢谢 表格的文件 crt o总是 C 运行时启动代码 大部
  • 当用户按下打印时运行脚本,并且在脚本结束之前不开始假脱机(linux,cups)

    我需要做的是结合用户按下打印来执行 python 程序 脚本 并且在该程序退出之前不要让打印作业假脱机 原因是打印驱动程序不是开源的 我需要更改用户设置 在本例中是部门 ID 和密码 通常是每个用户 但因为这是一个信息亭 具有相同帐户的不同
  • 每个命令都返回“bash:<命令>:找不到命令...”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我刚刚安装了 Scala 并添加了路径gedit bashrc export SCALA HOME home avijit sca
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其
  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • 在 Ubuntu 中找不到 X11/Xlib.h

    我试图在 Linux 上使用 open gl 编写一个相当简单的程序 但在编译时它说 编译拇指 egl 我对 GL 完全陌生 不知道出了什么问题 快速搜索使用 apt search Xlib h 打开 libx11 dev 包 但纯 Ope
  • 捕获数据包后会发生什么?

    我一直在阅读关于网卡捕获数据包后会发生什么的内容 我读得越多 我就越困惑 首先 我读过传统上 在网卡捕获数据包后 它会被复制到内核空间中的一个内存块 然后复制到用户空间 供随后处理数据包数据的任何应用程序使用 然后我读到了 DMA 其中 N
  • linux下写入后崩溃

    如果我使用 write 将一些数据写入磁盘上的文件会发生什么 但我的应用程序在刷新之前崩溃了 如果没有系统故障 是否可以保证我的数据最终会刷新到磁盘 如果您正在使用write 并不是fwrite or std ostream write 那
  • 在 Linux 上访问 main 之外的主要参数

    是否可以访问参数main在外面main 即在共享库构造函数中 在 Linux 上除了通过解析之外 proc self cmdline 您可以通过将构造函数放入 init array部分 功能在 init array 不像 init 使用相同
  • 找出 Linux 上的默认语言

    有没有办法从C语言中找出Linux系统的默认语言 有 POSIX API 可以实现这个功能吗 例如 我想要一个人类可读格式的字符串 即德语系统上的 German 或 Deutsch 法语系统上的 French 或 Francais 等 有类
  • 从 php/linux 获取 pdf 的布局模式(横向或纵向)

    给定一个 PDF 如何使用 PHP lib 或 Linux 命令行工具获取 PDF 的布局模式 或相对宽度 高度 Using http www tecnick com public code cp dpage php aiocp dp tc
  • 如何确定代码是否在信号处理程序上下文中运行?

    我刚刚发现有人正在从信号处理程序调用我编写的绝对不是异步信号安全的函数 所以 现在我很好奇 如何避免这种情况再次发生 我希望能够轻松确定我的代码是否在信号处理程序上下文中运行 语言是 C 但该解决方案不适用于任何语言吗 int myfunc
  • 无需 root 访问权限即可安装 zsh? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有可能 以及如何 我确实需要在几台具有 ssh 访问权限 但没有 root 访问权限 的远程计算机上使用此功能 下载 zsh wget O zsh t
  • 如何从远程 ssh 连接上运行的 tmux(复制模式)复制到本地剪贴板

    我通过 OS X 上的 VirtualBox 运行 Linux 我通过在无头状态下运行虚拟机 然后使用端口转发 sshing 到 Linux 机器来实现这一点 现在 无论复制到我的虚拟机上的剪贴板 我都可以粘贴到我的远程 ssh 会话上 但
  • 运行此处编译的 C 程序会导致在另一台服务器上找不到 GLIBC 库错误 - 是我的错还是他们的错?

    此处编译的 C 程序在我们的 Ubuntu 服务器上运行良好 但是当其他人尝试在他们的特定 Linux 服务器上运行它时 他们会收到以下错误 myprog install lib tls libc so 6 version GLIBC 2
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 在 debian wheezy amd64 上安装 ia32-libs

    我正在使用 Debian 7 喘息 amd64 uname a Linux tzwm debian 3 2 0 4 amd64 1 SMP Debian 3 2 51 1 x86 64 GNU Linux 我想安装ia32 libs在我的

随机推荐

  • 为什么此保存方法不调整图像大小?

    我重写保存方法以便在上传后调整图像大小 以下代码似乎并未调整图像大小 我仔细检查了媒体文件夹 发现上传图像的原始尺寸 900x850 只有一份副本 Django 没有抛出任何错误 所以我不知道如何解决这个问题 需要明确的是 我可以毫无问题地
  • SQLAlchemy 自定义查询列

    我有一个如下定义的声明表 class Transaction Base tablename transactions id Column Integer primary key True account id Column Integer
  • Request.Url.Authority 未返回预期的域

    我正在网站的控制器中生成一封电子邮件 其中包含指向我的网站的链接 http Request Url Authority some page 当我在本地计算机上测试它时 这是有效的 返回localhost 12345 和生产中 返回www c
  • Angular 6 httpClient 使用凭据发布

    我有一些代码可以发布一些数据来创建数据记录 它在一个服务中 这是代码 import Injectable from angular core import HttpClient HttpHeaders from angular common
  • CakePHP 2.1 测量页面执行时间

    如何测量 CakePHP 2 1 中的页面执行时间 在 1 3 中 它在调试模式下呈现在代码中 你可以使用调试工具包插件 https github com cakephp debug kit找出执行时间 或者您可以在 app 中编辑 ind
  • 在 Windows 10 IoT 上使用 UWP 进行 LDAP 查询

    经过几个小时的搜索后 似乎无法从 UWP 应用程序查询本地 LDAP 目录 Microsoft Active Directory 或其他 这似乎是 UWP 产品中的一个相当奇怪的漏洞 因此我希望我只是错过了明显的漏洞 通用 Windows
  • 如何在构建的电子应用程序中获取开发工具?

    是否可以在构建的电子应用程序中显示开发工具 我使用构建的可执行文件electron packager与使用运行的应用程序的行为不同electron在命令行中 我无法看到抛出了哪些类型的异常 是的 可以在打包的应用程序中显示 DevTools
  • Android:单击时更改按钮颜色

    基本上 我正在尝试创建一个单击时的按钮 注意 NOT按下 会将颜色从 color1 更改为 color2 再次单击时 颜色将从 color2 变回 color1 我疯狂地搜索 我设法提取的唯一信息是如何在按下按钮时改变颜色 即当用户按住按钮
  • 将构造函数添加到 deftype 创建的类中

    为了与 Java 实现互操作性 我需要一个具有执行初始化的空构造函数的类 此类的对象需要具有类似于可变java字段的东西 即该对象代表游戏的后端 并且需要保持游戏状态 deftype 确实一切我想要做except提供一个无效构造函数 因为我
  • 如何检索高质量的指南针方向(如 Google 地图)?

    我发现的所有在 Android 中获取指南针方向的指南都有一个错误 当您以纵向模式握住手机并 看 地平线上方时 指南针箭头会从正确方向旋转 180 度 谷歌地图方向指示器不存在这个问题 谷歌地图的另一个好处是它们可以以某种方式估计指南针的准
  • Vue.js 对数组进行过滤

    我正在尝试使用 vue js 中的计算属性来过滤数组 我想搜索多个字段 名称 状态 标签等 My data events id 1 name Name of event url datetime 2017 05 10T00 00 00Z d
  • 不完整类型的静态字段 - 合法吗?

    在 C 中声明在类定义时不完整的类型的静态字段是否合法 例如 Foo h class Foo public private class Bar static Bar something Foo cpp class Foo Bar Foo B
  • 标准对 char 数组作为模板参数有何规定?

    在我研究答案的过程中这个问题 https stackoverflow com q 57003010 9883438我发现 我之前不知道 gcc 和 clang 允许char如果声明了数组 则它们将成为模板参数static 例如 此代码使用
  • 如何从 ruby​​ 中的反引号命令获取颜色?

    在 ruby 文件中 当我做system rspec file spec rb 我得到一个很好的彩色输出 当我这样做时 result rspec file spec rb puts result 我一点颜色都没有 有什么办法可以保留颜色 顺
  • 过滤文件内容到排序表

    我有一个包含以下代码行的文件 这里的文件显示了一个逐一排序的时间表 at 12 00 the schedule of james version1 is first task eating nothing second task rest
  • Visual Studio 2015(最新更新)发布功能无法编译 ASP.NET Core RC1 源

    几个月前 我开始开发一个新的 ASP NET Core RC1 项目 并使用 Visual Studio 2015 进行发布 生成一个文件夹树 无需项目 C 源代码即可部署 因为它正在将其编译到放入文件夹树的程序集中 现在我已经升级了 Vi
  • 如果 POJO 对象中的可变字段存储在并发HashMap 中,那么该字段是否是线程安全的?

    如果 POJO 对象中的可变字段存储在并发HashMap 中 那么该字段是否是线程安全的 或者我是否需要用锁保护字段或使它们不稳定以确保所有线程都能看到更新 将字段标记为易失性是否足以确保所有线程都能看到更新 如果存储在并发HashMap中
  • java.security.NoSuchAlgorithmException:算法 x25519 不可用

    我收到这段代码的 javax net ssl SSLException 连接重置 ReadableByteChannel rbc Channels newChannel url getInputStream 但仅当在使用 Open JDK
  • Common Lisp:编译与评估

    在带有 sbcl 的 Emacs Slime 上 一旦我在文件中定义了一个函数 或多个 我有两个选择 评估 例如与 C M x eval defun 汇编 例如使用 C c M k 编译文件 第二个也生成一个 fasl 文件 两者有何区别
  • 如何找到带有标题信息的 ELF 文件/图像的大小?

    我需要找到精灵图像的大小进行一些计算 我尝试过在 Linux 上使用 readelf 实用程序 它提供了有关标题和部分的信息 我需要知道精灵的确切文件大小 总体而言 如何从标题信息中找到 ELF 的大小 或者是否有其他方法可以在不读取完整图