r2dec-js icon indicating copy to clipboard operation
r2dec-js copied to clipboard

Missing instructions for x86

Open radare opened this issue 6 years ago • 8 comments

  • [ ] __asm (bt ecx, eax);
  • [x] __asm (pxor xmm0, xmm0);
  • [ ] __asm (movdqu xmm0, xmmword [r14]);
  • [ ] __asm (movdqa xmmword [r13 + 0x110], xmm0);
  • [ ] __asm (movdqa xmmword [rbx], xmm0);
  • [ ] __asm (aeskeygenassist xmm1, xmm0, 1);
  • [ ] __asm (pshufd xmm0, xmm0, 0xff);
  • [ ] __asm (pslldq xmm1, 4);
  • [ ] __asm (punpcklqdq xmm1, xmm0);
  • [ ] __asm (palignr xmm3, xmm0, 8);
  • [x] __asm (imul eax, ebx, imm8)
  • [x] __asm ("fld qword [local_8h]");
  • [x] __asm ("fmul qword [0x0047f570]");
  • [x] __asm ("fstp qword [local_10h]");

radare avatar Apr 11 '18 21:04 radare

also __asm(imul eax, ebx, imm8)

rfc2119 avatar Sep 13 '18 18:09 rfc2119

@elicn can you check the imul? @rfc2119 can you provide an example?

wargio avatar Sep 13 '18 20:09 wargio

imul is fixed, thanks! https://asciinema.org/a/tioh1c9gJk7FCjNE9dPpaDLaI

rfc2119 avatar Sep 14 '18 09:09 rfc2119

ok

wargio avatar Sep 14 '18 09:09 wargio

  • [ ] Also missing instructions to work with FPU register stack. Like this:
__asm ("fld qword [local_8h]");
__asm ("fmul qword [0x0047f570]");
__asm ("fstp qword [local_10h]");

Diadlo avatar Dec 06 '18 07:12 Diadlo

added to the list above, thanks

wargio avatar Dec 06 '18 09:12 wargio

@wargio pxor was already implemented in fb71f5854942123a5fd256b75c5d76e355c61f0d. See here

Diadlo avatar Dec 06 '18 18:12 Diadlo

I checked all the PE from r2r and the MachO from /bin/* and here are the missing one's

  • [ ] __asm ("adc al, al");
  • [ ] __asm ("addsd xmm1, xmm0");
  • [ ] __asm ("andnps xmm0, xmm1");
  • [ ] __asm ("arpl word [ebp + 0x2d], sp");
  • [ ] __asm ("bts rcx, 0x2a");
  • [ ] __asm ("cli");
  • [ ] __asm ("cmovns r14d, r13d");
  • [ ] __asm ("cvtsi2sd xmm0, qword [rbx]");
  • [ ] __asm ("enter 0, 0");
  • [ ] __asm ("fadd st(1)");
  • [ ] __asm ("fcomip st(1)");
  • [ ] __asm ("ficom word [eax]");
  • [ ] __asm ("fild dword [0x40070]");
  • [ ] __asm ("fld1");
  • [ ] __asm ("fldz");
  • [ ] __asm ("fninit");
  • [ ] __asm ("fst qword [eax]");
  • [ ] __asm ("fsubp st(3)");
  • [ ] __asm ("fxch st(1)");
  • [ ] __asm ("insb byte es:[edi], dx");
  • [ ] __asm ("insw word es:[di], dx");
  • [ ] __asm ("int3");
  • [ ] __asm ("into");
  • [ ] __asm ("jcxz 0x22b");
  • [ ] __asm ("jo 0x10001102");
  • [ ] __asm ("jrcxz 0x4010c4");
  • [ ] __asm ("les eax, [ebx + eax*8]");
  • [ ] __asm ("lock adc byte [eax], al");
  • [ ] __asm ("loop 0x222");
  • [ ] __asm ("loopne 0x100010de");
  • [ ] __asm ("movaps xmmword [var_10h], xmm7");
  • [ ] __asm ("movups xmm0, xmmword [r13 + rax*8 + 0x700]");
  • [ ] __asm ("mulsd xmm1, qword [0x100003228]");
  • [ ] __asm ("outsb dx, byte [esi]");
  • [ ] __asm ("outsd dx, dword [esi]");
  • [ ] __asm ("outsw dx, word [si]");
  • [ ] __asm ("pextrq rax, xmm0, 1");
  • [ ] __asm ("popal");
  • [ ] __asm ("psrldq xmm0, 8");
  • [ ] __asm ("rcl bx, 1");
  • [ ] __asm ("rdmsr");
  • [ ] __asm ("retf");
  • [ ] __asm ("sti");
  • [ ] __asm ("xorps xmm0, xmm0");

Maijin avatar Apr 21 '19 16:04 Maijin