-
-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make radeco universal #261
Comments
I would say lets go for making it universal. Suggestions for the better interface are welcome. cc @chinmaydd @sushant94 @kriw @radare @wargio @condret @thestr4ng3r |
i agree on going universal, but i don't know which type of interface would fit best for this purpose. |
What I think we at least need 3 groups:
|
Currently, I see we have esil as the low-level language. If we insist so, we then need to have better support for lifting other IR into esil. A better construction process is what we have. |
@Escapingbug for architecture and OS/cc info we have already https://github.com/radareorg/radeco-lib/tree/master/arch-rs, it is not yet properly integrated but this is easier than writing from scratch. |
As for SSA Construction, I think we can use Radeco IR (non-SSA form) as Low IR. |
Agree on this point on using Radeco IL as the lower level IR. We might add
some changes if required though, but in general should be fine.
…On Sat, Jun 8, 2019, 6:42 AM kriw ***@***.***> wrote:
As for SSA Construction, I think we can use Radeco IR (non-SSA form) as
Low IR.
Radeco IR does not have to be SSA form, so I guess we can easily reuse the
IR.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#261>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AABRT7NL6632PWLJL2RDXW3PZLP3RANCNFSM4HSBWC7Q>
.
|
In my previous issue in #259 , it seems quite possible to make radeco-lib independent of radare2, thus making everything universal.
I have dug a little bit, and have some thought about how to implement this. But as I'm quite new to this project and have no knowledge about r2, some discussion and instructions are needed for me to proceed.
If I'm right about this, current most important communication with r2 includes:
RadecoProject
andRadecoModule
: provide some useful information such as calling-convention, register profiles, function symbols, etc.So my idea about this:
Provider
to provide them, aProvider
then works as a communication layer between disassembler (radare2, currently) and Radeco-lib. For each useful information, there will be a trait to describe what is needed forProvider
to implement.Overall, after the modification, the workflow will be:
RadecoModule
saves theProvider
, which is specified when constructing it.Provider
Provider
converts its original form IR into Low IR.And the instruction I currently need:
Provider
s to implement.And also, if we all agree to make radeco-lib (and radeco as well maybe?) universal, some decisions may work differently as before. Currently, I see a lot of issues concerning the integration with r2. However, I highly recommend this to happen as this project really has such potential to be not just r2.
The text was updated successfully, but these errors were encountered: