Quote:
Originally Posted by Adroxxx
Aha. Und was soll der Unterschied zwischen hWnd und dem Window Handle sein? ;)
|
nein es geht ja über FindWindow zum pWnd zum hWnd zur procID zum hProc und mit
dem verwendet man doch ReadProcessMemory^^
also:
FindWindow ergebnis: pwnd mit GetSafeHwnd ergebnis: hwnd mit GetWindowThreadProcessId und dem hwnd ergebnis: procID
mit procID und OpenProcess ergebnis: HANDLE hProc
so und dann mit ReadProccesMemory und hProc und den Adressen liets man ja den Speicher aus.
bis zur ProcID ist alles richtig (mit spy++ und dem Taskmgr kontrolliert) also kanns nur am Handle liegen (code nochmal^^ siehe unten)
Quote:
Und wenn die procID richtig ist, kann es doch logischerweise nicht der falsche handle sein. Weil Write-&ReadProcessMemory über die ProcID gehen und nicht über den Handle.
|
s.o.
Quote:
|
o.O Basepointer muss überall gleich sein. Sprich du müsstest auch die gleiche Adresse und Offset haben wie ich im Tutorial.
|
warum hast du dann nie was beim source gesagt? xD da steht doch meine adresse drin UND sogar zwei mal ne Offset rechnung weil ich über 2 pointer gehen muss! hast du vista oder xp?
wie kanns denn dann sein dass CE mir nen anderen BasePointer (wirklich grün) gibt, der damit auch wirklich klappt! nur nicht mit dem trainer
und er ändert sich komischerweise =/ aber er ist grün!
Quote:
|
Hast du mal anstatt FindWindowExW, FindWindowEx oder nur FindWindow versucht?
|
wär ein versuch wert, ich guck dann auch mal, ob es vielleicht mit deiner adresse geht, auch wenn mit CE etwas anderes sagt
code:
Code:
UpdateData(true);
pWnd = CWnd::FindWindowExW(NULL,NULL,NULL,_T("Solitär"));
if (pWnd = CWnd::FindWindowExW(NULL,NULL,NULL,_T("Solitär")))
{
hWnd = HWND(pWnd->GetSafeHwnd());
m_hwnd.Format(_T("%x"),hWnd);
unsigned long address1 = 0x00cc60f4;
unsigned long offset = 0x2C;
unsigned long offset2 = 0x10;
unsigned long address2 ;
unsigned long address3 ;
int value ;
DWORD numBytesRead;
HANDLE hProc;
DWORD procID;
GetWindowThreadProcessId(hWnd,&procID);
m_procID.Format(_T("%d"),procID);
hProc = OpenProcess(PROCESS_VM_READ,FALSE,procID);
m_hproc.Format(_T("%x"),hProc);
ReadProcessMemory(hProc,(LPCVOID)address1,&address2,sizeof(long),&numBytesRead);
address2 = address2+offset;
address3 = address2+offset2;
ReadProcessMemory(hProc,(LPCVOID)address3,&value,sizeof(int),&numBytesRead);
m_Value.Format(_T("%i"),value);
UpdateData(false);
CloseHandle(hProc);
}
else
{
AfxMessageBox(_T("Fenster nicht gefunden!"));
}