Skip to content
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

function wrapping support #296

Closed
derekbruening opened this issue Nov 27, 2014 · 2 comments
Closed

function wrapping support #296

derekbruening opened this issue Nov 27, 2014 · 2 comments

Comments

@derekbruening
Copy link
Contributor

From [email protected] on April 21, 2010 12:02:53

Wrapping app functions is not a simple task when both a pre and post
control point are needed. DR should provide support for this as it's a
commonly needed feature.

Dr. Memory considered 3 methods of locating the return point:

  • CFG analysis at init time => place post-hook at each return instr
  • at call site identify target => place post-hook at post-call-site
  • inside callee obtain retaddr => place post-hook at retaddr
    Each has its own complications. See the tutorial slides for more details.

We've also discussed other methods but they're not perfect:

  • adding an extra frame on app stack: not fully transparent though
  • various methods of avoiding recursion by generating the 1st instr of the
    target func elsewhere or inserting in a bb that targets the 2nd instr
  • calling app func natively: not ideal

We want:

  • full transparency
  • target func under DR
  • pre and post hooks native

Original issue: http://code.google.com/p/dynamorio/issues/detail?id=296

@derekbruening
Copy link
Contributor Author

From [email protected] on June 02, 2010 05:47:34

Issue 314 has been merged into this issue.

@derekbruening
Copy link
Contributor Author

From [email protected] on March 29, 2011 11:52:47

This issue was closed by revision r700 .

Status: Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant