GameHacking

Wat ik heb geleerd  over het hacken van video-games

Op de middelbare school en later op de universiteit had ik wat de meeste mensen als een vreemde hobby beschouwden: hacking van videogames. Om precies te zijn, ik was bezig met het maken van cheatcodes voor Playstation-spellen die je bijvoorbeeld onoverwinnelijk zouden maken tegen vijandige aanvallen of je toestaan ​​door muren in je favoriete racegame te rijden. Ik heb het echter niet over het soort cheatcodes dat kan worden geactiveerd door het invoeren van geheime wachtwoorden of het indrukken van controllerknoppen in een bepaalde volgorde. Ik heb het over het wijzigen van de gegevens en de programmacode van de game tijdens runtime door de mechanica reverse-engineering toe te passen .

Dit was allemaal heel leuk. Trouwens, het is hoe ik op de eerste plaats in computers en programmeren stapte. Maar het is meer dan dat, veel meer. Hier zijn 10 dingen die ik heb geleerd van het hacken van videogames, waarvan de meeste pas achteraf gezien duidelijk zijn.

Programmeren

Ik heb mezelf de programmeertaal C geleerd om mijn eerste "juiste" hacktools te schrijven. Alle coole kinderen gebruikten het voor low-level systeemdingen. Dit was ook toen ik een fan werd van command-line tools. Misschien wel leuk voor jullie, ik heb zelfs een aantal generators gebouwd voor https://gamehacks.nl/.

Bits en bytes

Hacken van videogames hielp me te begrijpen: hexadecimale cijfers, Booleaanse algebra, binaire formaten zoals ELF, geheugenlay-out van uitvoerbare bestanden, interrupts, breekpunten, assemblers, demasslers, hex-editors en nog veel meer.

Basisprincipes van netwerken

De PS2 wordt geleverd met een Ethernet-poort / -adapter, wat we gebruikten om geheugendumps naar een pc over te zetten met behulp van een eenvoudige client-serverimplementatie. Ik moest de basisprincipes van TCP / IP, DNS, netwerkprogrammering, enz. Leren om dat te bereiken.

Linux

Het schrijven van code voor gameconsoles omvat meestal cross-compileren onder een Linux-y-omgeving. Zo maakte ik kennis met gcc, bash, make, grep en andere GNU-hulpprogramma's - eerst op Windows via Cygwin en MinGW, later op Ubuntu.

Versiebeheer

Subversion, Mercurial, Git. Ik heb ze allemaal geprobeerd. Als ik het me goed herinner, was ik een van de eersten die homebrew naar GitHub verhuisde . Het gebruik van GitHub en andere platforms leidde ook tot mijn interesse in het schrijven van goede documentatie.

Ik heb deze lijst niet als een middel om te opscheppen gezet - het is toch niet zo indrukwekkend. Nee, ik schreef dit vooral voor nostalgie (denk aan de goede oude tijd) en introspectie (mezelf beter leren begrijpen).

Hoewel de tijden zijn veranderd - ik neem amper meer een spelcontroller op - zou ik waarschijnlijk niet de software-ontwikkelaar zijn die ik nu ben als het niet om het hacken van games ging. Ik ben zelfs helemaal geen programmeur. Het verbaast me nog steeds hoe zo'n nerdhobby uiteindelijk een levenslange passie en carrière werd.