Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在进程内存中搜索特定字符串?_C++_C_Pointers_Memory Address - Fatal编程技术网

C++ 如何在进程内存中搜索特定字符串?

C++ 如何在进程内存中搜索特定字符串?,c++,c,pointers,memory-address,C++,C,Pointers,Memory Address,我对基础感兴趣。我不知道从哪里开始。我创建了这个测试程序: #include <stdio.h> int main() { char* test = "TEST04560"; getchar(); printf("%s\n", test); } #包括 int main() { char*test=“TEST04560”; getchar(); printf(“%s\n”,测试); } 目标是使用外部程序定位“TEST04560”的内存地址。我知道如何使

我对基础感兴趣。我不知道从哪里开始。我创建了这个测试程序:

#include <stdio.h>

int main()
{
    char* test = "TEST04560";
    getchar();
    printf("%s\n", test);
}
#包括
int main()
{
char*test=“TEST04560”;
getchar();
printf(“%s\n”,测试);
}

目标是使用外部程序定位“TEST04560”的内存地址。我知道如何使用
ReadProcessMemory
WriteProcessMemory
但我不知道如何在程序内存中搜索特定字符串。非常感谢任何正确方向的提示。

什么操作系统?大多数操作系统都有某种“调试”功能,允许您观察/修改其他进程(当然,如果您有权限的话)

在Linux上,这是

在窗户上,有,和


对于搜索任何类型的数据,都有。如果您知道如何使用
ReadProcessMemory
,那么您肯定熟悉该函数。

不清楚您到底想要什么。您不能只搜索进程内存,更不用说从外部进程。您可以访问的进程内存可能不连续和/或不可读。或者您想知道变量
test
的地址吗?当然,如果我的理解正确,您可以搜索外部进程内存。OllyDbg、IDA和作弊引擎就是例子。我想知道变量
test
指向的
TEST04560
存储地址。谢谢你的回答。这不是一个完全重复的问题,但我的回答应该会让你走上正确的轨道:哦,我的任命。我不知道我必须告诉他如何使用
memcmp
,看在上帝的份上。当然,我不认为有理由投反对票。有些人声称知道如何使用调试API,却不知道如何在内存中搜索字符串,这似乎很奇怪。是的,但我不知道进程的可访问内存范围是多少。我知道如果我试图读取某些区域,它们会使我的程序崩溃。@John,那么也许这就是你应该问的问题。只是说说而已。如果你想得到好的答案,就要提出好的问题。我不知道该使用哪些API调用,但函数太多了。您需要使用这些来找出目标进程的内存映射。玩一下OllyDbg或免疫,看看他们对一个过程了解多少。然后做一些研究,看看需要什么来获得这些信息。最终,您将能够找出
.text
(code)和
.data
部分的映射位置。您可以枚举所有加载的模块(并获取其起始地址),然后我建议阅读Windows PE格式的文档。然后您可以手动查找这些部分并逐字节进行比较。