获取C++中的另一个进程变量值(或内存地址)
Getting another process variables value (or memory adress) in C++
我在堆栈溢出中阅读过帖子,但没有一个帮助我解决这个问题。
我设法制作了一个程序来获取所有正在运行的进程及其 pid,如果需要,我也可以获取进程句柄,无论如何我知道我必须将我的代码挂接到进程,这也是我必须解决的问题。
我想要的东西是这样的:我有一个C++程序,它刚刚用这段代码制作(例如(:
计划1:
using namespace std; int main(){ int var,a; do{ cout<<"1 = Change Value, 2 = Check Value, 3 = Memory Addressn"; cin>>a; switch(a){ case 1: cout<<"Variable value: "; cin>>var; break; case 2: cout<<"Value: "<<var<<endl; break; case 3: cout<<"Memory Address: "<<&var<<endl; break; } }while(1); return 0; }
我想制作另一个程序,也是用 c++ 制作的,它将钩接到该程序的进程,并通过其值找到 int var 内存地址。
比方说:我将变量设置为 5我将第二个程序搜索到值为 5 的整数值。比在第一个程序中,我将 var 值更改为 10。我在第二个程序中搜索之前找到的值 5 列表中的值 10。只有一个地址带有该值,它是另一个程序 int var;价值。
所以现在我可以基于第一个值在第二个程序中做出 if 语句。
有人可以帮助我吗?
共享内存是常用的方法。您可以定义共享内存的公共段,并使用从其开头开始的偏移量作为"地址"。
这样,您的代码是可移植的。
例如,请参阅此提升库。
相关文章:
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 为什么 vector 的随机访问迭代器给出与指针不同的内存地址?
- 使用内存地址访问结构的属性值
- 为什么C++总是显示十六进制内存地址,而不仅仅是整数?
- 将布局映射到内存地址
- 为什么同一个变量的内存地址不同?
- 无法将内存地址转换为值
- 给定特定内存地址的数组的动态内存分配
- 在 Microsoft Access SQL 中调用自定义 DLL 函数时传递的内存地址无效
- 获取 R 数据帧的内存地址
- c++ 编译器是否保护常量内存地址免受任何更改?
- 如何防止矢量的内存地址更改
- cout 打印内存地址而不是值
- 如何运行外部程序,向其传递内存地址以读取/写入?
- 循环中的变量被设置为下一个数组的元素始终具有相同的内存地址?
- 重载 ostream << 运算符,指针作为参数,导致输出上的内存地址
- C++在变量的内存地址上做什么来"deallocate"它?
- 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法
- 为什么我无法获取 MSVS2019 / C++ 中字符或uint8_t变量的内存地址?