获取C++中的另一个进程变量值(或内存地址)

Getting another process variables value (or memory adress) in C++

本文关键字:内存 地址 变量值 进程 C++ 另一个 获取      更新时间:2023-10-16

我在堆栈溢出中阅读过帖子,但没有一个帮助我解决这个问题。

设法制作了一个程序来获取所有正在运行的进程及其 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 语句。

有人可以帮助我吗?

共享内存是常用的方法。您可以定义共享内存的公共段,并使用从其开头开始的偏移量作为"地址"。

这样,您的代码是可移植的。

例如,请参阅此提升库。