|
You last visited: Today at 01:37
Advertisement
DMA in C++ umgehen
Discussion on DMA in C++ umgehen within the C/C++ forum part of the Coders Den category.
03/21/2009, 18:39
|
#16
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
OMG
Der Typ von Speicher Adressen ist unsigned long und nicht unsigned int, das ist extrem wichtig, denn so geht dir ein Teil der Adresse verloren...
Beschäftige dich erstmal ein wenig mit Daten Typen bevor du versuchst irgendwas mit C++ an zu fangen, nur wenn du die Daten Typen verstehst kannst du auch mit Zeigern richtig umgehen und kommst dann von alleine darauf wie du einen Zeiger per ReadProcessMemory benutzten kannst.
Obwohl es vermutlich sinnlos ist hier mal "funktionierender" Code für dein Beispiel:
PHP Code:
int value; unsigned long address1=0x0071A0; unsigned long address2; ReadProcessMemory(ProcessHandle,(LPVOID)adress1,&adress2,sizeof(unsinged long),NULL); ReadProcessMemory(ProcessHandle,(LPVOID)adress2,&value,sizeof(int),NULL);
Der erste ReadProcessMemory Aufruf liest die Adresse auf die der Pointer zeigt in die Variable address2, da Adressen den Daten Typ unsinged long haben muss auch die Größe von diesem Daten Typ übergeben werden.
Da du mit Daten Typen scheinbar nicht wirklich vertraut bist wird dir das ganze wohl wenig sagen ^^
|
|
|
03/24/2009, 14:24
|
#17
|
elite*gold: 0
Join Date: Aug 2008
Posts: 228
Received Thanks: 19
|
Quote:
|
Obwohl es vermutlich sinnlos ist hier mal "funktionierender" Code für dein Beispiel:
|
Failed. Er funktioniert nicht.  Und ja, ich bin schon von selber auf die Idee gekommen statt unsinged unsigned zu schreiben. Das Ergebnis ist exakt das selbe wie bei meinen Versuchen.
Und bitte korrigier mich, wenn ich falsch liege, aber sind auf 32-Bit System unsigned long und unsigned int nicht gleich groß und zwar 32 Bit von 0 bis 4 Milliarden irgendwas, in Hexadezimal FFFFFFFF?
Ich hab ja bestimmt keine Ahnung also korrigier mich einfach wenn ich Unsinn rede.
edit:
OMG!
|
|
|
03/24/2009, 17:57
|
#18
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Quote:
Originally Posted by Pat Garrett
Failed. Er funktioniert nicht.  Und ja, ich bin schon von selber auf die Idee gekommen statt unsinged unsigned zu schreiben. Das Ergebnis ist exakt das selbe wie bei meinen Versuchen.
Und bitte korrigier mich, wenn ich falsch liege, aber sind auf 32-Bit System unsigned long und unsigned int nicht gleich groß und zwar 32 Bit von 0 bis 4 Milliarden irgendwas, in Hexadezimal FFFFFFFF?
Ich hab ja bestimmt keine Ahnung also korrigier mich einfach wenn ich Unsinn rede.
edit:
OMG!
|
Mein C++ Buch sagt 16bit int sei die Standard Größe, allerdings kann es ja auch sein das du mehr Ahnung als der Buch Autor hast, naja egal
Mal eine andere Sache, versuchst du immer noch ohne Debug Rechte ReadProcessMemory auf zu rufen?
|
|
|
03/24/2009, 18:03
|
#19
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
PHP Code:
void EnableDebugPrivilege( ) {
TOKEN_PRIVILEGES priv;
HANDLE hThis, hToken;
LUID luid;
hThis = GetCurrentProcess();
OpenProcessToken(hThis, TOKEN_ADJUST_PRIVILEGES, &hToken);
LookupPrivilegeValue(0, "seDebugPrivilege", &luid);
priv.PrivilegeCount = 1;
priv.Privileges[0].Luid = luid;
priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, false, &priv, 0, 0, 0);
CloseHandle(hToken);
CloseHandle(hThis);
}
|
|
|
03/24/2009, 18:39
|
#20
|
elite*gold: 0
Join Date: Aug 2008
Posts: 228
Received Thanks: 19
|
Quote:
Originally Posted by Bot_interesierter
Mein C++ Buch sagt 16bit int sei die Standard Größe, allerdings kann es ja auch sein das du mehr Ahnung als der Buch Autor hast, naja egal
|
Hab ich in dem Fall wohl tatsächlich. Int ist in 32-bit Systemen auch 32 Bit lang. In 16-bit System lediglich 16 Bit. Kannst ja mal ausprobieren einer Unsigned Int den Wert 4.000.000.000 zuzuweisen, wenn du mir nicht glaubst.
Quote:
|
Mal eine andere Sache, versuchst du immer noch ohne Debug Rechte ReadProcessMemory auf zu rufen?
|
Nein, hab es inzwischen schon mit Debug-Rechten probiert. Funktioniert auch nicht. Das Lesen aus anderen Adressen funktioniert ja auch einwandfrei, nur wenn ich aus dem Pointer lesen möchte, macht er Faxen.
|
|
|
03/24/2009, 19:29
|
#21
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
PHP Code:
#include <iostream>
int main(int argc, char* argv[]){ int a=4000000000; std::cout << a<<std::endl;
}
Quote:
***@xxxx:~/Dokumente$ g++ blub.cc
blub.cc:5: Warnung: diese Dezimalkonstante ist nur in ISO-C90 vorzeichenlos
blub.cc:8:2: Warnung: Kein Newline am Dateiende
blub.cc: In function »int main(int, char**)«:
blub.cc:5: Warnung: Große Ganzzahl implizit auf vorzeichenlosen Typen abgeschnitten
***@xxxx:~/Dokumente$ ./a.out
10240
|
Dann ist mein Rechner wohl 'ne 16bit Maschine ^^
|
|
|
03/24/2009, 19:33
|
#22
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
unsigned short != unsigned int!
|
|
|
03/24/2009, 20:12
|
#23
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Quote:
Originally Posted by Adroxxx
unsigned short != unsigned int!
|
Wo siehst du denn ein unsigned short :>
|
|
|
03/24/2009, 20:21
|
#24
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
Geändert von Bot_interesierter (Heute um 20:11 Uhr)
yaaayaa :P ^,^
|
|
|
03/24/2009, 23:01
|
#25
|
elite*gold: 0
Join Date: Aug 2008
Posts: 228
Received Thanks: 19
|
Und, nochmal mit normaler Integer ausprobiert?
Ich weiß jedenfalls immernoch nicht, was ich falsch gemacht habe. Ich bin gerade dabei an mir zu zweifeln, ob ich den falschen Pointer hab, was ich aber stark bezweifle. Was kann man mit CE und Solitair schon so falsch machen beim Suchen eines Pointers? :S
|
|
|
03/24/2009, 23:09
|
#26
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
@Bot_interesierter
Ich muss dir jetzt aber nicht sagen, das int weniger positive werte unterstützt als unsigned oder?
signed int = 2 Mrd unsinged int 4Mrd , signed geht ja von -2 mrd bis +2 mrd.
Unsigned nur bis +4mrd.
|
|
|
03/25/2009, 11:54
|
#27
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Quote:
Originally Posted by Adroxxx
@Bot_interesierter
Ich muss dir jetzt aber nicht sagen, das int weniger positive werte unterstützt als unsigned oder?
signed int = 2 Mrd unsinged int 4Mrd , signed geht ja von -2 mrd bis +2 mrd.
Unsigned nur bis +4mrd.
|
pssssst sonst fällt noch auf das mein C++ Buch einfach veraltet ist und integer inzwischen wirklich 32bit lang sind XD
@Pat Garrett
Du solltest wirklich mal überprüfen ob dein Pointer stimmt, mach das am besten mit CheatEngine und sonst kann ich dir nur raten Debug ausgaben in deinen Programmen zu machen, oder ein Debug Log zu schreiben, das hilft beim finden von Logischen und anderen Fehlern.
|
|
|
03/25/2009, 11:58
|
#28
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
Ich habs nix gesagt
@ Pat Garrett, lass dir doch die zwischenadresse auch ausgeben, als textausgabe oder messagebox. Dann weißt du schonmal ob die zwischenadresse richtig ist usw. fehlersuche ftw!
|
|
|
03/25/2009, 12:07
|
#29
|
elite*gold: 0
Join Date: Aug 2008
Posts: 228
Received Thanks: 19
|
Natürlich schon getan. Die Adresse ist völliger Humbug und stimmt niemals.
Hab auch schon min. 5 mal auf 2 verschiedenen Rechnern überprüft, ob der Pointer richtig ist. Der MUSS richtig sein, es gibt einfach keine andere Lösung. Wenn jemand mal kurz Lust/Zeit hat, könnte er mir ja einen Gefallen tun und überprüfen welchen Pointer er bei Solitär herauskriegt.
Bei mir ist es bis jetzt jedes mal 0x0071A0 gewesen, bzw. 0x007170 mit Offset 30.
EDIT: GetLastError sagt: "Only part of a ReadProcessMemory or WriteProcessMemory request was completed."
|
|
|
03/25/2009, 12:14
|
#30
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
Für was ist der pointer? Die Punkte?
Der Pointer funzt bei mir nicht. 0x007170 + offset 30 geht nicht.
|
|
|
 |
|
Similar Threads
|
5 Ids/std umgehen
02/19/2011 - WoW Exploits, Hacks, Tools & Macros - 29 Replies
Farme gerade das Baron Mount, habe aus Zufall rausgefunden wie ich mehr als 5 Instanzen in einer Stunde öffnen kann.
Man braucht dafür 2 Accs.
Ihr offnet eine Gruppe und betretet die Instanz.
Ein Char wartet am Tor bis der andere Char den Baron gekillt hat.
Sobald der baron down ist, logt der Kill Char aus.
Nun ist der Char am Anfang der Instanz alleine.
Er verlässt die Instanz und resettet.
Nun logt der kill Char wieder ein und ist automatisch in einer neuen ID.
Nun läd der Kill Char...
|
Captcha umgehen ???
05/08/2010 - General Coding - 19 Replies
Hallo,
besteht die möglichkeit beim Nuttenspiel das Kreiscaptcha zu umgehen ??
Mfg:handsdown:
|
Captcha umgehen
08/12/2009 - Metin2 Private Server - 9 Replies
Hi,
ich habe bissen gegooglt dann habe ich ein forum gefunden mit ein thread captcha umgehen hier da gibts so ein programm ist mehr für php leute die sich auskennen irgendwwas mit hash hier schaut selbst
|
PSU GG umgehen ?
05/24/2008 - General Gaming Discussion - 0 Replies
Hi alle zusammen ^^
weiss nicht obs hier richtig is, aber weiss jemand ob man irgendwie den GG von Phantasy Star Universe umgehen kann ? will keine hacks für online benutzen sondern mit dem 3D ripper DX versuchen Modelle zu rippen ^^ da ich mit 3DGS nen eigenes Game baue ^^
oder kennt jemand nen besseres programm, was GG vllt net als hack sieht ? weil der 3D ripper startet ja mit der .exe
wäre klasse wenn jemand wüsste was man machen könnte ^^
Edit: ach mist, das sollte unter Other...
|
All times are GMT +1. The time now is 01:37.
|
|