Ben-Lichtman / ropr

A blazing fast™ multithreaded ROP Gadget finder. ropper / ropgadget alternative

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support more architectures

Ben-Lichtman opened this issue · comments

commented

Currently ropr only supports x86 / x86_64. This is partially just due to the disassembler being only compatible with x86.

Consider the possiblity of switching to a new disassembler (maybe yaxpeax or even hand-rolled?) to get more architectures.

This may also require #9 since we would need to define rules / patterns for both arm and x86 at very least

Hi, Ben. I would be interested in adding support for RISC-V to ropr. Would you be amenable to that?

That sounds great, however I fear that it won't be easy - the disassembler being currently used only supports x86, so a different disassembler would be needed, and capstone tends to be slow. But I am definitely amenable to risc-v especially if that means a better disassembler.

One of my long-term goals is to lift the disassembly to a higher level and allow you to define rules semantically. But that's a lot of work and I don't have a lot of time :/

If we can't find a disassembler that covers both then it might work to define a Disassembler Trait and impl a struct for each architecture using whichever disassembler is suitable for the target arch. Or maybe I am way off base and that won't work for a reason that you've already thought of.

I also like your idea of lifting to a higher level but agree that it would be a lot of work like you say.

Let me gather my thoughts over the weekend and put together a proper RFC so that you can see what I'm thinking.