Join Date: Dec 2009
Posts: 7
|
Ich kann dir leider nicht sagen, wie du in einer gecodeten exe die neue Stelle findest, DMA (Dynamic memory allocation) ist aber leider weit verbreitet^^ Du kannst allerdings mit tsearch (z.B.) wenn du den Wert gefunden hast unter AutoHack den debugger aktivieren und dann das autohack window öffnen. In dem neuen Fenster dann unter edit --> set breakpoint die Addresse eingeben die du gefunden hast. Dann nochmal, wenns zum beispiel um die Muni geht einen Schuss abfeuern und du solltest sehen, dass sich im AutoHack fenster etwas getan hat. Jetzt solltest du einen Assemblerbefehl mit Addresse haben. Jetzt hast du 2 Möglichkeiten: 1. alle bytes dieser Addresse mit 90 (NOP) ersetzen, somit findet keine Änderung der Munition mehr statt (freeze) 2. eine Code Cave suchen, in diese abspringen (JMP), dort die Stelle von der du abgesprungen bist nachbilden (in ollydbg kannst du stellen im ASM markieren und binary copy/paste per Rechtsklick machen). Nun hast du z.B. wenns um Geld geht die möglichkeit dir einen festwert von 10000 einzutragen (10000 in hex umrechnen --> 2710). Ich hab leider kein Beispiel zur verfügung, aber oft wird der Wert eines Registers in eine bestimmte Addresse verschoben, das würde z.B. so aussehen: MOV DWORD PTR [00786CA4], EAX Wenn du einfach fest den Wert 10000 als Geldwert haben möchtest, dann hättest du nach der änderung MOV DWORD PTR [00786CA4], 00002710 Danach wieder per JMP an die ursprüngliche Stelle zurückspringen und fertig ist das ganze, sobald du das nächste mal Geld ausgibst oder bekommst wird dein Geld fest auf 10000 gesetzt (ich mach sowas bevorzugt in Ollydbg, finde ich am übersichtlichsten um mir das coding vorzubereiten )
Das war jetzt alles aus dem Kopf, ich hoffe es sind keine Fehler drin und ich konnte dir ein bisl mit helfen
Gruß, KK |