Umm well now I tested writing memory process by doing this:
- Code: Select all
UINT_PTR DeRef( UINT_PTR _uiptrPointer ) {
UINT_PTR uiptrRet;
if ( !::ReadProcessMemory( hProcess, reinterpret_cast<LPVOID>(_uiptrPointer), &uiptrRet, sizeof( uiptrRet ), NULL ) ) { return 0UL; }
return uiptrRet;
}
void multiPointer(unsigned int speed) {
UINT_PTR uiptrFinal = DeRef( DeRef( 0x69F190 ) + 0xA20 ) + 0x9BA;
if(!::WriteProcessMemory( hProcess, reinterpret_cast<LPVOID>(uiptrFinal), &speed, sizeof(speed), NULL )) {
MessageBox(NULL,"Error!","4Story",MB_OK);
}
else {
MessageBox(NULL,"Memory written successfully","4Story",MB_OK);
}
}
void CMyHackDlg::SpeedButtonOn()
multiPointer(16666);
}
void CMyHackDlg::SpeedButtonOff()
{
multiPointer(16230);
}
But it always show error. Well I tested it on Saper: (pointer on screenshot)
- Code: Select all
void multiPointer(unsigned int mines) {
UINT_PTR uiptrFinal = DeRef( DeRef( 0x14A4818 ) + 0x160 ) + 0x0;
if(!::WriteProcessMemory( hProcess, reinterpret_cast<LPVOID>(uiptrFinal), &mines, sizeof(mines), NULL )) {
MessageBox(NULL,"Error!","Saper",MB_OK);
}
else {
MessageBox(NULL,"Memory written successfully","Saper",MB_OK);
}
}
And it work's! Well i think that when I'm trying to hack 4Story, my trainer is blocked by Hackshield from changing adresses. How can I bypass that? :/