逆向系列之简单读写其他进程的内存
作者:互联网
2026-03-05
逆向系列之简单读写其他进程的内存
- 在windows下读取其他进程的内存非常简单,刨除其他进程主动防御手段,只要满足以下条件就可以读取内存
- 知道进程id
- 知道内存地址
- 接下来我将写一段wpf程序,随后用c语言来读取其中某个方法栈上内存(某个局部变量)
wpf程序循环展示一个变量的值
int age = 100;
while (true)
{
int* ptr = &age;
Debug.WriteLine((long)ptr);
MessageBox.Show(age.ToString());
}
c语言win32程序读取 wpf程序age 的值
- 上述wpf程序打印了
age的地址,所以这里直接使用即可,至于processId可以在任务管理器中查看
DWORD processID = 20996;
HANDLE handle = OpenProcess(PROCESS_VM_READ, FALSE, processID);
char* buffer = (char*)malloc(4);
SIZE_T t;
ReadProcessMemory(handle, 623163987272, buffer, 4, &t);
- 以上代码是为了演示,让代码看起来更简洁,抛去了
assert代码,实际开发中不判定win api调用是否成功是一个坏习惯,不要学!!! - 读取内存效果展示
c语言win32程序写入wpf程序age的值
DWORD processID = 25864;
HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID); // 这里用PROCESS_VM_WRITE,WriteProcessMemory会失败
char num = 99;
SIZE_T t = 0;
WriteProcessMemory(handle, 1015761655160, &num, 1, &t);
- 写入内存效果展示
附录
-
OpenProcessHANDLE OpenProcess( DWORD dwDesiredAccess, // 所需的访问权限 BOOL bInheritHandle, // 是否可以继承句柄 DWORD dwProcessId // 目标进程的 ID );dwDesiredAccess- 这个参数指定对目标进程的访问权限。它可以是多个权限标志的组合,常见的权限有
PROCESS_ALL_ACCESS: 访问进程的所有权限。PROCESS_VM_READ: 读取进程的内存。PROCESS_VM_WRITE: 写入进程的内存。
- 这个参数指定对目标进程的访问权限。它可以是多个权限标志的组合,常见的权限有
bInheritHandle: 这个参数指定是否允许子进程继承句柄。dwProcessId(DWORD类型)- 进程id
-
ReadProcessMemoryBOOL ReadProcessMemory( HANDLE hProcess, // 目标进程的句柄 LPCVOID lpBaseAddress, // 要读取的内存地址 LPVOID lpBuffer, // 存储读取数据的缓冲区 SIZE_T nSize, // 要读取的字节数 SIZE_T* lpNumberOfBytesRead // 实际读取的字节数 ); -
WriteProcessMemoryBOOL WriteProcessMemory( HANDLE hProcess, // 目标进程的句柄 LPVOID lpBaseAddress, // 目标进程中的内存地址 LPCVOID lpBuffer, // 要写入的数据 SIZE_T nSize, // 要写入的数据大小(字节数) SIZE_T* lpNumberOfBytesWritten // 实际写入的字节数 );
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
指针、引用和常量的关系
03/26
C++学习笔记(33):智能指针(工厂函数)
03/25
学而时习之:C++中的标准模板5.2
03/25
学而时习之:C++中的预处理
03/23
C++ RAII:从“人肉记账”到“自动保姆”的资源管理革命
03/23
告别 C 风格枚举:为什么你应该使用 enum class
03/22
从智能指针窥见现代C++的生存法则:告别内存泄漏,这篇就够了
03/22
C++学习笔记(30):智能指针(unique_ptr)
03/22
Leetcode第一题:用C++解决两数之和问题
03/20
static 关键字:从 C 到 C++,一篇文章彻底搞懂它的“七十二变”
03/20
AI精选
