在 x64 中调用绝对地址

2023-11-29

我无法弄清楚这一点,我可以做出这样的指令,它工作没问题

call ffffdd80d60e4000

但我该如何将其转换为字节呢?我查看了内存中的指令并显示了奇怪的东西,例如

0xe8 0x00 0x40 0x0e 0xd6

我唯一能识别的是 e8,它是调用操作码。有人可以解释一下其他 4 个字节是什么,以及如果我需要调用的地址是 DWORD64 值,我将如何将这样的指令转换为字节数组?我尝试过,但不能简单地复制地址的字节并在开头添加 0xe8 。 很抱歉,如果这可能是一个愚蠢的问题,但我搜索了书籍和网站,但找不到任何相关内容。


正如 Jester 所说,通常调用使用相对地址。如果你想使用绝对地址,你可以将目的地放入寄存器中,如下所示:

    48 b8 00 40 0e d6  mov rax, 0xffffdd80d60e4000
    80 dd ff ff
    ff d0              call rax

您还可以调用内存中的地址。例如,如果目标地址在内存中的 [rsp+8] 处,则

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

在 x64 中调用绝对地址 的相关文章

  • 将 C 代码转换为 x86-64 汇编

    我正在尝试将 C 代码转换为 x86 64 我的目标是反转链表 传入的两个参数是 head ptr 和 offset to 以获取指针字段的地址 即指向列表中下一个节点的指针 据我了解 head ptr是通过rdi寄存器传入的 offset
  • 一个地址有多少字节? [复制]

    这个问题在这里已经有答案了 在64位机器上 我们知道一个地址是8个字节 然而 我并不完全清楚一个地址中有多少字节的信息 虚拟内存中的每个字节都有一个地址吗 或者内存中的每 64 位都有一个地址 还是取决于架构 如果这取决于架构 那么我应该如
  • 学习 (N)ASM 的最佳资源是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想学习汇编已经有一段时间了 尽管我之前尝试过几次 但我还没有真正能够超越 Hello world 有
  • 无法在 64 位 Linux 上从汇编 (yasm) 代码调用 C 标准库函数

    我有一个函数foo以汇编语言编写 并在 Linux Ubuntu 64 位上使用 yasm 和 GCC 编译 它只是使用以下命令将消息打印到标准输出puts 如下所示 bits 64 extern puts global foo secti
  • 难以理解汇编命令“加载有效地址”[重复]

    这个问题在这里已经有答案了 可能的重复 LEA 指令的目的是什么 https stackoverflow com questions 1658294 whats the purpose of the lea instruction LEA指
  • 比“add esp, 4”更小的指令

    又是我 我的程序中有很多 add esp 4 我正在尝试减小它的大小 是否有任何更小的指令可以替代 add esp 4 pop edx 或者您不介意破坏的任何其他整数寄存器 这就是现代编译器实际上所做的 https stackoverflo
  • 使用 ACPI 在 MS-DOS 中关闭计算机

    我在基于 Pentium 的计算机上运行 MS DOS 6 22 主板支持 ACPI 并且想知道是否有一个可以用来关闭计算机的汇编语言例程 或者它是否比那个更难 即主板 具体的 基本上 我想创建一个小程序来从命令行关闭计算机 这是专门为此编
  • intfmt: db "%d", 10, 0 在汇编中的含义

    我最近在我的一个汇编文件的顶部看到了这个 并意识到我在打印整数的过程中花了很长时间使用它 而没有真正意识到它最初来自哪里 在我的基本汇编模板中使用 或 10 0 是什么结尾的意思是 section data intfmt db d 10 0
  • 嵌入式系统:使用汇编语言时的内存布局

    根据我的理解 嵌入式系统运行机器代码 有多种方法可以生成此代码 一种是用 C 等高级语言编写程序 然后使用编译器获得这样的代码 另一种方法是用汇编语言为该嵌入式系统编写指令 并使用汇编器将其转换为机器代码 现在我们得到了加载到系统并执行的机
  • 为什么前向引用 ADR 指令在 Thumb 代码中以偶数偏移进行汇编?

    To bx对于 Thumb 函数 需要设置地址的最低有效位 GNU 作为文档states https sourceware org binutils docs as ARM Opcodes html当地址是从一个生成时这是如何工作的adr伪
  • x86 程序集 Pushl/popl 不适用于“错误:后缀或操作数无效”

    我是汇编编程的新手 正在努力解决编程基础 http savannah nongnu org projects pgubook 在带有 GNU 汇编器 v2 20 1 的 Ubuntu x86 64 桌面上 我已经能够汇编 链接执行我的代码
  • C 中的函数指针和枚举

    我正在寻找一种链接函数指针和枚举的奇特方法 就我而言 我有一个消息队列 其中包含事件 ID 和与事件关联的一些数据 一些简单的伪代码 event eid data switch eid case eid1 handler1 data bre
  • 函数指针声明语法混乱[重复]

    这个问题在这里已经有答案了 我已经阅读并搜索了有关解码函数指针的右左规则 For ex int fun one char double 9 20 is fun one 是指向函数的指针 需要 char double 和 返回指向 int 数
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • 如何使 gcc 为 -fpatchable-function-entry 发出多字节 NOP?

    gcc确实有能力使用多字节用于对齐循环和函数的 NOP 然而当我尝试 fpatchable function entry option https gcc gnu org onlinedocs gcc Instrumentation Opt
  • 跳转目的地太远:3 个字节

    我的循环有问题 其中包含的代码很长并且给了我错误jump destination too far by 3 byte s 当我删除时 mov edx offset str1 call writestring 这部分位于主过程下方 它不会给出
  • 优化算术编码器

    我正在优化名为的 C 库的编码步骤PackJPG http www elektronik htw aalen de packjpg 我使用 Intel VTune 对代码进行了分析 发现当前的瓶颈是 PackJPG 使用的算术编码器中的以下
  • nasm/ld“重定位被截断以适合:R_386_16”

    集会 BITS 16 global start start mov ax 0x07C0 mov ds ax mov si hw call print string jmp print string mov ah 0x0E char lods
  • x86 程序执行期间方向标志 (DF) 的默认状态

    在反汇编中 我经常看到使用字符串操作指令而不考虑方向标志 DF 的状态 如下所示 or ecx 0FFFFFFFFh xor eax eax mov edi ebp repne scasb CLD or STD自函数开始以来未找到指令 也未
  • 将 2 个数字与汇编进行比较[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有以下代码 我想完成汇编代码 如下

随机推荐

  • C++ 继承类中函数重载的问题

    这可能是一个菜鸟问题 对此感到抱歉 最近 当我尝试处理 C 中的一些高级内容 函数重载和继承时 我遇到了一个奇怪的问题 我将展示一个简单的例子 只是为了演示这个问题 有两个班级 classA and classB 如下 class clas
  • Scala 中的斑马拼图

    我正在尝试使用 Scala 完成 Udacity 的 CS212 但在使用 Zebra Puzzle 时遇到了问题 Python 中的一些概念并不容易转换为 Scala 尤其是对于像我这样的初学者 这些是我迄今为止管理的代码 val hou
  • 告诉 LESS 在某些特殊情况下不要惊慌并忽略奇怪的字符

    我们的服务器有一个用于 CSS 文件的自定义语言切换器 它识别某些模式和开关left right命令 除其他外 为了告诉它切换到哪里 我们使用 RIGHT and LEFT 任何需要的地方 div somecls margin RIGHT
  • 地图视图始终以我的位置为中心显示地图

    当用户按下按钮时 我使用以下代码来获取我的位置 mapview setShowsUserLocation YES 然后执行以下操作将地图置于用户位置的中心 void mapView MKMapView mapView didUpdateUs
  • 从文件部分填充数组

    我需要用文件中的数据部分填充 2 个数组并保持它们并行 但我当前的代码给了我看起来像乱码的错误 如果有人甚至可以帮助我解码错误 我将非常感激 Code Author Sam LaManna Course CSC 135 Lisa Frye
  • java.lang.NoSuchMethodException: [类 android.view.View] FirebaseRecyclerAdapter

    我正在尝试使用 FirebaseRecyclerAdapter 制作示例应用程序 但不断收到错误java lang RuntimeException java lang NoSuchMethodException
  • C# - WCF - 进程间通信

    用于进程间通信的最佳 WCF 绑定是什么 我已经在本地网络上使用了 WCF 它非常棒 我也想将它用于进程间通信 然而 我不想暴露网络上的通信 Use the 网络命名管道绑定用于同一台机器上的进程间通信 使用NetTcp绑定如果您跨越机器边
  • glutTimerFunc 问题

    我正在使用计时器函数来制作动画 但是当我将其放置在 Renderer 类中时遇到问题 void Renderer animate int value glutTimerFunc TIMERMSECS animate 0 错误 rendere
  • 如何在块循环中使用 PHPExcel 库确定文件结尾?

    使用 PHPExcel 库 我尝试迭代大约 1500 行 每行大约有 25 列 我正在使用这段代码 取自PHPExcel 运行内存为 256 512 和 1024MB Create a new Reader of the type defi
  • Eclipse:以编程方式创建首选项页面

    我正在尝试以编程方式创建首选项页面 我需要使用首选项页面而不在plugin xml 中定义首选项页面扩展点 我非常接近解决方案 我能够加载页面并在应用程序第一次加载时保存值 我的代码的核心是 PreferenceManager pmngr
  • 使用 VBA 创建具有不同计数的数据透视表

    我正在尝试使用 Excel 2013 VBA 创建一个数据透视表 并将 DISTINCT COUNT 作为值字段 我知道 如果您手动创建数据透视表 则必须选中 将此数据添加到数据模型 复选框 以便为值数据透视字段提供不同的计数选项 但我不知
  • Laravel 5.8:Homestead 重启后尚未设置门面根

    所以我正在尝试进入 Laravel 这是我第一次使用 Vagrant 所以这是我的问题 我已经通过Laravel 家园介绍并设置我的开发框 一切似乎都正常工作 我确实看到了 Laravel 默认应用程序 当结束这一天时 我已经停止了本地流浪
  • 仅初始化部分功能一次

    我有一个很小的函数 我想初始化一次 例如 void SomeFunc static bool DoInit true if DoInit CallSomeInitCode DoInit false The rest of the funct
  • 无法更改模型生成器选项

    我试图让 symfony 使用一个名为的自定义类jsDoctrineRecord代替sfDoctrineRecord对于它的模型 这是重写类的代码
  • C# 中调整系统图标大小

    我想用SystemIcons Warning但它对于我的需要来说太大了 我想调整它的大小 我努力了 Icon sizedIcon new Icon SystemIcons Warning new Size 10 10 但它不起作用 图标保持
  • 将图像 src 数据:转换为 Uint8Array

    我想使用 异食癖图书馆 用于调整图像大小 但它要求我提供一个 Uint8Array 并且我只有一个带有 src data image jpeg base64 9j 4AAQ 我不知道如何将其变成 Uint8Array 有什么想法吗 Than
  • 防止将 master 中的文件与 Git 合并

    In 另一个问题建议使用 gitattributes为了保持文件跟踪但不合并到不同的分支中 但我下面的用例似乎不起作用 mkdir git cd git git init echo B gt b txt git add b txt git
  • HTML5:其他标签内有效标签的参考

    不久前我正在使用w3c 验证器对于 HTML5 我正在尝试用一个标签来替换已弃用的
  • Python pandas - 在groupby之后过滤行

    例如 我有下表 index A B 0 0 0 1 0 8 2 0 8 3 1 5 4 1 3 分组后按A 0 index A B 0 0 0 1 0 8 2 0 8 1 index A B 3 1 5 4 1 3 我需要的是从每个组中删除
  • 在 x64 中调用绝对地址

    我无法弄清楚这一点 我可以做出这样的指令 它工作没问题 call ffffdd80d60e4000 但我该如何将其转换为字节呢 我查看了内存中的指令并显示了奇怪的东西 例如 0xe8 0x00 0x40 0x0e 0xd6 我唯一能识别的是