Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] ReadProcessMemory

Ostatnio zmodyfikowano 2017-03-10 13:33
Autor Wiadomość
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;
}

P-158764
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.
P-158792
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...
P-158799
« 1 »
  Strona 1 z 1