Ubuntu 16.04:如何让 libx86emu x86emu-demo 工作?

Ubuntu 16.04:如何让 libx86emu x86emu-demo 工作?

有谁知道如何让 libx86emu x86emu-demo 工作?

https://github.com/wfeldt/libx86emu

Test.bin
00000000 55 8B EC 51 C7 45 FC 00 00 00 00 8B 45 FC 50 E8 
00000010 09 00 00 00 83 C4 04 33 C0 8B E5 5D C3 55 8B EC 
00000020 B8 01 00 00 00 5D C3

00: 55                      push   ebp
01: 8b ec                   mov    ebp,esp
03: 51                      push   ecx
04: c7 45 fc 00 00 00 00    mov    DWORD PTR [ebp-0x4],0x0
0b: 8b 45 fc                mov    eax,DWORD PTR [ebp-0x4]
0e: 50                      push   eax
0f: e8 09 00 00 00          call   0x1d
14: 83 c4 04                add    esp,0x4
17: 33 c0                   xor    eax,eax
19: 8b e5                   mov    esp,ebp
1b: 5d                      pop    ebp
1c: c3                      ret
1d: 55                      push   ebp
1e: 8b ec                   mov    ebp,esp
20: b8 01 00 00 00          mov    eax,0x1
25: 5d                      pop    ebp
26: c3                      ret

./x86emu-demo -l 0 -s 0 测试.obj

我需要能够执行类似于上面示例的 x86 机器代码。 libx86emu 解码并执行前三个指令,然后错误地解码第四个指令。我只需要能够模拟 32 位 x86,不需要任何操作系统支持。

只有大约一半的 libx86emu x86test 回归测试通过。

答案1

https://github.com/wfeldt/libx86emu/issues/25

libx86emu“Steffen Winterfeldt”的作者更新了:libx86emu/demo/x86emu-demo.c,使其现在具有“32位模式”命令行参数。

以前,代码在默认的 16 位模式下执行。

相关内容