64,682
社区成员
发帖
与我相关
我的任务
分享
首先搜索坐标地址
找到改变这个地址的代码
修改代码让他跳到自己的代码中运行
在程序的空白段加入自己的代码,当然要补上被替换了的那句,还有修改了寄存器,必须先PUSH,再POP
------------------------------------------------------------------------------
CProcess m_process;
bool m_ret=m_process.FindProcess("FortressII");
if (m_ret)
{
BYTE tank1xL = m_process.ReadByte(0x00470000);
BYTE tank1xR = m_process.ReadByte(0x00470001);
WORD tank1x = tank1xL+tank1xR*256;
temp = tank1x;
str.Format("%d",temp);
m_tank1x=str;
UpdateData(FALSE);
return TRUE;
}
else return FALSE;
-----------------------------------------------------------------------------
HANDLE CProcess::OpenProcess(char *p_ClassName, char *p_WindowTitle)
{
HWND hWindow;
DWORD pid;
hWindow = FindWindow(p_ClassName, p_WindowTitle);
if (hWindow) {
GetWindowThreadProcessId(hWindow, &pid);
return ::OpenProcess(PROCESS_ALL_ACCESS, false, pid);
}
return NULL;
}
bool CProcess::FindProcess(char *p_WindowTitle)
{
if (m_hProcess == NULL) {
m_hProcess = this->OpenProcess(NULL, p_WindowTitle);
if (m_hProcess)
m_bGameRunning = true;
return m_bGameRunning;
}
else
return false;
}
BYTE CProcess::ReadByte(DWORD p_Address)
{
DWORD bytes;
BYTE tmpValue;
if (m_bGameRunning) {
if (ReadProcessMemory(m_hProcess, (void*)p_Address,
(void *)&tmpValue, 1, &bytes) == 0)
return 0;
else
return tmpValue;
}
return 0;
}