Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为什么 ia32/x64 操作码将文档 0x66 和 0xF2 映射为操作码 0x0F38F1 (CRC32) 的双重强制前缀?
在 Intel 64 和 IA 32 架构软件开发人员手册中 表 A 4 附录 A 3 第 2C 卷 订单号 326018 045US 2013 年 1 月 的 F 行是唯一的 因为它有一个前缀子行 用于组合两个前缀 0x66 和 0xF2
Assembly
x86
x8664
opcode
machinecode
是否可以反向解码 x86-64 指令?
我想知道是否可以反向解码 x86 64 指令 我需要这个作为运行时反汇编器 用户可以指向内存中的随机位置 然后应该能够向上滚动并查看指定地址之前有哪些指令 我想通过反向解码来做到这一点 x86 指令流不是自同步的 只能向前明确解码 您需要知
Assembly
x86
x8664
disassembly
machinecode
AMD64 -- nopw 汇编指令?
在此编译器输出中 我试图了解机器代码编码的方式nopw教学作品 00000000004004d0
c
gcc
Assembly
x86
machinecode
如何通过Opcode判断是否需要ModR/M?
我正在读ia 32指令格式 发现ModR M如果需要的话就是一个字节 但是如何判断是否需要 有人说是通过Opcode 但是如何呢 我想了解详细信息 有没有一些有用且权威的文档来解释详细信息 Intel 的第 2 卷手册详细介绍了每条指令的每
Assembly
x86
machinecode
opcode
instructionencoding
指令解码器如何区分前缀和主操作码?
我正在尝试了解 x86 指令编码格式 我读过的所有资料仍然让这个主题令人困惑 我开始有点了解它 但我无法理解的一件事是 CPU 指令解码器如何区分操作码前缀和操作码 我知道指令的整个格式基本上取决于操作码 当然还有操作码中定义的额外位字段
Assembly
x86
cpuarchitecture
machinecode
instructionencoding
汇编指令“Intel 组”类别源自何处?
在开发 86 DOS 应用程序的分支期间 lDebug https pushbx org ecm web projects ldebug 我遇到了称为 英特尔组 的指令类别 具体来说 组是指与使用相同 1 或 2 个操作码字节的一组指令相关
Assembly
x86
intel
x8616
machinecode
一个操作码字节如何根据“寄存器/操作码”字段解码为不同的指令?那是什么? [复制]
这个问题在这里已经有答案了 如何确定字节数组将转换成机器代码 我知道如果我在开头看到 0f 它是一个 2 字节指令 但我看到其他前缀 并且在 x64 调试器中的一些反汇编中我看到奇怪的交互 例如 48 83 C4 38 并且我可以在操作码参
Assembly
x8664
disassembly
machinecode
汇编代码可以跨平台吗?
0x042444FF inc dword ptr esp 4 0x042444FF是机器码 而inc dword ptr esp 4 是汇编代码 我知道 机器代码不是跨平台的 因为它取决于许多因素 汇编代码呢 它取决于CPU吗 汇编代码不是
Assembly
machinecode
Intel 在哪里记录了 ModR/M 字节中扩展寄存器 (R8-R15) 的编码?
我用的是官方最新的 英特尔 64 和 IA 32 架构软件开发人员手册合并卷 1 2A 2B 2C 2D 3A 3B 3C 3D 和 4 作为了解x86 64 ISA的机器级编码的参考 第 2 卷第 2 1 3 节中提供的 ModR M 和
Assembly
x8664
intel
machinecode
instructionencoding
GAS 汇编器不使用 2 字节相对 JMP 位移编码(仅 1 字节或 4 字节)
我正在尝试为不允许 0x00 字节的 CTF 挑战编写 shellcode 它将被解释为终止符 由于挑战的限制 我必须这样做 shellcode bulk 0x514 sizeof shellcode bulk filler bytes f
Assembly
x86
gnuassembler
Shellcode
machinecode
如何将 Intel 80386 机器代码转换为汇编语言?
我被赋予以下任务 考虑以下十六进制值序列 55 89 E5 83 EC 08 83 E4 F0 31 C9 BA 01 00 00 00 B8 0D 00 00 00 01 D1 01 CA 48 79 F9 31 C0 C9 C3 该字节
Assembly
x86
intel
disassembly
machinecode
"rep; nop;" 是什么意思?在 x86 汇编中意味着什么?它与“暂停”指令相同吗?
什么是rep nop mean 是不是一样pause操作说明 是不是一样rep nop 没有分号 和简单的有什么区别nop操作说明 它在 AMD 和 Intel 处理器上的表现是否不同 奖励 这些说明的官方文档在哪里 这个问题的动机 经过评
Assembly
x86
x8664
CPU
machinecode
x64 指令编码和 ModRM 字节
的编码为 call qword ptr rax call qword ptr rcx is FF 10 FF 11 我可以看到最后一个数字 0 1 来自哪里 寄存器编号 但我试图找出倒数第二个数字 1 来自哪里 根据AMD64 架构程序员手
Assembly
x86
x8664
machinecode
opcode
如何将十六进制序列毫无歧义地转换为汇编语言?
8B EC 56 8B F4 68 00 70 40 00 FF 15 BC 82 40 像上面这样的序列可以通过多种方式进行分段 每个段都可以翻译为相应的汇编指令 但是每个二进制可执行文件都有其唯一的确定的汇编 避免歧义的数学原理是什么
Assembly
x86
disassembly
machinecode
设计一个指令序列,以便在使用偏移量解码时执行其他操作
这个问题是后续问题那个问题 要设置此问题的上下文 请考虑无空编程 这是一种将指令序列 shellcode 伪装成字符串的技术 在C编程语言中 字节0标志着字符串的结束 因此指令序列必须设计为不包含任何此类字节 否则它将被滥用的字符串操作函数
Assembly
x86
obfuscation
machinecode
Antivirus
我们如何使用这些指令在汇编中使用跳转?
据我所知 组装中的跳跃基本上是从一个位置到另一个位置 说我们有 804828f 74 05 je XXXXXXX 8048291 e8 1e 00 00 00 call 80482b4 根据这本书 我真正要做的就是将 0x05 添加到 80
Assembly
x86
machinecode
攻击实验室中操作码末尾的 c3
我正在开发攻击实验室的一个版本 对于阶段 4 和 5 在农场操作中 我有几个以 c3 结尾的操作 但后面还有一个单独的操作retq c3 指令如下 0000000000401a6e
Assembly
x8664
exploit
machinecode
opcode
X86 编码近调用相对偏移量
假设我有以下一组说明 00E79E00 E8 AE580000 CALL someprocess 00E7F6B3 00E79E05 85C0 TEST EAX EAX output taken from OllyDbg 如何对近调用 0x
Assembly
x86
disassembly
machinecode
8086指令集:MODR/M字节
当提到 MODR M 字节时 8086 文档站点似乎有点模糊 并且很难理解它是什么和做什么 MODR M 字节中所有位的用途是什么以及可能的选项是什么 我找到的一些文档 https www scs stanford edu 05au cs2
Assembly
x8616
machinecode
operands
instructionencoding
x86-64 (AMD64) 架构中是否有默认操作数大小?
这是关于 x86 64 AMD64 架构中操作数大小覆盖前缀的问题 这是一堆汇编指令 nasm 及其编码 经过new我的意思是 r8 r15 寄存器 67 address size override prefix 4x operand si
Assembly
x8664
machinecode
prefixes
«
1
2
3
»