Game Design Cyber Security

Welten bauen / Systeme verteidigen

Ich baue die Systeme, die echten Spielern standhalten müssen.

Ich bin Michael Tot, Senior Systems Engineer. Ich entwerfe, baue und betreue ganze Systeme langfristig: die Sicherheit, die Architektur und die Logik darunter. Am besten bin ich darin, Exploits aufzuspüren, Systeme zu entwerfen, die ihnen standhalten, und Legacy-Code zu retten.

Ich programmiere, seit ich sechs bin, und arbeite seit meinem dreizehnten Lebensjahr bezahlt, hauptsächlich in C# und Lua. Seit über zwei Jahren bin ich der alleinige Entwickler bei Diverge Networks, einer der größten Garry’s-Mod-Roleplay-Communities: über 700 Commits, von der Spezifikation bis in die Produktion. Ich arbeite langfristig und remote, in Vollzeit oder auf Retainer-Basis.

$ whoami
michael-tot, Senior Systems Engineer
$ coding --since
seit 6, bezahlt seit 13
$ stack --deep
C#, Lua
$ availability
offen für Security-Vollzeitstellen oder Retainer
$

Mein Werdegang

  1. Mit 6

    Habe mit dem Programmieren angefangen, in PAWN, indem ich auf dem Computer meines Bruders die Serverdateien von San Andreas Multiplayer bearbeitet habe. Autodidaktisch, über die Spiele, die ich gespielt habe.

  2. Mit 11

    Mein erster Auftrag: ein komplett eigener Gamemode für einen großen Multiplayer-Server.

  3. Mit 13

    Bezahlte Lua-Arbeit über die Garry’s-Mod-Marktplätze und Programmierunterricht im Einzelunterricht. Mein aktueller Kunde war einmal mein Schüler.

  4. Mit 18

    Als langfristiger Entwickler für einen der größten Garry’s-Mod-Roleplay-Server eingestellt, innerhalb weniger Tage, nachdem ich mich wieder auf dem Markt angeboten hatte.

  5. Mit 20

    Habe diesen Server gekauft und als Eigentümer, alleiniger Entwickler und Leiter des Staff-Teams geführt, mit einem Community Manager, den ich eingestellt und bezahlt habe. Acht Monate später habe ich ihn verkauft.

  6. Heute

    Alleiniger Entwickler bei Diverge Networks und offen für eine Vollzeitstelle in Security oder Architektur oder für ein paar weitere langfristige Kunden.

Was ich mache

Ganze Systeme verantworten

Ich kläre, aus welchen Teilen ein System besteht, was jeder Teil leistet und wie sie zusammenspielen, halte es schriftlich fest, baue es und halte es über Jahre gesund. Wenn sich ein Entwurf erst beweisen muss, entsteht zuerst ein schneller Prototyp.

Exploits aufspüren

Ich lese ein System so, wie es ein Angreifer täte: Vertrauen in Client-Daten, Race Conditions, missbrauchte Staff-Tools. Danach schließe ich die Lücken im Live-System, ohne es herunterzufahren.

Legacy-Code retten

Geerbter, halbfertiger oder verworrener Code ist das, womit ich mich am wohlsten fühle. Manchmal heißt das, die eine saubere Lösung zu finden. Manchmal heißt es, ihn so umzubauen, dass die nächste Person ihn warten kann.

Gestalten, wie es sich anfühlt

Ich entwerfe, wie sich ein System für die Spieler anfühlen soll, die es nutzen, und für die Designer, die es abstimmen, und steuere die Arbeit an der Oberfläche. KI-gestützte Umsetzung steuere ich genauso: Architektur und Review bleiben bei mir.

Schwerpunkt
C#, Lua (GLua)
Außerdem
Python, C++, GDScript, PHP
Engines und Plattformen
Garry’s Mod (Source), Unity (einschließlich ECS-Modding über IL2CPP, BepInEx und Harmony), Godot, XNA
Datenbanken
MySQL, PostgreSQL, MongoDB
Reverse Engineering
Ghidra, IL2CPP-Spiele, Assembly und C lesen

Ausgewählte Projekte

Fünf Case Studies aus über zwei Jahren als alleiniger Entwickler bei Diverge Networks, einer der größten Garry’s-Mod-Roleplay-Communities. Orange Kanten markieren Spielsysteme, cyanfarbene Kanten markieren Security und Infrastruktur. Screenshots und Videos werden nach und nach ergänzt.

Live

Eine Live-Wirtschaft absichern

Die Wege finden und schließen, auf denen Spieler in einer spielergetriebenen Wirtschaft Gegenstände dupliziert, teleportiert und gefälscht haben, ohne den Server herunterzufahren.

Lua (GLua), NutScript, MySQL

Live

Haftbefehle und Strafjustiz

Haftbefehle, Strafregister, Verbrechen, Kaution und Berufung, mit Discord- und Pager-Anbindung und serverseitigen Prüfungen bei jeder Aktion.

Lua (GLua), MySQL, Discord-Webhooks

Live, Teile im Test

Legacy-Rettung auf einem Live-Server

Telefone und Funkgeräte von Grund auf neu gebaut, alle Plugins auf MySQL umgezogen, Ausrüstung, die keine Gegenstände verlieren kann, und eine Kofferraum-Migration, die den Stauraum aller Spieler umzieht, ohne dass etwas verloren geht.

Lua (GLua), NutScript, MySQL

Gebaut, im Test

Brauen, Reifung und Alkoholisierung

Das Designstück: ein Brau-Fass mit von Designern abstimmbaren Wahrscheinlichkeiten, Reifung als Glockenkurven über die Zeit und ein Blutalkohol-Modell, auf das die Polizei testen kann.

Lua (GLua)

Mehr von Diverge

Live

Events für Fraktionskonflikte

Geplante PvP-Events für rivalisierende Fraktionen, mit Admin-Menüs, dauerhafter Punktewertung und fairer Skalierung, wenn sich die Spielerzahlen ändern. King of the Hill ist in Arbeit.

Lua (GLua), MySQL

Eingestellt

Plugin-Hot-Reload

Ein Hot Reload auf Plugin-Ebene, der mir vier Monate lang die zwanzigsekündigen Reload-Freezes aus dem Arbeitsablauf genommen hat, und was ich beim Einstellen gelernt habe.

Lua (GLua), NutScript-Interna

Meine eigenen Projekte

In Arbeit

Luminol, ein GLua-Deobfuskator

Ein C#-Tool zum Prüfen von Garry’s-Mod-Addons: Es schreibt verschleiertes Lua über den Syntaxbaum Pass für Pass um und soll künftig verdächtiges Verhalten markieren.

C#, .NET 11, Loretta (Lua-Parser)

Offen veröffentlicht

Dojo Arena, eine V-Rising-Server-Mod

Eine PvP-Arena-Mod, auf der sechs Monate lang ein öffentlicher Server lief: mein Command-Framework sowie Spielregeln, die per IL2CPP in Unity ECS gepatcht wurden.

C#, BepInEx, Harmony, Unity ECS

Zuerst die Schwachstelle finden

Zu Beginn meines Studiums habe ich Schwachstellen auf der Website der Schule gefunden und den Administrator Schritt für Schritt durch sie geführt, damit sie behoben werden konnten. Ich habe nichts angefasst. Ich habe sie ihm nur gezeigt.

So arbeite ich bis heute. Auf einem Live-Server suchen Spieler jeden Tag nach Exploits. Also lese ich ein System so, wie es ein Angreifer täte, und schließe die Lücken, bevor jemand anderes sie findet. CTFs halten diesen Instinkt scharf, und ich baue gerade Luminol, einen Deobfuskator zum Prüfen von Garry’s-Mod-Addons.

Wie ich eine Live-Wirtschaft abgesichert habe →

Gefunden, behoben, ausgeliefert

  • Spieler konnten Gegenstände über eine Zeitlücke beim Aufheben aus Kisten duplizieren. Gegenstände werden jetzt vor der asynchronen Verarbeitung reserviert und bei einem Fehler zurückerstattet.
  • Über das Netzwerk übertragene Event-Daten verrieten genug, um bei einem Live-PvP-Event zu schummeln. Behoben mit einem Patch, der darauf ausgelegt war, sofort auf den Live-Server zu gehen.
  • Die versteckten Daten einer Fingerabdruckkarte ließen sich vom Client aus bearbeiten. Änderungen akzeptieren jetzt nur noch bekannte Felder und werden auf dem Server gespeichert.
  • Der Server akzeptierte eine vom Client gesendete Fraktions-ID, wenn Charaktere zwischen Fraktionen verschoben wurden. Er prüft die ID jetzt gegen seine eigenen Daten.
  • Änderungen an Akten akzeptieren nur IDs, die der Server dem Spieler zuvor selbst gezeigt hat. Eine geänderte ID in der Anfrage bewirkt nichts.
  • Ein Exploit über eine Kontextmenü-Aktion entfernte den Waffenrückstoß. Die Lücke ist geschlossen.

Meine Arbeitsweise

Langfristig, nicht stundenweise. Eine Vollzeitstelle in einem Security- oder Architektur-Team oder ein Retainer mit einem festen Stundenkontingent pro Monat: In beiden Fällen eine Zusammenarbeit, die Jahre hält, und eine stetige Vielfalt an Problemen, die ich verantworten darf.

Wer einen Setzling pflegt, erntet Früchte über sein eigenes Leben hinaus. So arbeite ich auch: Ich verantworte Ihre Systeme lieber über Jahre, als ein Feuer zu löschen und wieder zu gehen. Jemand auf Ihrer Seite verantwortet die Anforderungen; ich verantworte die Architektur, den Bau und dass das System gesund bleibt.

Sie sehen den Fortschritt laufend und nicht erst am Ende, und mit wachsendem Vertrauen wird der Prozess schlanker. Die Arbeit ist standardmäßig remote und asynchron, und ich bin offen für einen Umzug, wenn der Arbeitgeber ihn bezahlt. KI setze ich so ein, wie es ein Senior Engineer tun sollte: Ich entwerfe und steuere, sie beschleunigt den Bau. Stundenweise Aufträge und unbezahlte Probearbeit nehme ich nicht an.

Mit wem ich arbeite

  • Game-Security- und Anti-Cheat-Teams sowie AppSec- und Security-Engineering-Teams, die einen Architekten suchen, der wie ein Angreifer denkt.
  • CTOs und Gründer von Spielestudios und Game-Tech-Unternehmen mit echten Kunden und Systemen, die halten müssen.
  • Security-Unternehmen, die jemanden brauchen, der baut und dabei den Instinkt eines Hackers hat.
  • Betreiber großer Multiplayer-Plattformen und -Server, die einen langfristigen Architekten wollen.
  • Deutschsprachige Teams: Ich bin zweisprachig mit Deutsch aufgewachsen.

Mehr als Code

Server, Wirtschaftssysteme, Sicherheit und Menschen sind alle Systeme, und mich interessiert am meisten, warum sie so kaputtgehen, wie sie es tun. Code ist mein Broterwerb. Das zu verstehen, beschäftigt mich immer wieder.

Ich suche ein Team oder einen Kunden, bei dem ich langfristig bleiben kann, keine Zwischenlösung: einen Ort, an dem die Probleme immer anspruchsvoller werden und die Systeme es wert sind, geschützt zu werden.

Ich wurde in Deutschland geboren und bin in Serbien aufgewachsen, von Kindheit an zweisprachig mit Serbisch und Deutsch. Englisch ist meine stärkste Arbeitssprache, und ich lerne Französisch. Neben der Arbeit lese ich über Mathematik, Philosophie und Psychologie und denke darüber nach.

Lassen Sie uns reden

Schicken Sie mir eine kurze Nachricht dazu, was Sie aufbauen und wo Sie Unterstützung brauchen. Ich arbeite remote in Mitteleuropäischer Zeit, auf Englisch oder Deutsch.

Referenzen von Diverge Networks auf Anfrage.

Ich bin

KI-Agenten dürfen dieses Formular ebenfalls nutzen. Wählen Sie oben einfach „Ein KI-Agent“.