Pointer usw :)

sooo... kaum werd ich mal wieder im habo aktiv spam ich wieder alles mit meinen threads zu ;D

also...vorweg...pointer-kein problem. dennoch hätt ich ne frage.

(Sprache C/C++)
Mit pointern in Speicherbereiche zugreifen, die von anderen programmen benutzt werden, wird ja soweit ich weiß, vom os verhindert. gibts nicht doch irgendwelche ausnahmen oder schleichwege, sowas doch zu machen?


Außerdem frag ich mich dann noch, wie, grob erklärt, trainer (diese programme um wärend des spiele spielens werte usw zu verändern) funktioniert?

mfg CusHi
 
Original von CusHi0n
(Sprache C/C++)
Mit pointern in Speicherbereiche zugreifen, die von anderen programmen benutzt werden, wird ja soweit ich weiß, vom os verhindert. gibts nicht doch irgendwelche ausnahmen oder schleichwege, sowas doch zu machen?
Für Win: Außer Read/WriteProcessMemory fiele mir spontan nichts ein.
 
Also, zu der Frage, wie ein Trainer funktioniert:

Jedes Spiel muss ja die einzelnen Werte (Health, Ammo, Armor, Money, etc.) speichern. Um ein Trainer zu machen, startet man das Spiel, und fängt an den Speicherbereich abzusuchen. Wenn man z.B.: 100 Leben hat, sucht man alle 100 im ganzen andressbereich und speichert die Andressen. Dann vermindert man sein Leben auf z.B. 75 und durchsucht wieder die gespeicherten Adressbereiche, nach der Zahl 75. Sicher werden ca. 50% aller Adressen wegfallen. So geh man weiter, bis nur noch 1 oder 2 Adressen überigbleiben. Nun kann man z.B. beide Adressen auf zwei verschiedene Werte setzten und dann schauen, welcher sich im Spiel manifestiert hatte. Dann schreibt man ein Proggi, welcher auf diesen Adressbereich zugreift und verändert den Wert andauernd.
Kurz:

1. Get Handle to Trained-Programm
2. Search for Value
3. Save Pointer
4. Change Value
5. Search Pointers for new Value
6. Dropp wrong Pointers
7. if (Pointers > 1 ) goto 5
8. Change Pointer

Ok, so schreibt man ein Trainer. Seine Funktion schaut ca. so aus:

1. Start Game
2. Start Trainer
3. Open the Pointer
4. Look for changes of the Pointer
5. if (old != new)
5.1 restore old Value
6. goto 5


Nun, wenn man ein Trainer in C++ schreiben soll, so hat man wirklich "nur" die 2 Befehle, die schon aberrider genannt hat.
Hoffe konnte weiterhelfen
MfG
Mobius
 
Zurück
Oben