如何在进程的内存中搜索一个特定的字符串?
How would I search the memory of a process for a specific string?
我对基础感兴趣。我不知道该从何说起。我已经创建了这个测试程序:
#include <stdio.h>
int main()
{
char* test = "TEST04560";
getchar();
printf("%sn", test);
}
目标是使用外部程序定位"TEST04560"的内存地址。我知道如何使用ReadProcessMemory
和WriteProcessMemory
,但我不知道如何在程序内存中搜索特定的字符串。如有任何正确的建议,我将不胜感激。
什么操作系统?大多数操作系统都有某种"调试"功能,允许你观察/修改其他进程(当然,如果你有权限的话)。
在Linux上,这是ptrace
。
在Windows上,有ReadProcessMemory
和friends。
对于搜索任意类型的数据,有memcmp
。如果您知道如何使用ReadProcessMemory
,那么您肯定熟悉这个函数。
相关文章:
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 如何检查一个c++字符串中有多少相同的字符/数字
- 获取用C/C++打印的最后一个字符串
- cin >> int 给定一个字符串将 int 赋值为 0
- 我如何通过引用将 c++ 字符串分配给另一个字符串
- 使用另一个字符串从字符串中删除空格
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 当分配一个字符串值并稍后通过分配另一个值进行更改时C++如何管理内存?
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- C++为 void 指针分配一个字符串
- 如何在使用 getch 后在另一个字符串的末尾连接一个字符串
- 给定一个单词数组和一个字符串,如何计算给定字符串中的所有单词
- 如何在另一个字符串的x位置插入一个字符串?
- 有没有办法我可以在 C++ 中使用 if 语句来说明如果一个字符串不是两个名称的 eqal,它会给出一个输出,ATM i
- 在另一个字符串中插入文件扩展名之前的字符串
- 我有一个返回字符串向量的函数.它需要两个字符串,并且返回一个字符串中缺少的字符串
- C++自定义流操纵器,用于更改流上的下一个字符串
- 从类返回一个字符串 — 奇怪的行为
- 从我的2d数组中的一列返回的字符串值被压缩为一个字符串(在Mac os上打开Windows txt文件)
- 你能从"volatile const char*"构造一个字符串吗?(不使用`const_cast`