Support more architectures
Ben-Lichtman opened this issue · comments
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.