I am using iaito (official graphical interface for radare2) dissasembler here is an example instruction
0x1400371d4 xor cl, cl
0x1400371d6 invalid
0x1400371d7 shl eax, 0x6f
;-- str.oJ:
0x1400371d9 .string "oJ{xe5xa5x97" ; len=7
0x1400371e0 or esi, eax
0x1400371e2 hlt
0x1400371e3 hlt
0x1400371e4 xor al, 0x23 ; 35
0x1400371e6 mov edi, 0xbfbd17fa
0x1400371eb hlt
0x1400371ec fisubr dword [0x1a4ad7568]
0x1400371f2 invalid
0x1400371f3 jrcxz 0x1400371e6 ; unlikely
0x1400371f5 cmp byte [rdi + rdi*2], dl
0x1400371f8 xchg edx, eax
0x1400371f9 mov esp, 0xa05ee3f0
0x1400371fe hlt
0x1400371ff invalid
0x140037200 invalid
0x140037201 invalid
0x140037202 invalid
0x140037203 iretd
0x140037204 rcr dword [rax], 1
0x140037206 scasb al, byte [rdi]
0x140037207 invalid
the invalid is not an actual assembly instruction yet for some reason iaito is showing that, but when I am using x64dbg I dont seem to see those “invalid” instructions? any reasons why?
because of these invalid instructions i am not able to emulate the application in Iaito
Previously I was using cutter which had the same problem, so I switched to Iaito which was the original disassembler cutter was built on. Some sections were fixed however some sections still have invalid instructions.