Heute wollte ich euch zeigen wie man Memory eines anderen Programmes
beeinflussen/verändern kann.
Erstmal muss man die .rar Datei downloaden die ich Angehängt habe.

In der .rar Datei sind enthalten: NomadMemory.au3(da sind die befehle inhalten die man braucht für die Memory veränderung aber dazu später), NomadMemory Anleitung.txt (Darin steht wo man die NomadMemory.au3 Datei hintuhen soll)
-1.Download
Man downloadet die NomadMemory.rar Datei die ich hier Angehängt.
-2.Entpacken und in AutoIt3 zu includen
Man entpackt die .rar Datei und tut die NomadMemory.au3 Datei in
C:/Programme/AutoIt3/Include/ rein.
Die .txt Datei kann man löschen. Darin steht wo man die .au3 genau
hintuhen soll.
Einfache Benutzung
Beispiel:
PHP Code:
#include <NomadMemory.au3> ;Hier wird die "NomandMemory.au3" eingebunden
#RequireAdmin ;Für VistaUser. Dieses Programm könnte evtl. Adminrechte benötigen
$Den_gewuenschten_Stand_eingeben = InputBox ("Vorlage für Memory Beeinflussen/Verändern","Geben Sie ihre gewünschte Punktemenge an");Hier erscheint die Textbox wo man dann den gewünschten Punktestand(oder anderes) reinschreiben kann
$open = _MemoryOpen (ProcessExists("Beispielprogramm.exe")) ;Hier wird eine Variable entworfen die überprüft ob die "Beispielprogramm.exe" gerade ausgeführt wird
$adresse1 = 0x333333 ;Hier ist eine Variable die die adresse (Hex) beinhaltet.(Diese Addresse wird in Zeile 22 verändert)
$adresse2 = 0x444444 ;(genauso wie in Zeile 18)Dies ist evlt die 2. Adresse die verändert werden muss damit der Punktestand(oder anderes) entgültig verändert wird. (Es können auch mehr als nur 2 Addressen geben)
_MemoryWrite ( $addresse1, $open, $Den_gewuenschten_Stand_eingeben, "dword");Hier wird die $adresse1 verändert.MemoryWrite =(deutsch) Speicherschreiben(in dem Fall den Speicher umschreiben). Hier wird auch überprüft ob die "Beispiel.exe" ausgeführt wird. "dword" = 4Byte (also ein 4byte scan)
_MemoryWrite ( $addresse2, $open, $Den_gewuenschten_Stand_eingeben, "dword");Alles genauso wie in der vorigen Zeile nur das hier die $adresse2 umgeschrieben/verändert wird.
Das war ein Algemeines Beispiel
Jetzt folgt ein Beispiel:
PHP Code:
#include <NomadMemory.au3>
#RequireAdmin
While Not ProcessExists("pinball.exe")
Sleep (500)
MsgBox (0,"PinballHack by BlackRide","Öffnen Sie bitte die pinball.exe")
Exit
WEnd
WinActive ("pinball.exe")
$input = InputBox ( "PinballHack by BlackRide", "Geben Sie den gewünschten Punktestand an (max. 400.000.000 Punkte)")
Switch $input
Case 0 To 400000000
Case Else
Sleep (250)
MsgBox (0, "PinballHack by BlackRide", "Ihre gewünschte Punktzahl ist zu hoch/ Ihre gewünschte Punktezahl beinhaltet Buchstaben oder andere Zeichen")
Sleep (500)
MsgBox (0,"PinballHack by BlackRide","!!Dieser Hack wird nun beendet!!")
Sleep (100)
Exit
EndSwitch
$open = _memoryopen (ProcessExists ("pinball.exe"))
$address1 = *******
$address2 = *******
_MemoryWrite ($address1, $open, $input, "dword" )
_MemoryWrite ($address2, $open, $input, "dword" )
Sleep (500)
MsgBox (0,"PinballHack by BlackRide","Die Punkte wurden erfolgreich gesetzt")
Also max. kann man 400000000 eingeben.
Das hab ich mit Switch und Case gemacht.
Wenn man einen Buchstaben, andere Zeichen oder eine zu große Summe(außer Zahlen) eingibt tritt "CaseElse" ein und es erscheint eine Msgbox und benachricht uns das wir keine (oder zu große)Zahlen eingegeben haben.
Danach werden wir benachrichtigt das das Script geschlossen wird.
Dann wird das Script geschlossen.
Zu den Variablen $address1 und $address2
Da muss man nun z.B. mit CE Pinball auslesen und die Adressen die für die Punkte verantwortlich sind finden.
Dann muss man die Adresse die man gefunden hat in einer Variable abspeichern. Man wird merken das etwas nicht stimmt.
Das liegt daran das AutoIt diese Art von Hex nicht kennt.
z.B. die Adresse würde so lauten: 00AC3B8C
Dann müsste man die zweite null in ein "x" umschreiben damit das dann so aussieht: 0xAC3B8C
Dann müsste es gehen.
Für den Punktestand können auch 2 oder mehr Adressen verantwortlich sein.
Den Rest hab ich im ersten Beispiel schon erklärt.
Benutzung mit Pointer
Jetzt kommen wir zu den Pointern.
Die gibt es oft in OnlineGames wie z.B. Metin2.
Pointer Tutorial(Cheat Engine) (Bei Problemen, lest euch trotzdem erst einmal alles durch bevor ihr postet, danke)
Als erstes solltet ihr wissen, dass es 2 verschiedene Arten von Memory Adressen gibt, statische-Adressen(sich (so gut wie nie) ändernde memory adressen) und DMA-Adressen(Dynamic Memory Allocations; ändern sich (meist) nach neustart des Spieles)
Pointer(=Eng. Zeiger) sind nichts anders als statische Adressen, die die DMA adressen mit ihren value's(Die werte des memory codes, z.b. bei 100 life 100) versorgen.
Da man meist als erstes DMA adressen findet, lässt sich daraus kein vernünftiges script zusammen stellen, da diese sich nach neustart des spiels ändern und man sie neu suchen muss . Also sucht man die Pointer und arbeitet mit dem .. Wie Nun, es gibt verschiedene Wege einen Pointer zu finden, doch ich erkläre euch die beiden gängigsten wege :
Als erstes braucht ihr schon das nötige Vorwissen über das finden von memory Adressen(kriegt man überall, wo es internet gibt)
Nun braucht ihr eine DMA Adresse dessen Pointer ihr finden wollt , und als nächstes etwas Zeit um euch durch dieses tutorial zu lesen
Ich verwende als Beispiel ein Egoshooter bei dem ich den DMA code der Muntition (30 Patronen) habe.
Der erste Weg den Pointer zu finden:
Wir mache Rechtsklick auf meine Munitions-Adresse und wähle "Find out what writes to this Adress" aus. In dem Fall, dass ein Popup-Fenster kommt, bestätigen wir es mit Ja und erhalten danach ein Neues fenster. Nun drücken wir Alt+Tab, gehen wieder ins spiel, feuern einen Schuss ab (der Wert muss sich auf irgenteine weise verändern) und Alt+Tabbn wieder zu cheat engine zurück. Jetzt müsste Cheat Engine etwas gefunden haben. Wir makieren diese Adresse mit einem einfachem linksklick und klicken dann auf "More Information".
Der rote Code(die jämmerlig makierte 2 ) ist übrigens die Stelle an der unser Wert vom Spiel in dem gefundenen Memory Code abgeändert wird.
Doch was wir brauchen ist die mit der ebenfalls jämmerligen 1 makierte Hex von dem Satz "The value of the Pointer needed to find this address is probably". Dies heißt, dass der Wert(Value) unseres gesuchten Pointers die eben genannte hex ist.
Das finden wir natürlich klasse , und suchen mit einem 4Byte scan, Exact value und nem häckchen bei Hex, nach dieser Value. Wir haben nun eine Adresse im suchfenster oder mit pech mehrere 100 (keine Sorge, meist sind es 1-3 )
Diese fügen wir nun der Adressliste hinzu und klicken auf "Add Address manually" . Nun machen wir ein Häckchen bei Pointer und geben den Adresse Code(nicht die Value!) der ersten Memory Adresse von den eben hinzugefügten ein.Nun auch das Offset( Offset , das Offset muss man sich wie einen Wegweiser von DMA adressen zu deren Pointern vorstellen. ) welches sich in dem "More Information" Fenster von vorhin in dem mit der 2 makiertem teil befindet. Dort versteckt es sich in dem Teil der am ende in den klammern steht(pic: [eax+08]) und ist in diesem Falle "08" ohne die " " . (bei unverständlichkeit dieses Teils gebt bitte bescheid)
Klickt nun auf OK und der Pointer sollte sich in eurer Liste befinden, wenn nicht, ist es endweder ein Multilevel Pointer oder es gibt keinen Statischen Pointer und man muss codeinjection mit einbringen.
Der zweite gängige Weg den Pointer zu finden:
Einfach gleich auf die DMA Adresse rechtsklick und "Pointer Scan for this Adresse" auswählen . Danach auf Default und schließlich auf OK drücken(man lässt alles so wie es ist). Nun scanned cheat engine von alleine nach dem Pointer, aber die chance ihn auch zu kriegen ist geringer . Doch hat cheat engine was gefunden, zeigt er das in dem fenster an, man muss nur doppeltklick darauf machen und hat den Pointer in seiner liste .
Habt ihr den Pointer gefunden? Denn ma auf auf an's scripten/hacken, wir sind auf eure Werke gespannt ! Und keine falsche Scheu sie in diesem forum zu posten!
Ich kann nicht garantieren, dass diese beiden Wege euch immer zum ziel bringen, doch tun sie es meistens
Bei unverständlichkeit meiner Erklärungen bitte bei mir melden.
Wenn ich geholfen hab bitte drück den "THX"-Button
MfG BlackRide







