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 test.obj

위의 예와 유사한 x86 기계어 코드를 실행할 수 있어야 합니다. libx86emu는 처음 세 개의 명령어를 디코딩하고 실행한 다음 네 번째 명령어를 잘못 디코딩합니다. OS 지원 없이 32비트 x86을 에뮬레이션할 수 있으면 됩니다.

libx86emu x86test의 회귀 테스트 중 약 절반만 통과했습니다.

답변1

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

libx86emu "Steffen Winterfeldt"의 작성자는 libx86emu/demo/x86emu-demo.c를 업데이트하여 이제 "32비트 모드" 명령줄 인수를 갖게 되었습니다.

이전에는 코드가 기본 16비트 모드에서 실행되었습니다.

관련 정보