访问外部进程的内存
accessing the memory of a foreign process
我一直在网站上阅读,并在谷歌上搜索,试图找到一个结论性的答案,但我没有找到一个回答我所有的问题。
我有两个进程。一个有一个整数变量,我想通过第二个过程来改变它。我知道如何读/写特定的内存位置,但我只知道如何在本机进程地址上做。
我不理解createremotethread。我是否有可能得到一个最干净、最简单的例子来操纵一个进程的内存,而不是运行程序的本地内存?当然,前提是两个程序都在运行。
thanks in advance
编辑:我从其他来源得到了一些关于我的问题的答案。我只是想了解如何将变量写入内存位置,例如:WriteProcessMemory (phandle (void *)地址,val, sizeof (val), NULL);
这似乎没有影响,假设val是bool类型:
while(true){
key=getch();
if(key=='1'){
if(val)val=false;
else val=true;
WriteProcessMemory(phandle,(void*)address,&val,sizeof(val),NULL);
}
bool val2;
ReadProcessMemory(phandle, (void*)address, &val2, sizeof(val2), NULL);
cout<<val2<<endl;
}
总是显示0。为什么?
尝试读取共享内存,并互斥以确保没有两个进程同时操作同一个内存点
BOOL WINAPI WriteProcessMemory(
_In_ HANDLE hProcess,
_In_ LPVOID lpBaseAddress,
_In_ LPCVOID lpBuffer,
_In_ SIZE_T nSize,
_Out_ SIZE_T *lpNumberOfBytesWritten
);
你是否像上面那样传递了正确的参数,你必须至少有前4个参数才能工作
做下面的
WriteProcessMemory(phandle,(void*)address,&val,sizeof(val),NULL);
注意val传递了val
问题解决了,我不得不使用
代替
相关文章:
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 可以读入进程内存的最大块大小是多少?
- 如何读取特定地址的进程内存?
- 如何删除列出的"QGraphicsPathItem"对象以控制进程内存使用情况?
- 如何使用带有矢量的 winapi 读取进程内存从另一个进程读取缓冲区?
- 进程间通信堆内存
- Directx 12 :在两个进程之间共享图形内存
- 子进程更新共享 mmap 内存,但父进程没有更改
- 读取进程内存多级指针(DLL 注入)
- 读取进程内存作弊引擎值
- 检测到由于操作系统内存不足而导致子进程终止
- 提升进程间共享内存open_or_create每次都会引发异常
- 获取进程内存信息失败,错误 6 句柄无效
- c++ 读取进程内存基址 + 偏移量不起作用
- 使用加速进程间创建消息队列 - 内存访问冲突
- 如何编辑受保护的进程内存?
- 内核模式驱动程序可以在任何进程上执行读取进程内存吗?
- Boost.进程间内存位置
- 从内存进程中获取信息
- 共享内存进程间通信