typ1232
unread,Sep 8, 2025, 5:04:05 PMSep 8Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to DynamoRIO Users
Hi! I explored DynamoRIO a bit by reading, building a basic client and debugging a bit with WinDBG, but I could not figure out whether it is a good fit for what I'm aiming to do, yet.
Within a target application (no source code) I have a single function of interest that calls hundreds of other functions. I want to call this function with thousands of inputs and trace resulting memory accesses. I don't care about anything else in the app. It does not need to run from main() because the cascade of functions only needs a few global objects which are easy to set up manually.
Am I correct that there could be two widely different approaches?
- Use the high-level flow with drrun and a client that somehow makes sure to setup the function calls, catch crashes and run the drmemtrace next to that. I didn't find any API for actively changing control flow, it all seems to be about observing.
- Extract raw code from target application, setup environment and only surgically use low-level tools like the instrumentation API. Running with the code cache does not seem strictly necessary here - or not even possible if in the same process? This on the other hand seems to involve more manual work in terms of the setup and tracing the memory accesses myself.
Do you think DynamoRIO is suited for this task? Do you have some pointers on how to get started?