首页 > 解决方案 > C++ - *(int**) 地址?这里会发生什么?

问题描述

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

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

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

- 将地址转换为一个 int 指针并取消引用它,以获取存储在 0x12345678 处的值

- 将内存地址 0x12345678 处的值也视为 int 指针

非常感谢您,并为我的英语不好感到抱歉!

标签: c++pointersdll-injection

解决方案


- 将地址转换为一个 int 指针并取消引用它,以获取存储在 0x12345678 处的值

不,它转换Address指向 int 的指针的指针。并取消引用它,以获取指向存储在的 int 的指针0x12345678

- 将内存地址 0x12345678 处的值也视为 int 指针

是的。


推荐阅读