将机器码转换为 LLVM IR(将 X86_64.X86.ARM 反汇编/重新汇编为 LLVM 位码)
我想将 X86_64、x86、ARM 可执行文件转换为 LLVM IR(反汇编)。 您建议什么解决方案?…
从操作码查找指令中操作数的数量
我打算编写自己的小型反汇编程序。我想解码在读取可执行文件时得到的操作码。我看到以下操作码: 69 62 2f 6c 64 2d 6c 必须对应于: imul $0x6c2d646…
x86 操作码编码中的方向/符号扩展位
在 x86 指令集中,操作码索引 1 处的位可以是指定目标操作数和源操作数的方向位,也可以是符号扩展位。 例如 add 00 /r ADD r/m8 , r8 与 02 /r ADD r…
没有 %gs 寄存器的 x86 子集:使用 %gs 而不是捕获模拟的二进制修补代码?
由于过于复杂的原因无法在这里解释,我需要在 x86 子集的平台上运行 x86 GCC 编译的 Linux 程序。该平台没有%gs寄存器, 这意味着它必须被模拟,因为 …
MIPS 堆栈帧(和“addiu”指令混淆)
我是 MIPS 新手,正在尝试了解函数的反汇编。 (编辑:它动态链接到 /lib/ld-uClib.so.0 并使用一些常用的 libc 函数,所以我假设它是使用 uClibc 工…
使用 Br_S OpCode 使用 Reflection.Emit.Label 指向下一条指令
我正在尝试解析 IL 以发出一种方法。我已经在 string[] 中获得了一个方法的 IL 代码,其中每个字符串都是一个 IL 指令。我循环遍历这个数组并使用 ILG…
在 C/C++ 中解码和匹配 Chip 8 操作码
我正在编写一个 Chip 8 仿真器作为仿真的介绍,但我有点迷失了。基本上,我读取了 Chip 8 ROM 并将其存储在内存中的字符数组中。然后,按照指南,我使…
如何手动解释操作码?
77f4bcbc 8945fc mov dword ptr [ebp-4],eax 规则如下: 88 /r MOV r/m8,r8 2/2 Move byte register to r/m byte 89 /r MOV r/m16,r16 2/2 Move word …
为什么 JSR/RET 不推荐使用 Java 字节码?
有谁知道为什么 JSR/RET 字节码对在 Java 6 中被弃用? 我在网上找到的唯一有意义的解释是,它们使运行时的代码分析变得更加困难且执行速度更慢。有谁…
如何在 Windows XP/7 机器上找到内存中的字节序列?
问题:我正在为学校开发一个项目(我的选择),它是一个程序加载器/DLL 注入器,我最初发现的想法 此处,进行修改以满足我的需要,并将 DLL 的 ASM 部…