-
Notifications
You must be signed in to change notification settings - Fork 566
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
for -early injection, handle app overlapping with libdynamorio.so #1227
Comments
From bruen...@google.com on July 24, 2013 16:00:46 xref issue #1004 |
From peter.goodman on July 29, 2013 08:54:27 Here is my attempt to understand each approach, please let me know if I'm way off!
[1] Is this sufficient for detecting PIEs? |
From bruen...@google.com on August 01, 2013 11:55:23
|
From bruen...@google.com on July 24, 2013 15:15:24
Xref issue #630 which got a little muddled with other reachability issues so
I'm opening a new issue. Xref issue #774 which solved all reachability issues
other than those with early injection.
DR's early injection init should be fixed to not map the app on top of
itself (today it passes MAP_FIXED and can clobber itself, resulting in
mysterious crashes). As a first step it should just bail there.
As a second step, if the app PIE we should just map it somewhere else.
To properly fix for non-PIE: the frontend does an exec, so it has little
control. Some ideas:
We build two different instances of libdynamorio.so: one with a low
preferred addr, and one with a high. The front-end picks based on
which doesn't overlap with the app.
The front-end is unchanged. DR maps a new DR in a different place when
it realizes there's a conflict.
Instead of exec-ing libdynamorio.so, we exec an interpreter script or
sthg which checks where to load DR.
The front-end creates a private copy of libdynamorio.so and changes its
preferred base by hacking the binary.
Original issue: http://code.google.com/p/dynamorio/issues/detail?id=1227
The text was updated successfully, but these errors were encountered: