# Trainer (Software)

Trainer ist ein Begriff aus dem Bereich der Computerspiele, und eine Variante eines Cheats.
Er bezeichnet ein Programm, das in einem Computerspiel den Inhalt von Speicheradressen manipuliert und dadurch für den Spieler positive Effekte hervorruft. Dabei können entweder in einem Intro Wirkungen ausgewählt werden, die permanent aktiv sind, oder es werden verschiedene Wirkungen auf unterschiedliche Tasten, sogenannte Hotkeys, gelegt.
Trainer ähneln in ihrer Wirkung Cheats. Cheats sind jedoch bereits im Spiel selbst eingebaut, während Trainer eigenständige, zusätzliche Software sind. Trainer werden hauptsächlich von Privatpersonen oder Gruppen, die sich auf das „Hacken“ von Spielen spezialisiert haben, herausgebracht und erscheinen auch häufig auf CDs von Computerspiel-Zeitschriften. Seit einigen Jahren gibt es auch Programme wie das „Trainer Maker Kit“ mit denen der fortgeschrittene Laie selbst durch einfache Mausklicks Trainer für ein Spiel erstellen kann.

## Beispielfunktionen eines Trainers

Häufige Funktionen von Trainern sind zum Beispiel:
* Unendliche Gesundheit, Munition oder Ressourcen
* Schnellerer bzw. langsamerer Spielverlauf
* Bestimmte Fahrzeuge und/oder Waffen erscheinen lassen

## Interne Arbeitsweise

Intern funktionieren Trainer so, dass sie den Prozess, in dem das Spiel gerade läuft, beobachten und je nach ihrer Funktionsweise den Code des Spiels manipulieren oder die Spieldaten oder beides.
Beispiele:
* Der Programmteil des Spiels, bei dem der Spieler ein Leben verliert, wird durch Code ersetzt, der keine Auswirkungen hat (siehe Nulloperation). Dadurch ändert sich die Anzahl der Leben nicht mehr.
* An der Stelle, an der das Spiel die Anzahl der Leben speichert, schaut der Trainer regelmäßig nach, und wenn dort eine zu kleine Zahl steht, überschreibt er sie mit einer größeren.
* In einem wiederkehrenden Interrupt wird ein fester Wert auf die Stelle mit der Anzahl der Leben geschrieben.
* Dem Nutzer wird die Belegung einer Taste bereitgestellt, mit der er den Schild seines Raumschiffs auffüllen und aktivieren kann, indem dabei der interne Schildenergiezähler hochgesetzt und das Programmstück zur Schildaktivierung aufgerufen wird.
Um solche Manipulationen zu verhindern, können Spiele Gegenmaßnahmen entwickeln. Mögliche Techniken dafür sind:
* Der Spielstand wird nicht an einer festen Adresse gespeichert, sondern bei jedem Spielstart woanders. In besonders schweren Fällen kann der Spielstand auch ständig im Speicher umherwandern.
* Der Spielstand wird im Speicher verschlüsselt, so dass der Trainer nicht einfach so an die Daten kommt.
* Das Spiel berechnet laufend eine Prüfsumme über den Spielstand, die regelmäßig kontrolliert wird. Dadurch muss der Trainer das Verfahren für die Prüfsumme herausfinden, oder aber den Code für die Prüfsummenberechnung deaktivieren. Das verursacht zusätzlichen Aufwand.
* Mit dem gleichen Mechanismus, wie der Trainer das Spiel im Speicher überwacht, kann das Spiel auch den Trainer überwachen. Dazu muss es jedoch wissen, wie so ein Trainer üblicherweise aufgebaut ist und wie man ihn von unbeteiligten Programmen, die zur gleichen Zeit auf dem Rechner laufen, unterscheiden kann.

## Trainer für Videospielkonsolen und Handhelds

Trainer existieren auch als Teil von Cheat-Systemen für Videospielsysteme als Hardware (z. B. Xploder, Action Replay u. a.).
Anders als bei Trainern zu PC-Spielen, ist es hier möglich, eigene Cheat-ähnliche Spielemanipulationen, sogenannte Codes zu finden.
Nach dem Ausschlussverfahren lassen sich Speicheradressen ausfindig machen, an denen für das laufende Spiel wesentliche Daten gespeichert sind.

## Geschichte

Trainer wurden von Crackern bereits in den 1980er Jahren, zumeist direkt in Spiele für Heimcomputer wie den Commodore 64 integriert; ein bekanntes Beispiel dafür ist 1942 Trainer (1986).