如何对系统调用 brk 进行二进制检测? (x86-64 Linux)(也许是 valgrind?)
我想检测 syscall brk (以及其他调用,但这是第一顺序,这对我来说最重要)在给定的二进制文件中(最好是在实际的系统调用/系统输入级别(x86-64 和 …
未知操作码“.pword”
当我编译代码时,出现未知操作码“.pword”错误。我的项目中唯一具有 .pword 的代码行是: do { __asm__ volatile (" .pword 0xDA4000"); Nop(); } wh…
转换一个 unsigned int +字符串到 unsigned char 向量
我正在使用 NetLink 套接字库 ( https://sourceforge.net/apps/wordpress/netlinksockets/ ),我想以我指定的格式通过网络发送一些二进制数据。 我计…
为什么 C# 编译器在 IL 中发出额外的操作码?
如果我有一个方法 Multiply 定义为: public static class Experiment { public static int Multiply(int a, int b) { return a * b; } } 那么为什么…
是否有 x86 操作码用于将立即字节移动到直接内存位置(不使用寄存器)?
有没有办法将特定的立即字节大小的数字“移动”到直接内存位置?即 MOV 10h,ffffh 要将值16写入内存地址65535?如果是这样,那是哪个操作码,或者我必…
将机器码转换为 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 …