编辑 ELF 文件中的变量值?

2024-03-17

我需要更改已编译的 ELF 文件中的几个变量。为了清楚地解释这一点,我将使用一个简单的 C 结构作为示例。

单个源文件被编译并从 MyFile.c 链接 (@ 0x1000) 到 MyFile.elf:

typedef struct {
    uint32_t SerialNumber;      /* Increments for every time it's programmed */
    uint32_t PartNumber;        /* Always the same */
    char     ProdDateTime[32];  /* "YYYY-MM-DD HH:MM:SS" date/time when programmed */
    uint32_t CalcCrc32;         /* Checksum of the above data */
} MyData_T;

const MyData_T MyData = {
    /* SerialNumber      */ 0x11111111,
    /* PartNumber        */ 0x12345678,
    /* ProdDateTime[32]  */ "2013-11-10 12:49:30",
    /* CalcCrc32         */ 0xC0CAC01A
                        };

现在我需要一个“控制台工具”(无需编译):

  1. 将新的序列号写入 0x1000
  2. 将新字符串写入 0x1008
  3. 更新 0x1028 处的校验和。

我还没有找到一个工具(objcopy 等?)甚至可以完成第一个(1)任务。看起来这应该是一个相当常见的场景?我现在已经编写了自己的工具,但更喜欢开源工具或类似工具。

非常感谢任何建议/想法/评论/批评:D 谢谢!


“gdb --write /your/application/binary”应该能够更改初始化数据的值并将其写回可执行文件。

添加“-batch”和“-x command_file”,您应该能够让它执行您想要的操作。

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

编辑 ELF 文件中的变量值? 的相关文章

随机推荐

  • dplyr:需要帮助返回每行中第一个非 NA 值的列索引

    我最近开始尝试在 tidyverse 中完成我的所有代码 这有时给我带来困难 这是我在 tidyverse 中无法完成的一个简单任务 我需要数据框中的一列返回左侧第一个非 na 值的位置索引 有谁知道如何使用 mutate 在 dplyr
  • 如何判断 .net 调用使用了哪个 tnsnames.ora 文件?

    我有多个版本的 Oracle 它在各处保存了 tnsnames ora 文件 较旧的存储在 oracle 下的程序文件中 但较新的存储在我的硬盘驱动器中的应用程序目录下 我正在使用 Oracle 提供的 net 库来连接 net 应用程序
  • 如何在jquery事件处理程序中调用带有参数的javascript函数?

    我被困住了 搜索并尝试了几个小时 编辑 我仍然无法让它发挥作用 好吧 我只是放源代码来明确我想要完成的任务
  • 如何允许在 TDBLookupComboBox 中选择 NULL 值?

    我有一个TDBLookupComboBox显示一个TStringField同类fkLookup 这使得Null值 来自可为空的整数数据库列 下拉列表显示已分配的项目LookupDataSet 它来自连接表 如果该字段是Null 没有显示任何
  • 如何使用电子反应样板正确设置材料用户界面

    我在使用 electro react boilerplate 运行的material ui v4 9 5 库时遇到问题 重现 跟着安装教程 https electron react boilerplate js org docs insta
  • 谷歌 MLKIT 在文本识别时显示此错误:“正在等待下载文本识别模型。请稍候”

    我在我的 flutter 应用程序上使用这个包 firebase ml vision 0 9 3 5 当我使用文本识别器时 它显示错误 正在等待下载文本识别模型 请稍候 但它在人脸检测或条形码方面没有问题 并且工作正常 文本识别器有什么问题
  • Backbone.js on(),最后一个this指的是什么?

    我正在学习 Backbone 我正在尝试找出我从哪个库中获取 on 功能 我以为它是 jQuery 但如果是这样 我不理解 API 有人可以解释一下 on 功能或将我链接到一些文档吗 第一个参数是事件 第二个参数是被调用的函数 最后一个 t
  • 如何用字体很棒的图标替换默认的 WordPress 导航栏链接文本?

    所以我对 WP 还很陌生 虽然我对 WP 导航栏有一些经验 但这是相当独特的 我正在尝试在 wp 生成的导航中注入很棒的字体图标 基本上 当我在 wp 中创建菜单时 WP 将为我生成 div class menu main menu con
  • Android:onScrollStateChanged SCROLL_STATE_IDLE 有时不会触发

    我遇到了一些问题 我在做什么 我有一个 ListView 其中有一些图像 为了使滚动更流畅 我禁用了滚动时显示的图像 现在好像有一个bug http code google com p android issues detail id 50
  • 设置输入文件表单的默认值[重复]

    这个问题在这里已经有答案了 可能的重复 动态设置文件输入的值 https stackoverflow com questions 1017224 dynamically set value of a file input 我有一个输入文件
  • 在 .NET .config 文件中读取和写入值

    我想对 user config 文件使用自定义路径 而不是让 NET 从默认位置读取它 我像这样打开文件 ExeConfigurationFileMap configMap new ExeConfigurationFileMap confi
  • 为什么 TDD“尖峰”被称为“尖峰”?

    测试驱动开发人员指的是快速 探索性的调查 包括编写代码以查看其是否有效 a spike 你知道他们为什么想出这个词吗 Update 肯特 贝克 Kent Beck 的造词对我来说看起来像是 原始 的 尽管他对这个词的使用在我看来没有多大意义
  • 使用XML关联子节点和父节点的值

    使用 R 的 XML 包时 如何保留与该节点关联的某个节点的数据 例如在同一个列表中 我正在尝试将从网络上抓取的数据放入数据框中 并将相关信息分组为行 有 span 没有类属性来区分的元素 可能有一个或两个 span 位于每个相关组 数据框
  • python beautifulsoup new_tag:将类指定为属性

    我对 python 和 beautifulsoup 都很陌生 所以也许我找不到一个简单的答案 当我打电话时 new tag name 我还可以分配属性 例如 new tag a href id link1 但我不能这样分配类 因为它是保留字
  • 声明 actionListener=“#{bean.method}” 时 不导航

    我正在尝试创建一个允许用户登录系统然后导航到主页的页面 我已经设法让它完成其中一项任务 但无法弄清楚如何让它同时完成两项任务 我爬遍了所有网站 但找不到合适的答案 请帮忙 我的代码如下 XHTML
  • Apache下载php文件而不是执行脚本

    我刚刚在运行 10 6 Apache2 PHP Mysql 的新 Mac 上设置了本地 Web 服务器 一切似乎都工作正常 除了当我导航到SOME 不是大多数 页面 Apache 下载 php 文件而不是执行它们 我认为这可能与 php 执
  • 布尔玛进度文本位于中间

    为什么当我使用 Bulma CSS 框架的进度时 https bulma io documentation elements progress https bulma io documentation elements progress 我
  • 无法在 MySQL Workbench 5.2.40 中创建表

    我刚刚创建了一个新架构并想要创建一个新表 当我右键单击我创建的 2myschema 并选择 新表 时 我为要创建的表指定了名称 但出现以下错误 我搜索了该错误 发现原因是我输入了保留字 例如 order 但 table2 不可能是保留字 并
  • HashSet为什么要排序? [复制]

    这个问题在这里已经有答案了 我正在学习 Java 中的容器 最近我读到 HashSet 没有按顺序给出元素 有什么有趣的Integer我随机制作的 HashSet 已排序 当我将其类型更改为Double打印的 HashSet 不再排序 我的
  • 编辑 ELF 文件中的变量值?

    我需要更改已编译的 ELF 文件中的几个变量 为了清楚地解释这一点 我将使用一个简单的 C 结构作为示例 单个源文件被编译并从 MyFile c 链接 0x1000 到 MyFile elf typedef struct uint32 t