如何将委托转换为 DRAM 中的绝对地址?
How to translate a delegate to absolute address in DRAM?
我想将委托成员 .ptr
和 .funcptr
转换为与 DRAM 中可执行映像中的某些内容匹配的绝对地址。
目标不是调用,也不是修改,而是允许目标在 运行 时间反汇编自己,当它自己的图像加载到 DRAM 中时。
到目前为止,它已经适用于全局函数。
可能吗?
委托的地址是.funcptr
属性的值。 属性 的类型有点误导 - 它是 function
类型并且 not 列出了实际预期用于传递上下文的隐藏参数,但是如果只是获取地址,您可以忽略类型(如果您想更改类型,则显式转换为 void*
或 size_t
)并只查看地址。
这不是物理内存中的地址,您必须向操作系统询问该地址,但由于它提供的虚拟地址是由处理器自动转换的,因此它很可能就是您想要的。
我想将委托成员 .ptr
和 .funcptr
转换为与 DRAM 中可执行映像中的某些内容匹配的绝对地址。
目标不是调用,也不是修改,而是允许目标在 运行 时间反汇编自己,当它自己的图像加载到 DRAM 中时。
到目前为止,它已经适用于全局函数。
可能吗?
委托的地址是.funcptr
属性的值。 属性 的类型有点误导 - 它是 function
类型并且 not 列出了实际预期用于传递上下文的隐藏参数,但是如果只是获取地址,您可以忽略类型(如果您想更改类型,则显式转换为 void*
或 size_t
)并只查看地址。
这不是物理内存中的地址,您必须向操作系统询问该地址,但由于它提供的虚拟地址是由处理器自动转换的,因此它很可能就是您想要的。