读取ELF二进制的plt部分并打印函数虚拟地址

2024-05-28

我想读取 ELF 二进制文件的 .plt 部分并获取外部函数的所有虚拟地址。

Disassembly of section .plt:

0000000000400400 <puts@plt-0x10>:
  400400:       ff 35 02 0c 20 00       pushq  0x200c02(%rip)        # 601008 <_GLOBAL_OFFSET_TABLE_+0x8>
  400406:       ff 25 04 0c 20 00       jmpq   *0x200c04(%rip)        # 601010 <_GLOBAL_OFFSET_TABLE_+0x10>
  40040c:       0f 1f 40 00             nopl   0x0(%rax)

0000000000400410 <puts@plt>:
  400410:       ff 25 02 0c 20 00       jmpq   *0x200c02(%rip)        # 601018 <_GLOBAL_OFFSET_TABLE_+0x18>
  400416:       68 00 00 00 00          pushq  $0x0
  40041b:       e9 e0 ff ff ff          jmpq   400400 <_init+0x20>

0000000000400420 <__libc_start_main@plt>:
  400420:       ff 25 fa 0b 20 00       jmpq   *0x200bfa(%rip)        # 601020 <_GLOBAL_OFFSET_TABLE_+0x20>
  400426:       68 01 00 00 00          pushq  $0x1
  40042b:       e9 d0 ff ff ff          jmpq   400400 <_init+0x20>

0000000000400430 <__gmon_start__@plt>:
  400430:       ff 25 f2 0b 20 00       jmpq   *0x200bf2(%rip)        # 601028 <_GLOBAL_OFFSET_TABLE_+0x28>
  400436:       68 02 00 00 00          pushq  $0x2
  40043b:       e9 c0 ff ff ff          jmpq   400400 <_init+0x20>

例如,0x400410和函数名称puts@plt等等。我尝试过阅读REL_PLTELF 二进制文件的一部分。但我知道地址了0x601108用于 PLT 输入0x400410这是来自全局偏移表。如何获取 plt 条目的虚拟地址?

EDIT: 原来我在读书got.plt部分。我怎样才能读到.plt使用 readelf 的部分?


嗯,如果我正确理解了你的问题,那么你就不能...... ASLR - 地址空间布局随机化,每个 SO 都会加载到某个随机地址中,并且在加载时或运行时(取决于符号的绑定 - 是否惰性)GOT 被更改为加载的外部符号的实际虚拟地址,当调用某些外部函数时,您基本上是跳转到某个预定义的偏移量(进入 GOT)并从该地址调用该函数将存储在该偏移量内。 ld 或操作系统加载程序的目标是将该地址更改为您应该在运行时跳转到的地址

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

读取ELF二进制的plt部分并打印函数虚拟地址 的相关文章

  • 嘲笑会员用户

    我目前正在开发一个 asp net mvc 2 应用程序 它使用默认的 SqlMembershipProvider 进行身份验证 我已经实现了一个控制器方法 通过调用读取当前用户的 ProviderUserKeyMembership Get
  • 是否有理由为什么用 XmlInclude 修饰的基类在序列化时仍然会抛出类型未知的异常?

    我将简化代码以节省空间 但所提供的内容确实说明了核心问题 我有一个类 它的属性是基类型 有 3 个派生类可以分配给该属性 如果我将任何派生类分配给容器并尝试序列化容器 XmlSerializer 会抛出可怕的错误 类型 x 不是预期的 使用
  • 如何通过 Excel 互操作对象自动调整列大小?

    下面是我用来将数据加载到 Excel 工作表中的代码 但我希望在加载数据后自动调整列的大小 有谁知道自动调整列大小的最佳方法 using Microsoft Office Interop public class ExportReport
  • 如何进行平衡组捕获?

    假设我有这个文本输入 tes tR R abc aD mnoR xyz 我想提取 ff 输出 R abc R xyz D mnoR xyz R R abc aD mnoR xyz 目前 我只能使用平衡组方法提取组内的内容 如中所示msdn
  • 如何为子控制台应用程序使用单独的控制台窗口?

    Windows 10 C NET Core 3 1 我想要多个控制台窗口用于输出 例如 在一个显示器上 我想放置一个控制台窗口 它将仅显示错误输出 在另一个显示器上 我想放置一组其他控制台窗口 它将显示各种报告 所有这些控制台窗口都是只读的
  • 从亚马逊 s3 流式传输文件

    我在尝试从 amazon s3 流式传输文件时遇到问题 基本上 我的文件存储在 amazom s3 上 我无法提供对这些文件的直接访问 因为用户需要进行身份验证 我正在尝试找到一种流式传输文件的方法 而无需将每个文件从亚马逊下载到我的服务器
  • Asp .Net Core 如何处理区域中的错误页面

    if env IsDevelopment app UseDeveloperExceptionPage else app UseExceptionHandler Administration Error app UseExceptionHan
  • 对 boost::python::detail::init_module 和朋友的未定义引用

    我正在尝试使用官方网站上的示例来测试 boost python 但它会产生很多错误 以下是我所做的和错误 下载Boost1 55与this http choorucode com 2013 12 27 how to upgrade the
  • 如何部署使用sql serverexpress 2012和水晶报表开发的C#windows窗体应用程序

    我在 Microsoft Visual Studio 2013 Net Framework 4 5 中开发了一个应用程序 我使用的 DBMS 是 SQL Server 2012 Express 用于报告的使用的是 Crystal Repor
  • 无法构建 lldb - 找不到“原子”文件

    我正在尝试建立lldb这是 Clang LLVM 3 4 2 下载的一部分LLVM 下载页面 http llvm org releases download html 我可以构建 LLVM Clang Compiler RT 和 Extra
  • 使用 LINQ 计算两个字符串之间的匹配字符数

    一位朋友问我如何使用 LINQ 改进一些代码 如何在两个字符串之间进行逐字符比较以计算索引处的匹配数 这是原始代码 可以使用 LINQ 对其进行改进吗 private int Fitness string individual string
  • 如何使用 AutofacContrib.NSubstitute 监视被测类

    我正在使用 NSpec 框架 AutofacContrib NSubstitute v3 3 2 0 NSubstitute v1 7 0 0 目前最新的是 1 8 2 的类库项目中运行单元测试 The 被测类实例是用AutoSubstit
  • 无需 Excel 和 OLEDB 即可读取 .xlsx

    是否有机会在 C 中读取 xlsx 文件 而无需在客户端上安装 Excel 并且没有可用的 OLEDB 连接 该应用程序是一个用 VS2005 C NET Framework 2 0 编写的 Winforms 项目 这里的这个怎么样 EPP
  • GSL 中的错误 - 根查找

    大家好 我在让我的程序与 GSL 根查找一起工作时遇到问题 我正在尝试找到我的方程的解 我正在寻找 64 行数据的解决方案 但在某些特定行中 程序无法继续 可能是因为不存在好的解决方案 但我希望程序在找不到解决方案时跳过行 但我的程序有时会
  • 近指针和远指针

    我们常用的指针 我们通常使用的指针 近指针和远指针之间有什么区别 近指针和远指针在当今的 C C 系统中是否有实际用途 任何需要使用这些特定指针而不是其他 c c 语义的实际场景都会非常有帮助 近和远关键字起源于英特尔之前的分段内存模型 近
  • LINQ 中的日期差异逻辑

    我尝试从两个不同的数据库表访问数据 然后使用 C 中的 LINQ 将它们连接到两个字段上 我相信我有一个逻辑合理的整体工作方法 我遇到的部分问题是 我在连接两个表之前过滤了它们的数据 因为这些表的数据太多 会导致崩溃 主要问题是 对于其中一
  • 如何使 XMLUNIT 的 WithNodeFilter 动态 C#

    我正在开发一个比较 XML 文件的应用程序 用户可以输入他们想要在比较中排除的节点列表 为了进行比较 我正在使用XMLUNIT https www xmlunit org 我需要动态添加用户输入 下面的代码可以工作 但对于用户输入来说不是动
  • 如何在 C# 中创建唯一的随机字符序列?

    我正在我的应用程序中实现 URL 缩短功能 以便为我的用户提供可在 Twitter 中使用的更短的替代 URL 关键是要独立于提供相同服务的缩短服务 并将其作为我的网络应用程序的一项功能 创建约 6 个字符的独特随机字符序列的最佳方法是什么
  • 获取 Qt 对象的大小

    我正在使用 Qt 和 C 我需要找出某些 Qt 类的实例使用的内存量 这通常是使用 sizeof 完成的 但是在 Qt 中 每个类都保存一个指向包含实际实现的另一个类的指针 此私有实现类的定义在标头中找不到 而仅在源代码中找到 我是 Qt
  • 为什么除法结果会根据强制转换类型而有所不同?

    这是我不明白的部分代码 byte b1 byte 64 0 8f b1 is 79 int b2 int 64 0 8f b2 is 79 float fl 64 0 8f fl is 80 为什么前两次计算相差一位 我应该如何执行此操作

随机推荐

  • PHP:如何将信息返回到等待的脚本并继续处理

    假设有两个脚本Requester php和Provider php Requester需要Provider进行处理并向其发出http请求 Provider php data data 在这种情况下 Provider 很快就找到了答案 但为了
  • 不要使用对象作为类型

    我收到 lint 错误 不要使用对象作为类型 当我使用对象作为类型时 示例如下 export const myFunc obj object string gt return obj toString 知道我应该为具有未知属性的对象赋予什么
  • 向 Python 函数添加属性的最佳方法

    以计算数学函数的 Python 函数为例 def func x a b c Return the value of the quadratic function ax 2 bx c return a x 2 b x c 假设我想以函数属性的
  • 正则表达式 - 如何从引号之间提取文本并排除引号

    我需要正则表达式方面的帮助 我需要创建一个规则来保留引号之间的所有内容并排除引号 例如 我要这个 STRING ID 0 Stringtext 变成了 Stringtext Thanks 做到这一点的方法是使用捕获组 然而 不同的语言处理捕
  • Google BigQuery 底层架构

    所以我大约 10 分钟前才开始摆弄 Google BigQuery 我想知道是否有人知道他们用来存储数据的底层架构 例如 这只是他们自己的下一代 BigTable 基础设施吗 另外 他们在索引 索引重建等方面使用什么样的策略是否清楚 我只是
  • .NET 的 C 代码解析器

    有谁知道 NET 的 C 解析器库吗 我打算将 C 代码解析为某种形式的对象图 这样我就可以将其转换为不同的语言 ANTLR 可以做你想做的事 它有一个 C 预处理器和 ANSI C 语法 https github com antlr gr
  • 使用 TLS PSK 加密时如何正确检测流结束?

    我已经准备好了一个简单的 TLS PSK 客户端测试用例 https github com afarber jetty newbie tree master TlsPskClient2 src main java de afarber tl
  • .ko 文件是如何构建的

    我正在尝试将我自己的驱动程序移植到Beagle 板 xm arm cortex A8 在移植时我试图弄清楚如何 ko文件实际构建 在我们的Makefile我们只有一个命令来构建 o file 怎样是一个 ko文件已建立 使用Linux 2
  • SQL FORMAT 函数错误

    这个SQL select FORMAT lNum from rpt myView 产生以下错误 参数数据类型 varchar 对于格式的参数 1 无效 功能 lNum is a varchar 10 运行 SQL Server 2012 v
  • 以点值检测 iPhone 6/6+ 屏幕尺寸

    鉴于新发布的 iPhone 6屏幕尺寸 http www apple com iphone compare iPhone 6 1334h 750w 2x in points 667h 375w iPhone 6 1920 1080 3x i
  • 通过 cli 部署到远程 Glassfish 实例

    我正在尝试通过命令行自动将 Java EE 应用程序从构建服务器 Jenkins 部署到远程 Glassfish 服务器 目前我正在使用 asadmin 它工作得很好 但这个选项要求我在构建服务器上也安装 Glassfish 我想避免这样做
  • 如何在 PL/pgSQL 中“执行”CTE 查询?

    我尝试在下面的代码示例中模拟我的问题 在下面的代码中 我正在做一个select from test在一个程序中 众所周知 我们必须使用perform关键字为此 这很好用 perform from test 但是 如果我尝试将这个简单查询重写
  • 使用启用了两步身份验证的 python 脚本从 nextcloud 下载文件

    我设置了一个 nextcloud 实例 我想使用 python 脚本从那里下载文件 我的 nextcloud 实例对所有用户强制执行两步身份验证 我希望它保持这种状态 我梦想的场景是使用requests库 因此请按照此处的文档进行操作htt
  • 检测Android N版本代码

    是否可以检测用户是否运行 Android N 我有一台装有 Android N 开发者预览版的 Nexus 6 如果我尝试获取构建版本Build VERSION SDK INT 它返回 23 等于 Android Marshmallow Q
  • 如何“切换”枚举变体?

    我想编写一个函数 将提供的值切换 切换到枚举中的下一个值并在末尾环绕 enum Direction NORTH SOUTH EAST WEST 例如 NORTH gt SOUTH SOUTH gt EAST EAST gt WEST WES
  • 使用itext java库复制时pdf文件大小大大增加

    我正在尝试使用 Java 中的 itextpdf 库将现有的 pdf 文件复制到一些新文件中 我使用的是 itextpdf 5 5 10 版本 我在两种方式上都面临着不同的问题 PDFStamper 和 PdfCopy 当我使用 PDFSt
  • 从多行中获取/选择值到sql server中的1行中

    我有一个表格 每列都有一些图像 Acd unq id Emp unq id Acd BImg1 Acd BImg2 Acd RImg1 Acd RImp2 Acd RImg3 Acd Active 1 1745 BinaryImg Bina
  • jquery Slide切换方向

    我正在尝试滑动 jquery slideToggle 但我无法在单击 div 导航 时添加从左到右或从右到左的方向 请帮帮我 下面是我的代码 div style width 50px div
  • 如何缩放 SVG 路径以适应窗口大小?

    我在缩放 SVG 以适应窗口大小时遇到 了麻烦 在这个例子中 我有一个波浪路径和一个文本元素 我想在这里实现的是沿着波浪路径从左到右移动文本元素 这是由GSAP完成的 并停在路径的中间在初始负载下 当用户开始滚动时 它将移至末尾 我的问题是
  • 读取ELF二进制的plt部分并打印函数虚拟地址

    我想读取 ELF 二进制文件的 plt 部分并获取外部函数的所有虚拟地址 Disassembly of section plt 0000000000400400