Home of Gamehacking - Archiv

Normale Version: Pointer Schreiben?
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6
Und diese Addy (1ADC570) auslesen und 268 hinzuaddiert.
Der erhaltene Wert ist der Pointer der auf die gesuchte Adresse zeigt.

Was eben alles schon besprochen wurde.
Wie kommst du auf die Adresse? Wie hast du das gerechnet?
(22.03.2011, 22:49)chesar schrieb: [ -> ]Neues Problem :rolleyes:

Wie schreibe ich so eine Adresse?

"HOMEFRONT.exe"+016D8F70 Offset 268

Nur 16D8F70 + 268 geht leider nicht

Ich nehme jetzt mal Bezug auf deinen Beitrag (Beitrag 20).

Die Homefront.exe hat ne Imagebase von 0x400000h. Diese Virtuelle Adresse stellt den Anfangspunkt im Speicher da wo die Homefront.exe anfängt. Von dieser Adresse ausgehend wird der Pointer berechnet.
Du rechnest also, wie DNA es schon gezeigt hat, folgendermaßen:
0x400000h + 0x16D8F70h. Das Ergebnis von 0x1AD8F70h ist der Pointer der auf eine Speicherstelle zeigt.
Das heißt das dieser Wert für unsere Begriffe eine Adresse, also die 0x1AD8F70h darstellt.
Den Wert, der in dieser Adresse im Speicher steht, musst Du auslesen und zu dem ausgelesenen Wert musst Du in diesem Fall 0x268h hinzuaddieren. Das Ergebnis von 0x1AD91D8h ist dann deine gesuchte Adresse.
Klar soweit?!

EDIT// Zum besseren Verständnis... Imagebase = BaseAdress. In Cheat Engine nur als Base bezeichnet.
[attachment=264]
soweit habe ich alles verstanden, aber leider muss ich euch sagen das es nicht geht :(

Wie macht ihr das eigentlich mit z.b. UE Munni macht ihr eine Code Injektion oder oder mit ein Timer?
Wenn möglich bevorzuge ich eine CI.

Wenn es nicht funktioniert, dann versuche mal VB als admin zu
starten ... wenn es dann immer noch nicht funktioniert,
siehe Beitrag #19
(24.03.2011, 19:21)chesar schrieb: [ -> ]soweit habe ich alles verstanden, aber leider muss ich euch sagen das es nicht geht :(

Wie macht ihr das eigentlich mit z.b. UE Munni macht ihr eine Code Injektion oder oder mit ein Timer?

Für einen zb. "Unlimited Ammo" Cheat nutze ich ausschließlich eine Code Injection. Wenn's möglich ist dann schreibe ich auch die Code Injection mittels Pointer. Oder besser gesagt ich nutze dazu Pointer um die korrekte Addy zu ermitteln. So z.b. beim Trainer zu Lara Croft - The Guardian of Light.
[code=ASM]
push eax
mov eax,010D3058
mov eax,[eax]
add eax,0000031C
mov eax,[eax]
cmp eax,esi
pop eax
je 00400421
[/code]
Das ist ein Teil der Code Injection zum One Hit Kill. EAX wird gesichert. Nach EAX wird "lcgol.exe+0xCD3058h = 0x10D3058h" geschrieben. Der Wert wird ausgelesen und wieder in EAX gespeichert. Zu EAX wird das "Offset" 0x31Ch hinzuaddiert. Dieser Wert wird wieder ausgelesen und wieder in EAX gespeichert. Wenn nun EAX = ESI ist dann handelt es sich um die Health Adresse des Spielers. Alle anderen Adressen die hier sonst durchlaufen werden sind nur gegnerische Health Adressen. Das heißt ich habe die Adresse des Spielers gefiltert. Wird eine Spieleradresse gefunden ist der CMP = True und der "je 00400421" springt über die "One Hit Kill - Cheat Anweisung". Würde eine gegnerische Health Adresse hier angeschweppert kommen ist der CMP = False und der One Hit Kill Cheat greift, sofern dieser durch den Trainer aktiviert wurde.

Aber wenn Du einen "Unlimited" Cheat durch Deinen Trainer realisieren willst, was ich allerdings nicht empfehle, dann musst Du das Ganze in einen Timer packen und die Zeit so minimal wie möglich einstellen.

In diesem Sinne frage ich mal andersrum. Was versuchst Du eigentlich laut Beitrag 20 zu realisieren? Dein Trainer soll permanent die Ammo oder Health Adresse beschreiben, also praktisch resetten?
Hey Leute,
hab da ein Problem.
Wollte heute ein Pointer Schreiben mit 5 Offset wollte das so machen:

Code:
GetProcessId(ProcName)
        pointer = Read_Long(&H1E7604C) 
        Write_Long(pointer + &H244, +&H4B0, +&H5C, +&H0, +&H1D8, 123)  


leider sagt mir VB jetzt:
Zu viele Argumente für "Public Sub Write_Long(address As Integer, value As Integer)".

Wo ist da der Fehler?

(07.10.2011, 19:50)chesar schrieb: [ -> ]Hey Leute,
hab da ein Problem.
Wollte heute ein Pointer Schreiben mit 5 Offset wollte das so machen:

Code:
GetProcessId(ProcName)
        pointer = Read_Long(&H1E7604C) 
        Write_Long(pointer + &H244, +&H4B0, +&H5C, +&H0, +&H1D8, 123)  


leider sagt mir VB jetzt:
Zu viele Argumente für "Public Sub Write_Long(address As Integer, value As Integer)".

Wo ist da der Fehler?


Hey,
die Funktion Write_Long(address As Integer, value As Integer) erwartet nur zwei Argumente, das Erste ist die Adresse (z.B 0x40000) und das Zweite ist der Wert z.B 99h. Wenn du jetzt mehrere Argumente der Funktion übergeben willst, dann musst du die ganze Funktion nach deinen Wünschen bearbeiten.
:s Das bekomme ich leider nicht hin.
Könnte einer das vielleicht von euch übernehmen?
verwende ja das Trainer Modul
(07.10.2011, 21:57)chesar schrieb: [ -> ]:s Das bekomme ich leider nicht hin.
Könnte einer das vielleicht von euch übernehmen?
verwende ja das Trainer Modul

evtl. so:
GetProcessId(ProcName)
pointer = Read_Long(&H1E7604C)
Write_Long(pointer + &H244, 123)
Write_Long(pointer + &H4B0, 123)
Write_Long(pointer + &H5C, 123)
usw...

NICHT getestet!!! aber sollte gehen
Seiten: 1 2 3 4 5 6