如果我们要读取一个正在运行的exe可执行程序的数据,那么首先要找到它的句柄才可以,一般我们写辅助的时候经常用到,以下是打开进程的基本代码:
bool CNormalTanksDlg::OpenProc()
{
CString str;
//1.读取游戏窗口句柄
HTanks=::FindWindow(NULL,"Normal-tanks");
if (HTanks!=NULL)
{
//2.获取游戏进程ID
GetWindowThreadProcessId(HTanks,&Pid);
//3.打开进程
Hprocess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,Pid);
if (Hprocess!=0)
{
//打开进程成功
return TRUE;
}
else
{
// 打开失败
AfxMessageBox("打开游戏进程失败!");
return FALSE;
}
}else{
//查找游戏句柄失败
AfxMessageBox("请运行游戏后再开启软件!");
KillTimer(0);
}
return FALSE;
}
打开进程成功以后我们就可以执行WriteProcessMemory和ReadProcessMemory操作啦,是不是很简单?
本文介绍如何通过句柄读取正在运行的EXE文件数据。首先使用FindWindow获取句柄,然后通过GetWindowThreadProcessId得到进程ID,最后使用OpenProcess打开进程并进行内存读写操作。
2108

被折叠的 条评论
为什么被折叠?



