用汇编语言更改 CS:IP

2024-03-26

怎么可以强行改变CS and IP都是汇编语言?

ORG指令可用于更改的数量IP,但是你如何改变CS?

基本上我想使用汇编来实现多线程。

许多论坛,包括堆栈溢出中的一个问题都说这是不可能的,但是即使 C 是由汇编代码制成的,它如何具有多线程选项呢?


改变cs:ip只是跳远jmp (eg. jmp segment:offset)或长call (eg. call segment:offset)取决于您的需要。有多种不同的寻址模式可供选择jmp link http://web.itu.edu.tr/kesgin/mul06/intel/instr/jmp.html and call link http://web.itu.edu.tr/kesgin/mul06/intel/instr/call.html。实现多线程与简单改变是完全不同的事情cs:ip.

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

用汇编语言更改 CS:IP 的相关文章

  • 计算 Amd Zen 2 处理器上的 L3 缓存访问事件

    我试图找出与 perf stat 命令一起使用的事件来计算 AMD Zen 2 处理器上的 L3 缓存访问次数 根据 PPR http developer amd com wordpress media 2017 11 54945 PPR
  • RAM 存储二进制数和汇编语言的冒泡排序

    我必须使用 ARM v7 执行一个例程 在 RAM 内存中存储 10 个二进制数 然后使用冒泡排序对这些数字从高到低进行排序 我应该如何开始 func bubbleSortAscendingU32 ldr r3 r0 4 mov r1 9
  • 逆向工程的汇编语言[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 Java 确定 Windows 是 32 位还是 64 位体系结构?

    如何使用 Java 确定 Windows 是 32 位还是 64 位体系结构 我不太相信读取 os arch 系统变量 如果用户在 64 位系统上运行 64 位 JVM 则它可以工作 如果用户在 64 位系统上运行 32 位 JVM 则它不
  • 源操作数和目标操作数是否需要相同大小?

    我刚刚尝试了这个问题 要求你解释一下代码行有什么问题 movl eax rdx 解决方案表明目标操作数的大小错误 仅当从较大尺寸变为较小尺寸时才 非法 还是源操作数和目标操作数对于所有指令 或至少 mov 类类型 必须具有相同的尺寸 是的
  • GCC ARM 汇编预处理器宏

    我正在尝试使用汇编 ARM 宏进行定点乘法 define MULT a b asm volatile SMULL r2 r3 0 1 n t ADD r2 r2 0x8000 n t ADC r3 r3 0 n t MOV 0 r2 ASR
  • 为什么允许 gcc 从结构推测加载?

    显示 gcc 优化和可能出现故障的用户代码的示例 下面代码片段中的函数 foo 将仅加载结构成员 A 或 B 之一 至少这是未优化代码的意图 typedef struct int A int B Pair int foo const Pai
  • 切换 C++ 函数的调用堆栈

    这是我的上一个问题 https stackoverflow com questions 1371547 explanation of asm code关于切换 C 调用堆栈 但是 C 使用不同的调用约定 thiscall 并且可能需要一些不
  • 比较堆栈中的两个值? [复制]

    这个问题在这里已经有答案了 我卡住了 在我的汇编代码中 我想比较两个值 堆 x86 语法 AT T cmpl 4 ebp 4 ebp 错误 cmp 的内存引用太多 我认为不可能根据乘数和 ebp 来比较两个值 有什么建议 您可以使用 CMP
  • 使用指针作为函数参数时的段前缀

    我有一个汇编 c 问题 我刚刚读到了有关段前缀的内容 例如 ds varX 等 前缀对于逻辑地址的计算很重要 我也读到 默认值是 ds 一旦您使用 ebp 寄存器来计算地址 就会使用 ss 对于代码 cs 是默认值 这一切都是有道理的 现在
  • 如何正确确定Intel处理器的-march和-mtune?

    我目前正在从源代码构建一个对我来说性能至关重要的软件 因此 我想对其进行优化 以便在我的特定 Intel CPU 上运行 构建过程要求我设置 march 和 mtune 标志 如果在我的处理器节点上我使用 gcc march native
  • 使用汇编器 8086 显示表的总和

    我正在编写一些代码 允许我对表进行求和 然后使用汇编语言显示其结果 这是我到目前为止所想到的 data segment tab db 9 dup 3 5 8 4 7 1 6 7 0 resultat db data ends code se
  • x86 汇编中 cmove 指令的用途?

    反汇编可执行文件时我遇到了cmove操作说明 我已经在互联网上搜索过 但我只发现这是一个有条件的移动 如果源和目的地相等mov发生 我还不明白为什么我需要它 因为它不会改变操作数 它的目的是什么 The CMOVcc指令不比较源和目标 它们
  • 比较击键 - 装配 CCS64

    I want to compare keystrokes in assembly CCS64 If I type in the same key in a row I want to do something example A A do
  • x86 Assembly:很难找到无限循环挑战的想法

    我打算和我的朋友们进行一场类似于 corewars 的比赛 我们使用与原始游戏相同的内存网格 在游戏中 我们每个人都应该写一个 保险箱 它是一个不超过 25 行的无限循环 每个 安全 都有一个技巧或代码可以停止循环 从而破坏 安全 例如 S
  • 大端和小端表示

    如果我写以下内容 section data align 4 X db 1 Y dw 5 Z db 0x11 section text add dword X 0xAA000101 我试图理解大端和小端表示之间的差异 但我不明白每个表示的每个
  • 什么是微编码指令?

    我看过很多参考微编码指令的文献 这些是什么以及为什么使用它们 CPU 读取机器代码并将其解码为内部控制信号 将正确的数据发送到正确的执行单元 大多数指令映射到一个内部操作 并且可以直接解码 例如 在 x86 上 add eax edx只是将
  • 在 DLL 中,函数表的结构如何?

    我一直在研究不明确支持我的操作系统的设备库的实现 特别是 我有一个反汇编的 DLL 以及大量的支持源代码 现在 功能表 导出表是如何构造的 我的理解是 第一个结构 data部分是 RVA 表 接下来是通过索引链接到第一个地址表的字符串表 这
  • I 类型指令的 MIPS 周期数 (addi)

    So on https en wikipedia org wiki Cycles per instruction https en wikipedia org wiki Cycles per instruction它说 对于多周期MIPS
  • 现代 x86 硬件不能将单个字节存储到内存中吗?

    说到 C 的并发内存模型 Stroustrup 的C 编程语言 第 4 版 第 1 节 41 2 1 说 就像大多数现代硬件一样 机器无法加载或存储小于单词的任何内容 然而 我的 x86 处理器已经有几年的历史了 它可以并且确实存储小于单词

随机推荐

  • 是否可以在不与ios集成的情况下下载Google Drive文件

    是否可以从 google 驱动器下载文件而不集成它的 sdk 类文件 或身份验证 考虑以下场景 我在我的示例应用程序中使用了 UIWebView 我通过 UIWebView 登录 Google Drive 就像登录 Google Drive
  • svg转png时添加css样式

    I have the following problem I am converting the svg plot created by d3 js but the png is completely different from svg
  • 如何将 MIME 类型添加到 .htaccess?

    我想将以下 MIME 类型添加到由以下人员运行的网站Apache
  • 在 pandas 中添加时间戳偏移量

    我有一个数据框 df 当我运行 print df index 时 我得到 DatetimeIndex 2011 08 05 00 00 00 04 00 2011 08 05 01 00 00 04 00 2011 08 05 02 00
  • Rake on Rails 3 问题

    我将 Rails 2 3 应用程序移至 Rails 3 该应用程序实际上运行得很好 但我对 rake 任务有问题 看起来环境文件中的配置未正确初始化 我得到的错误是 rake aborted undefined method cache c
  • 从源代码构建 Android 时如何查看实际的 gcc 选项?

    我正在尝试调试我的 android 源构建环境 Android mk 文件 默认情况下 make 系统在构建过程中不显示 gcc 命令行 实现这一点的最佳方法是什么 对于提出请求的人来说可能为时已晚 但对于其他提出请求的人来说可能已经太晚了
  • 如何使用返回键关闭 UITextView 的键盘?

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 In IB s library the introduction tells us that when the return
  • sqrt(1.0 - pow(1.0,2)) 返回 -nan [重复]

    这个问题在这里已经有答案了 我发现了一个有趣的浮点问题 我必须在代码中计算几个平方根 表达式如下 sqrt 1 0 pow pos 2 其中 pos 循环从 1 0 到 1 0 1 0 对于 pow 来说很好 但是当 pos 1 0 时 我
  • 为什么递归 grep 显示“没有这样的文件或目录”错误?

    我正在 grep 本地 svn 目录 当我跑步时grep r pattern 我收到一些错误 例如 grep Data test 没有这样的文件或目录 谁问的grep寻找不存在的文件 gt grep version grep GNU gre
  • Spark MLlib LDA,如何推断新的未见过文档的主题分布?

    我对使用 Spark MLlib 应用 LDA 主题建模感兴趣 我已经检查了代码和解释here http spark apache org docs latest mllib clustering html latent dirichlet
  • 内部模板类型 std::vector> 的函数模板重载或专门化

    如何实现内部模板类型的函数模板重载std vector
  • Typescript 中的“通用类型‘Feature’需要 1 个类型参数”是什么意思?

    我尝试在打字稿中使用 GeoJson 但编译器会抛出这两个变量的错误 Generic type Feature
  • C# 通用继承解决方法

    Example 我想要几个从 TextBox 或 RichTextBox 派生的专用文本框 它们都从 TextBoxBase 派生 class CommonFeatures
  • 删除标签并仅在条形图的工具提示中显示值

    我在用ChartJS http www chartjs org docs 用于创建图表的库 在工具提示中 我显示了我创建的数据集中的数据值 它适用于图表类型为doughnut 否则它不起作用 以防万一或bar or 水平条 charts 无
  • 从 CGImage 获取 RGB 像素数据

    我正在尝试从 CGImage 访问像素数据 我希望能够以整数形式访问 RGB 值 我想我已经接近这个代码了 UIImage theImage UIImage imageNamed rgb png CGImageRef cgImageRef
  • 多维缩放后如何获取特征值?

    我有兴趣查看执行多维缩放后的特征值 什么函数可以做到这一点 我看了看文档 http scikit learn org stable modules generated sklearn manifold MDS html sklearn ma
  • Qt Webengine 渲染到打印

    有没有办法使用 QtWebEngine 将 HTML SVG 渲染到打印机 PDF 和光栅图像 我们想从WebKit切换到WebEngine 因此使用WebKit的QWebView不再是一个选择 宣布 Qt Web Engine 将支持打印
  • 如何解决具有 3 个变量的背包问题?

    解决与背包问题相关的问题的最佳方法是什么 该问题有 3 个变量 例如 价值 重量和体积 尽可能的最大值 有最大重量和体积限制 我尝试过根据其值 重量 体积 使用定义的索引 但我相信这不会给我最好的解决方案 所以我进行了搜索 有些人建议使用动
  • Haskell 类似实例?

    我是 Haskell 的新手 所以我的问题可能很愚蠢 我想要一个功能 show2 Show a gt a gt String 这会返回show a对于任何a but a如果 a 是它本身String 我该如何实施 附 如果这个函数已经在某个
  • 用汇编语言更改 CS:IP

    怎么可以强行改变CS and IP都是汇编语言 ORG指令可用于更改的数量IP 但是你如何改变CS 基本上我想使用汇编来实现多线程 许多论坛 包括堆栈溢出中的一个问题都说这是不可能的 但是即使 C 是由汇编代码制成的 它如何具有多线程选项呢