ptitSeb / box64

Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64 Linux devices
https://box86.org
MIT License
3.92k stars 290 forks source link

Unimplemented 32bits Opcode (6B 65 72 6E) 65 6C... #1985

Closed MikeWang000000 closed 4 weeks ago

MikeWang000000 commented 4 weeks ago

Running Box64 with wine (WoW64) 8.21, crashed

0721|0x7bea0b67: Unimplemented 32bits Opcode (6B 65 72 6E) 65 6C 62 61 73 65 2E 43 74 72 6C 52 6F 75 74
wine: Unhandled page fault on read access to 0000000000000072 at address 0000000081F3DA12 (thread 003c), starting debugger...

And Box86 with wine (32bit):

40981|0x7bf40b67: Unimplemented Opcode (6E) 65 6C 62 61 73 65 2E 43
40982|0x7bf40b67: Unimplemented Opcode (6E) 65 6C 62 61 73 65 2E 43
wine: Unhandled illegal instruction at address 7BF40B67 (thread 0038), starting debugger...
ptitSeb commented 4 weeks ago

I have added this opcode in box64, but I doubt this is legit code being executed. Now box64 will behave like box86 and trigger a priviledge instruction exception... tbh, that sequence of byte looks more like text than actual code, so I think something else is going wrong before that error.

Can you tell what are you trying to run here?

MikeWang000000 commented 4 weeks ago

🤦 You are right! It's a text string. I am running Tak audio decoder on Wine. Maybe it's a bug of Wine.

>>> '\x6B\x65\x72\x6E\x65\x6C\x62\x61\x73\x65\x2E\x43\x74\x72\x6C\x52\x6F\x75\x74'
'kernelbase.CtrlRout'
$ grep -lr 'kernelbase.CtrlRout' . || echo 'Not found'
./i386-windows/kernel32.dll
./x86_64-windows/kernel32.dll
$ grep -lr 'kernelbase.CtrlRout' ~/Takc.exe || echo 'Not found'
Not found

And I finally got this crash on a real x86_64 machine. It's not an issue of Box64/86 ... Sorry