-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Add command to rebase analysis information #13753
Comments
Isn't this a duplicate of #6495 ? |
Also related #5905 |
yes it is. we can close the old one, because it's better described/explained in here |
im thinking that this wont work unless i provide the full mapping translations of all the regions at once. otherwise we can recursively rebase things that fall on other used areas and result in a broken state |
maybe do this with two different RCore instances like radiff works? |
This is also related to #13390. One question to ask, I think, is what are the use cases for the analysis rebasing command? The most obvious one to me is when switching into and out of debugging mode (in particular ASLR scenarios as you've mentioned). If that's the only meaningful use case, we might have some less-general solutions that still work vs. needing to generally support rebasing an For example, maybe have two
The rebasing operation could be contained entirely within the processing of This might simplify:
There's obviously other complications, in particular synchronizing the analysis data as it is modified in either mode. My guess is that would be simpler to implement than rewriting |
As happens so often, just as I was drifting off to sleep I had an idea that might result in both fewer changes to the existing analysis code base while also being more flexible than what I suggested yesterday. Rather than keep multiple copies of Each entry in the table would include, in addition to a reference to the address field on a specific object, whatever information was needed to support rebasing the address. Rebasing for debugging would mean walking the entire table and rebasing the address through each reference, according to the current maps (or lack thereof). Rebasing with the Any address-based indexes ( I'm also not clear enough yet on how analysis data is persisted with r2, so I'm not sure how or if that would need to be updated. The clear benefits I see to this approach over the other choices mentioned above:
I'm very new to the radare2 codebase, so please let me know if I'm missing something major with this idea. |
Will look into it, need to finish rebase based on debug maps instead of sections first. |
On static should keep using sections
… On 17 Jan 2020, at 12:51, yossizap ***@***.***> wrote:
Will look into it, need to finish rebase based on debug maps instead of sections first.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Too much work left, maybe tomorrow morning. |
We need a command that takes this as arguments:
The command will walk all the comments, hints, breakpoints, functions, basic blocks, types bindings, xrefs... and rebase all of them that are poiniting in the specified range.
Example propsal:
When this command (and api) is ready, we can use it to solve the problem of ood in aslr by rebasing all the debugmaps comparing them to the new ones and calling aR.
The text was updated successfully, but these errors were encountered: