Speicher auslesen funktioniert nicht
-
Abend,
Habe mithilfe von Google folgenden Code hinbekommen:#include <windows.h> #include <iostream> using namespace std; HANDLE hproc; DWORD procid; void routine(void) { DWORD read = 0; MEMORY_BASIC_INFORMATION mbi; unsigned int adress = 0x000000,start,end,buffer=0; do { VirtualQueryEx(hproc,(void*)adress,&mbi,sizeof(MEMORY_BASIC_INFORMATION)); if((mbi.State == MEM_COMMIT)&&(mbi.Protect == PAGE_READWRITE)&&(mbi.Type == MEM_PRIVATE)) { start = (unsigned int)mbi.BaseAddress; end = (unsigned int)mbi.BaseAddress+mbi.RegionSize; for(;start<end;start++) { ReadProcessMemory(hproc,(void*)start,&buffer,sizeof(int),&read); if(buffer == 15) { cout << "Wert an " << hex << start << " gefunden:" << endl; cout << buffer << endl; } } } adress += mbi.RegionSize; } while(adress < 0x90000000); } int main(void) { HWND hWnd; hWnd = FindWindow(0,"Rechner"); if(!hWnd) { cout << "Program not running!" << endl; return 1; } GetWindowThreadProcessId(hWnd,&procid); hproc = OpenProcess(PROCESS_ALL_ACCESS,false,procid); routine(); CloseHandle(hproc); return 0; }Jedoch kommt da immer nur f raus?!?!
Mit diesem Code liest er ja den kompletten Speicher des Rechners aus?
Was muss ich da ändern?
-
dein brain
-
dein brain
Erzähl du mir nichts.
Du bist doch sicherlich soeiner von denen die keinen Schulabschluss haben seit 20 Jahren von Hartz4 leben und im Leben nicht wirklich was erreicht haben.Und sry falls ich für dich zu dumm bin, aber ich lerne auch nur.
-
Mit diesem Code liest er ja den kompletten Speicher des Rechners aus?
Nö, macht er nicht.
Du siehst nur den virtuellen Adreßraum der jeweiligen Prozesses - sofern Du Rechte dafür hast.
Vielleicht wäre es ja hilfreich, die Rückgabewerte und Fehlercodes von VirtualQueryEx und ReadProcessMemory auszuwerten...
Du bist doch sicherlich soeiner von denen die keinen Schulabschluss haben seit 20 Jahren von Hartz4 leben und im Leben nicht wirklich was erreicht haben.
Unnötige Eskalation.
-
TROLLALARM!!!
-
Der Speicher schrieb:
dein brain
Erzähl du mir nichts.
Du bist doch sicherlich soeiner von denen die keinen Schulabschluss haben seit 20 Jahren von Hartz4 leben und im Leben nicht wirklich was erreicht haben.Und sry falls ich für dich zu dumm bin, aber ich lerne auch nur.
hartz 4 gibt es noch nicht seit 20 jahren. ansonsten stimmts natürlich.
-
#include <iomanip> (...) cout << "Wert an 0x" << setw(8) << setfill('0') << hex << start << " gefunden:" << endl;
-
Tag,
Irgendwie verstehe ich das nicht.
Wie kriege ich es jetzt hin z.b. in dem Rechner aus der 0 eine 6 zu machen indem ich etwas in dem Speicher ändere?