所以,我有一个unsigned int
变量,上面存储了一个十进制值地址,比方说unsigned int var = 1232342
,我想做的是,在不知道变量的类型但知道它的大小和存储地址的情况下,获取值作为一个byte array
. 例如,假设我有一个int var = 20
地址和字节大小。我希望能够转到该地址并返回一个字节数组,在这种情况下[00001100]
,对于char
结构的变量和数据成员也是如此。
一点点伪代码将类似于:
for var.address until var.address = var.address + bytesize
do
byte_array = *var.address
var.address++
不过我遇到了一些问题,我对 C 有点陌生,所以我不知道如何将 unsigned int 视为地址/指针。其次,我不知道如何从地址中获取实际字节,每当我取消引用地址时,我得到的是它的实际值,但前提是我知道变量的类型。
一点背景知识: 我正在开发一个名为 Pin 的工具,它让我可以选择挂钩到正在运行的进程,然后我正在使用 DWARF 和 ELF 信息。所以我确实可以访问我试图访问的虚拟内存空间