[C++] ReadProcessMemory
Ostatnio zmodyfikowano 2017-03-10 13:33
fioletowy Temat założony przez niniejszego użytkownika |
[C++] ReadProcessMemory » 2017-03-09 15:56:16 Może tym razem temat nie trafi do bezużytecznych bez powodu :p Oryginalny temat; http://cpp0x.pl/forum/temat/?id=24820 Krótko mówiąc, nie mogę wyjąć wartości pamięci z procesu. Fajnie jeżeli ktoś wskazałby mi błąd oraz naprowadził na rozwiązanie. Na adresie 08BA1768 w procesie jest przechowywane doświadczenie postaci na zmiennej typu double; chciałbym się dostać do tej liczby w cpp. #include <iostream> #include <windows.h>
using namespace std;
main(){ string botname = "Bot | Medivia"; string version = "xxx"; cout<<"------ "<<botname<<" ------\n"<<endl; cout<<"Bot version:"<<version<<endl<<endl; cout<<"---------------------------------\n\n\n"<<endl; int exp_address = 0x08BA1768; long player_exp = 0;
DWORD processId; HANDLE hProcess; HWND hMedivia;
cout<<"Open Medivia client and press [SHIFT]..."<<endl<<endl; while (1){ if (GetKeyState(VK_SHIFT) < 0){ hMedivia = GetForegroundWindow(); cout<<"Found window..."<<endl; break; } Sleep(100); } if (hMedivia){ GetWindowThreadProcessId(hMedivia,&processId); hProcess = OpenProcess(PROCESS_VM_READ, false, processId); ReadProcessMemory(hProcess, (LPVOID)exp_address, &player_exp,sizeof(long),0); CloseHandle(hProcess); } cout<<"---------------------------------"<<endl; cout<<"New title: "<<botname<<endl; SetWindowText(hMedivia,"GuicheBot | Medivia"); cout<<"Client HWND: "<<hMedivia<<endl; cout<<"---------------------------------"<<endl; cout<<"Experience: "<<player_exp<<endl; return 0; }
|
|
carlosmay |
» 2017-03-10 11:58:52 Bezużyteczne to nie kosz i zalogowani użytkownicy odpowiedzą i pomogą. Temat jest bezużyteczny. Nic nie mówi o problemie. Tak jest zatytułowana dokumentacja i nikt prócz ciebie nii trafi na ten temat, a powinien być użyteczny dla użytkowników, którzy zmagają się z podobnym problemem. W opisie działu jest odnośnik, który warto przeczytać jeśli trafi się tu pierwszym razem, drugim jest to ignoranctwo a trzecim kosz. Aha... jeszcze ten format kodu, bez formatu. |
|
Rashmistrz |
» 2017-03-10 13:33:22 @fioletowy 1.Czy uzyskany adres jest statyczny czy dynamiczny? 2.Dlaczego kopiujesz, czytasz i wypisujesz wartość, jak longa (32bit), jak to jest double (64bit)? EDIT: 3. BTW: void * exp_address =( void * ) 0x08BA1768; , Możesz, bo LPVOID to void*. Tylko sobie potem na double* rzutuj i wyłuskaj podczas wypisywania... |
|
« 1 » |