gpt4 book ai didi

c++ - C/C++ 查找指针

转载 作者:行者123 更新时间:2023-11-30 18:32:34 25 4
gpt4 key购买 nike

我最近完成了一个基本的内存扫描器,并且像所有曾经完成此操作的人一样...我意识到每次程序启动时扫描值是一件痛苦的事情!

计算出这些值的基指针非常有用,以便可以将它们硬编码到应用程序中。为了弄清楚如何做到这一点,我使用 Visual C++ 创建了这个简短的控制台应用程序作为我的“目标”。

int main(int argc, char *argv[], char *envp[])
{
unsigned int * Pointer1;
Pointer1 = (unsigned int *)malloc(sizeof(unsigned int));
char s[20];
while(1)
{
std::cout<<"(Pid:"<<GetCurrentProcessId()<<") Please enter a value to be stored in memory (type 'q' to exit): \n";
std::cin>>s;
std::cout<<"\n";
if(s[0] =='q')
{
break;
}
*Pointer1 = str2int(s);
std::cout<<"Value:"<<*Pointer1<<" addr:0x"<<Pointer1<<"\n";
}
free(Pointer1);

return 0;
}

然后我根据我的内存扫描仪使用这个应用程序来计算出指针的地址以及指针指向的内存地址。我这样做了几次来整理以下数据。 (使用“|”作为分隔符粘贴到 Excel 中)

pid |P Hex|P Val|PHx to Dec|M Hex|M Val|MHx To Dec
7028|002afcfc|216032|2817276|00034BE0|10|216032
6312|0032fa70|4541408|3340912|00454BE0|20|4541408
1512|0043fb1c|3242304|4455196|00317940|30|3242304
8140|0036f9fc|1997096|3602940|001E7928|30|1997096

但是我无法找到一种可靠的方法来计算指针的内存地址,我可以执行哪些方法/计算来做到这一点?我知道存在更真实的指针链示例,但这似乎是一个很好的起点,然后才使其变得更加困难。

最佳答案

内存地址是malloc返回的内容。没有可靠的方法来计算它将返回什么。这完全取决于您的 malloc 库的工作方式、操作系统提供的虚拟地址范围(通过 sbrkmmap 或其他),等等

关于c++ - C/C++ 查找指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12272072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com