Herschel icon indicating copy to clipboard operation
Herschel copied to clipboard

HrDecoder: invalid decoding of PUSH R8..15

Open X547 opened this issue 4 years ago • 2 comments

This is e0301dc20bbe201b0e6476709fafeb45e0d6de0b.

HrDecoder output:

00018060	55 	push  RBP
00018061	48|89 E5 	mov  RBP, RSP
00018064	41 	inc  ecx
00018065	57 	push  RDI
00018066	41 	inc  ecx
00018067	56 	push  RSI
00018068	41 	inc  ecx
00018069	55 	push  RBP
0001806A	41 	inc  ecx
0001806B	54 	push  RSP
0001806C	53 	push  RBX
0001806D	48|81 EC 08 01 00 00 	sub  RSP, 264
00018074	41 	inc  ecx
00018075	89 F6 	mov  esi, esi
00018077	48|89 FB 	mov  RBX, RDI

Correct output:

.text:0000000000018060                 push    rbp
.text:0000000000018061                 mov     rbp, rsp
.text:0000000000018064                 push    r15
.text:0000000000018066                 push    r14
.text:0000000000018068                 push    r13
.text:000000000001806A                 push    r12
.text:000000000001806C                 push    rbx
.text:000000000001806D                 sub     rsp, 108h
.text:0000000000018074                 mov     r14d, esi
.text:0000000000018077                 mov     rbx, rdi

X547 avatar Jan 31 '21 12:01 X547

I added x86_64 and SSE support to my ElfDecoder (https://github.com/X547/OberonUtils/tree/master/PE%20Decoder). Disassembler is good enough to correctly handle various PE and ELF binaries. Tested on Windows and Haiku system executables and libraries. Also I wrote RISC-V disassembler from scratch (WorkDecRISCV) in 2 days.

X547 avatar Feb 14 '21 03:02 X547

Thank you for the feedback and reports; i am currently in a deep 'sprint' since Jan 1st. Once I'm thru with it, I'll get back to the issues you've discovered.

adimetrius avatar Feb 15 '21 09:02 adimetrius