DynamoRIO 提供了三种风格的 API:
- 需要手动在 guest 源码中插桩的 API,client 和 guest 捆在一起
- client 是 standalone 的
- client 作为一个 so 加载到 drrun 里面,client 和 DynamoRIO 通过事件(hooks)沟通
最后一种方式最常见,因为不需要 guest 源码且 client 编写也比较简单。
- 需要手动在 guest 源码中插桩的 API,client 和 guest 捆在一起
- client 是 standalone 的
- client 作为一个 so 加载到 drrun 里面,client 和 DynamoRIO 通过事件(hooks)沟通
最后一种方式最常见,因为不需要 guest 源码且 client 编写也比较简单。
花了几天时间把 DynamoRIO 钦定参考论文 [1] 大致看完了(300 页),内容还算翔实。接下来又可以继续去看代码了。
[1] Efficient, Transparent, and Comprehensive Runtime Code Manipulation
[1] Efficient, Transparent, and Comprehensive Runtime Code Manipulation
[1:28 AM]ksco: if we use vector unit for sse opcodes, we will use vregs only or we use both vregs and 16 fprs?
[1:31 AM]ksco: I think the opcodes that use sse_get_reg (i.e. in extcache) are mostly already in good shape. The slow ones are those using GETGX/GETEX.
[1:32 AM]ksco: So using a extra cache for those slow ones only sounds like a good idea
[1:34 AM]ksco: But if opcodes using extcache and vector cache are interleaved, purging is needed.
[1:36 AM]ksco: also, I doubt the amount of SSE opcodes that can be implemented using vector extension, maybe not much.
关于使用 V 扩展加速 Box64 SSE 指令的想法
[1:31 AM]ksco: I think the opcodes that use sse_get_reg (i.e. in extcache) are mostly already in good shape. The slow ones are those using GETGX/GETEX.
[1:32 AM]ksco: So using a extra cache for those slow ones only sounds like a good idea
[1:34 AM]ksco: But if opcodes using extcache and vector cache are interleaved, purging is needed.
[1:36 AM]ksco: also, I doubt the amount of SSE opcodes that can be implemented using vector extension, maybe not much.
关于使用 V 扩展加速 Box64 SSE 指令的想法
