vb.net OpenProcess() returns zero

10/24/2009 13:49 psyK82#1
Hey guys,
n00b here..

Im trying to read the Aion memory via vb.net OpenProcess(&H10, false, pid) function,
but it returns always 0.
I guess this is bcs of the missing read rights?

is there any workaround? how do others manage to get read access?

cheers :handsdown:
10/24/2009 15:10 wurstbrot123#2
use GetLastError and look whats wrong.

[Only registered and activated users can see links. Click Here To Register...]
10/24/2009 20:39 psyK82#3
Danke Wurstbrot,
hab meinen Fehler schon gefunden...lag an der Deklaration der dll.

Leider hab ich jetzt ein neues Problem.
Statt einem Mana-wert von 1320 erhalte ich 40, erhöhe ich die Adresse um 1 erhalte ich 5,
also je nur 1 byte des Wertes..

Quote:
Address1 = Address1 + offset1
ReadProcessMemory(hproc, Address1, value, 1, 4)
Ich bekomm iwie nicht mehr bytes ausgelesen, bestimm nur n sau dummer kleiner Fehler x.x

Edit:
Habe natürlich auch: ReadProcessMemory(hproc, Address1, value, 4, 4) versucht, ohne Erfolg
10/24/2009 21:16 ms​#4
Code:
ReadProcessMemory(hproc, Address1, value, 4, NULL);
Versuchs mal so. Wenn das auch nicht klappt, dann poste am besten mal die paar Zeilen vorher, in denen du die Variable value deklariest.
10/24/2009 21:20 wurstbrot123#5
Du weisst schon das es eine Adresse gibt die
die Baseadresse enthält oder ?

Beispiel:

Code:
DWORD charbase = 0;
DWORD currentmp = 0;

ReadProcessMemory(hproc,(void*)0xD1668C,&charbase,4, 0); 
// Baseadresse wird ausgelesen und in charbase gespeichert

ReadProcessMemory(hproc,UlongToPtr(charbase+0x458),&currentmp,4,0);
// MP werden ausgelesen 0x458 wäre also das MP Offset...
BTW:

[Only registered and activated users can see links. Click Here To Register...]
Solltest du dir mal anschauen...
10/24/2009 22:08 psyK82#6
NULL kennt vb.net nicht, hab nothing versucht, ohne Erfolg.


Quote:
Originally Posted by wurstbrot123 View Post
Du weisst schon das es eine Adresse gibt die
die Baseadresse enthält oder ?
Jup, ich übergebe an ReadProcessMemory() schon base+offset

Ich bekomme auch das erste byte (mit dem Wert 40)...erhöhe ich die adresse um 1 bekomme ich das zweite byte (Wert 5)..


Wert ---- Byte4 ---- Byte3 ---- Byte2 ---- Byte1
-------------------------------------------------
1320: 00000000 00000000 00000101 00101000 '1320 is der erwartete Wert
0040: xxxxxxxx xxxxxxxx xxxxxxxx 00101000 '40 ist was ich gelesen bekomme
0005: xxxxxxxx xxxxxxxx 00000101 xxxxxxxx '5 ist an adresse +1
10/24/2009 22:26 psyK82#7
x.x
Hab das Problem..
Hatte in der Deklaration der dll den buffer as byte,
das konnte nicht klappen.. :(

Danke allen für die Hilfe