📄 memreader.cpp
字号:
// MemReader.cpp: implementation of the MemReader class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "MemoryReader.h"
#include "MemReader.h"
#include "winbase.h"
#include "tlhelp32.h"
#include "iostream.h"
#include "stdlib.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
MemReader::MemReader(LPCTSTR name)
{
pId = GetProcessIdFromName(name);
hProcess = OpenProcess(PROCESS_VM_READ, false, pId);
if(hProcess == NULL)
{
cout << "Open Process Error!" << endl;
return;
}
}
MemReader::~MemReader()
{
}
DWORD MemReader::GetProcessIdFromName(LPCTSTR name)
{
PROCESSENTRY32 pe;
DWORD id = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize = sizeof(PROCESSENTRY32);
if(!Process32First(hSnapshot,&pe))
return 0;
do
{
pe.dwSize = sizeof(PROCESSENTRY32);
if(!Process32Next(hSnapshot,&pe))
break;
if(strcmp(pe.szExeFile,name) == 0)
{
id = pe.th32ProcessID;
break;
}
}while(TRUE);
CloseHandle(hSnapshot);
return id;
}
void MemReader::setProcess(char *procName)
{
pId = GetProcessIdFromName(procName);
hProcess = OpenProcess(PROCESS_VM_READ, false, pId);
if(hProcess == NULL)
{
cout << "Open Process Error!" << endl;
return;
}
}
void MemReader::readMemory(LPCVOID addr, LPVOID valueBuffer, int bytes)
{
if(!ReadProcessMemory(hProcess, addr, valueBuffer, bytes, NULL))
cout << "Read Error!" << endl;
}
int MemReader::getSpeed()
{
char speedStr[64];
readMemory((LPCVOID)speedAddr, (LPVOID)speedStr, 8);
cout << "speed string: " << speedStr << endl;
return atoi(speedStr);
}
int MemReader::getGear()
{
char gearStr[64];
readMemory((LPCVOID)gearAddr, (LPVOID)gearStr, 8);
cout << "gear string: " << gearStr << endl;
return atoi(gearStr);
}
void MemReader::setSpeedAddress(long int addr)
{
speedAddr = addr;
}
void MemReader::setGearAddress(long int addr)
{
gearAddr = addr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -