BYTE OldCode[8];
BYTE NewCode[8];
BYTE* addr =(BYTE*)0x40103B;
BYTE dbaddr[3] = {0x64,0x40,0x20};
if(ReadProcessMemory(hMainInst,(LPCVOID)addr,OldCode,sizeof(dbaddr),NULL))
{
if(OldCode==dbaddr)
{
}
else
{
MessageBox(0,(LPCSTR)OldCode,"Error Notice!",MB_OK | MB_ICONSTOP);
}
}
else
{
MessageBox(0,"Can't read process memory!","Error Notice!",MB_OK | MB_ICONSTOP);
}
ReadProcessMemory
А нужно разрешить такую задачку.
Есть смещение (к примеру) 0x40103B.
И я знаю, что по этому смещению должны быть 3 байта (к примеру) 0x64,0x40,0x20.
Помогите написатиь код для чтения и проверки этих 3 байт.
Я тут пытася сделать что-то вроде:
Код:
Вообщем, сильно "ногами не бейте". =)
Код:
if(OldCode==dbaddr)
ты сравниваеш не значения, адреса массивов.
Код:
ReadProcessMemory(hMainInst,(LPCVOID)addr,OldCode,sizeof(dbaddr),NULL)
Я правильно написал?
Код:
if(&OldCode==&dbaddr)
Вот так надо?
Код:
DWORD dwData = 0;
ReadProcessMemory(hMainInst, reinterpret_cast<LPCVOID>(0x0040103B),
&dwData, 3, NULL);
if (dwData == 0x00204064)
MessageBox(NULL, "OK!", "", MB_OK);
else
MessageBox(NULL, "Error!", "", MB_OK);
ReadProcessMemory(hMainInst, reinterpret_cast<LPCVOID>(0x0040103B),
&dwData, 3, NULL);
if (dwData == 0x00204064)
MessageBox(NULL, "OK!", "", MB_OK);
else
MessageBox(NULL, "Error!", "", MB_OK);
Спасибо, вроде немного разобрался.