You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Calling b.raw for every call to the instrumentation builder is decoding the instruction sequence each time. If we had a way of constructing (thread-global) raw expressions that could be reused, then we could avoid this overhead
Calls to raw assembly instructions must un-reserve registers, commit the abstract state, and re-reserve registers. This is really inefficient, especially for sequences of raw assembly. At a minimum, we could elide the reservation and commit if there's no other changes (i.e. for hooks that only contain calls to b.raw).
I believe dynamorio provides special instruction builders for if fuck has an address reachable from the code cache (e.g. you can do LEA with a 32-bit offset from RIP rather than constructing a 64-bit immediate and loading from that.
Follow-up to #5
fuckhas an address reachable from the code cache (e.g. you can do LEA with a 32-bit offset from RIP rather than constructing a 64-bit immediate and loading from that.