C ++ - *(int **)地址?这里发生了什么?

时间:2018-05-05 17:29:06

标签: c++ pointers dll-injection

我浏览了一些代码,基本上是一个钩子(dll注入)。在代码中我发现了以下内容:

int Address = 0x12345678; //Address of a memory location of target process
int *Pointer = *(int**) Address; //What happens here?

所以它看起来像0x12345678(地址只是一个例子)是一个指针。所以我们想要得到的值存储在内存地址0x12345678。我猜对了,发生了以下情况:

-Cast指向int指针的地址并取消引用它,以获取存储在0x12345678的值

- 将内存地址0x12345678的值作为int-pointer进行处理

非常感谢你,对不起我的英语不好意思!

1 个答案:

答案 0 :(得分:0)

  

-Cast指向int指针的地址并取消引用它,以获取存储在0x12345678的值

没有。它将Address强制转换为指向int 指针的指针。并取消引用它,以获取存储在0x12345678

指向int 的指针
  

- 将内存地址0x12345678的值作为int-pointer进行处理