Radare2: x86 assemblers mayhem

Created on 25 Feb 2014  Â·  17Comments  Â·  Source: radareorg/radare2

We already have several x86 assemblers, but none of them is complete. I would suggest cleaning up that and enhancing the testsuites to make this possible.

Also, I've noticed that there are two plugins that do the same. we have to choose which want to kill. x86.as and gas.

RAsm-Assembler hackaton

Most helpful comment

What about:

  • [x] Merge tab in nz #2095
  • [ ] Keep .nz/.tab merged in the main repo and move all the others in the r2e and available via r2pm
  • [x] Create a strong/good canned speech for github complain regarding missing opcode suggesting trying using keystone and explaining where to add the support or at least check if a test is existing
  • [ ] Create a radare.today article that can be linked in the cannedspeech

All 17 comments

hm, vote for keep as! (since as is nice and simple in console, does it count? :)

What about removing all of them, except x86.nz, since x86.olly is ugly and we're planing to ditch x86.udis anyway.

X86.olly allows to assemble a simgle instruction in different modes. I think its a nice, but totally incomplete and only supports 32bits.

But it has been useful to assemble code for intel without depending on gnu to test the nz one.

Instead of removing it should be moved to extras. Also. Its GPL

On 16 Jan 2015, at 06:30, jvoisin [email protected] wrote:

What about removing all of them, except x86.nz, since x86.olly is ugly and we're planing to ditch x86.udis anyway.

—
Reply to this email directly or view it on GitHub.

Also, udis is faster than capstone, and way smaller. This is.. Rop search take less time.

On 16 Jan 2015, at 06:30, jvoisin [email protected] wrote:

What about removing all of them, except x86.nz, since x86.olly is ugly and we're planing to ditch x86.udis anyway.

—
Reply to this email directly or view it on GitHub.

This will be fixed probably with keystone integration, is the issue still relevant ?

Not really, since keystone is C++, and r2 need something embedded.

true.

What about:

  • [x] Merge tab in nz #2095
  • [ ] Keep .nz/.tab merged in the main repo and move all the others in the r2e and available via r2pm
  • [x] Create a strong/good canned speech for github complain regarding missing opcode suggesting trying using keystone and explaining where to add the support or at least check if a test is existing
  • [ ] Create a radare.today article that can be linked in the cannedspeech

Maybe merge tab and nz?

On 17 Jun 2016, at 13:58, Maijin [email protected] wrote:

What about:

Keep .nz in the main repo and move all the others in the r2e
Create a strong/good canned speech for github complain regarding missing opcode suggesting trying using keystone and explaining where to add the support or at least if a test is existing
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@Svenito

I'm still working on merging tab and nz BTW. Doing as much as I can time permitting.

cool! keep up the good work :)

On 28 Jun 2016, at 10:29, Sven Steinbauer [email protected] wrote:

I'm still working on merging tab and nz BTW. Doing as much as I can time permitting.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/radare/radare2/issues/660#issuecomment-228985343, or mute the thread https://github.com/notifications/unsubscribe/AA3-lvO9FXAMQVnJ0T3KQeT8Tz9w9fPGks5qQNtTgaJpZM4Bkwa7.

Canned Speech created if you want to use it too:

Greetings,

x86.nz (x86 handmade assembler) is one of the many x86 assemblers available in radare2 and is updated frequently. Please add a test case so we can fix x86.nz in https://github.com/radare/radare2-regressions/blob/master/t.asm/x86/nz/x86_asm You can do so with github web editor without even cloning the repo.

You can contribute to x86.nz by completing the following file https://github.com/radare/radare2/blob/master/libr/asm/p/asm_x86_nz.c.
You can also use keystone(http://keystone-engine.org) within radare2/rasm2 by installing the radare2 plugin via r2pm :

    r2pm -i keystone-lib
    r2pm -i keystone
then
    rasm2 -a x86.ks…
or in radare2 session
    e asm.assembler = x86.ks

Others x86 assemblers are also available trough r2pm or master (see rasm2 -L list):

a___  16 32 64   x86.as      LGPL3   Intel X86 GNU Assembler
a___  16 32 64   x86.nasm    LGPL3   X86 nasm assembler
a___  16 32 64   x86.nz      LGPL3   x86 handmade assembler
ad__  32         x86.olly    GPL2    OllyDBG X86 disassembler

So for the move: olly and as ? what about also nasm so we just have nz in main repo and the rest in r2pm.

@Svenito ping

Back in the saddle. I assume that

Keep .nz/.tab merged in the main repo and move all the others in the r2e and available via r2pm

is the next item to tackle

Closing this for now.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ret2libc picture ret2libc  Â·  6Comments

XVilka picture XVilka  Â·  3Comments

ret2libc picture ret2libc  Â·  6Comments

radare picture radare  Â·  8Comments

XVilka picture XVilka  Â·  6Comments