- If I have to build a replica of DynamoRIO, then what are the components I need to build? Is it like I have to design a complete new loader for getting the instruction trace of the executable?
There are several components required depending on the sophistication of your intended DBI engine. Indeed, one of them is a custom loader to inject the DBI engine into the process being analysed (prior, this was done using LD_PRELOAD on Linux). But of course, there are other high-level components, including decoders, code caches, a control dispatcher and a context-switching mechanism.
- I still couldn't get how the tools like Dynamorio, pintool are able to show the address of the instructions which are getting executed.
Essentially, DynamoRIO enables runtime analysis, with access to the machine state.
Check out these relevant tool samples to see how to use the API to obtain such data:
- Are there any recorded lectures w.r.t working of DynamoRIO which we can go through it?
- This question may sound off-topic, but any idea, why intel pin tool discontinued the Android support after the release of 3.2 version of pin? The last version they can support is Android M.
I do not know why, and perhaps it is unlikely that other DR devs know the reasons either. DynamoRIO and Pin are different DBI frameworks, and are not associated with each other.