
Schritt-für-Schritt-Anleitung zur Verwendung des lokalen KI-Modells Gemma 4 E4B von Google, um einen Windows-Crackme mit Ghidra zu reverse-engineeren, einschließlich Einrichtung für lokale Inferenz und automatischer Umbenennung von Funktionen/Variablen.
Ich habe mit dem neuen Gemma E4B Open-Weights-Lokalmodell herumgespielt, das Google veröffentlicht hat, und zu meiner Überraschung hatte ich großen Erfolg bei der Verwendung für lokale Offline-Reverse-Engineering-Szenarien. Ich wollte dieses Tutorial schreiben, um die Botschaft zu verbreiten, dass lokale KI jetzt für viele grundlegende Reversing-Aufgaben gut genug ist und dass sich die Dinge ab hier wahrscheinlich schnell verbessern werden.
Einer der mühsamsten Teile beim Reversing einer neuen Binärdatei ist ganz am Anfang, wenn man keine Einblicke in die wichtigen Funktionen und Variablen hat. Es gibt viele Tricks, die Reverser verwenden, um einzusteigen, wie das Betrachten von String-Referenzen, Binary Diffing oder Abgleich ähnlicher Funktionen.
KI ist hier sehr hilfreich, und ich persönlich hatte großen Erfolg mit der OpenAI-API, um eine Binärdatei zu markieren oder die Ausgabe des Decompilers zu bereinigen. Es gibt jedoch mehrere Nachteile bei der Verwendung dieser APIs:
Kosten - Dekompilierung und Disassemblierung erzeugen Unmengen von Tokens. Die APIs berechnen $ pro Token, sodass die Analyse größerer Binärdateien eine ganze Menge Geld kosten kann. Wenn man es mit einem großen Ziel mit vielen Binärdateien zu tun hat, die jede Woche aktualisiert werden, können sich diese Kosten schnell summieren und sind für Hobby-Reverse-Engineers unerschwinglich.
Privatsphäre - Wenn man eine Remote-API verwendet, hat der Host der KI Einblick in das, was man tut. Das ist in einigen professionellen Szenarien ein No-Go.
Kontrolle - Wenn man sich auf eine Remote-API verlässt, hat man keine Kontrolle darüber, welche Modelle einem bereitgestellt werden oder wie die Qualität der Modelle ist. Wenn man sich für kritische Aufgaben auf sie verlässt, kann dies ein Problem sein, wenn sie langsam werden oder ausfallen, wenn man sie braucht, oder wenn ihre Ausgabequalität so weit abnimmt, dass sie nutzlos sind.
Das Ausführen eigener lokaler KI-Modelle behebt einige dieser Probleme:
Kosten - Es kann viel billiger sein, ein lokales Modell auszuführen, als sich auf einen gehosteten Dienst zu verlassen. Auch wenn Ihr lokales Modell wahrscheinlich kleiner und langsamer ist als das eines guten Anbieters, kann es sinnvoll sein, Geld zu sparen, indem Sie Ihr eigenes Modell ausführen, wenn es gut genug ist und in einer angemessenen Zeit läuft, insbesondere wenn Sie große Datenmengen für einfache Aufgaben verarbeiten.
Privatsphäre - Wenn Sie das Modell lokal ausführen, finden keine Netzwerkaufrufe statt, und Sie haben die vollständige Kontrolle über Ihre Privatsphäre. Niemand kann sehen, wofür Sie das Modell auf Ihrem eigenen Rechner verwenden.
Kontrolle - Das Schöne an einem Open-Weights-Modell ist, dass es Ihnen niemand wegnehmen kann. OpenAI oder Anthropic könnten eines Tages ihre SotA-Modelle nicht mehr verfügbar machen, entweder durch Preiserhöhungen oder durch explizite Entfernung ihrer APIs. Aber mit einem Open-Weights-Modell haben Sie die Kontrolle über Ihr Schicksal, im Guten wie im Schlechten.
Lokale KI-Modelle haben jedoch auch ihre Nachteile:
Größe - Je größer Ihr Modell, desto intelligenter ist es. Allerdings passen die meisten großen Modelle nicht auf Consumer-Hardware. Aus diesem Grund laufen Sie, wenn Sie ein lokales Modell ausführen, wahrscheinlich ein Modell, das 10x-100x kleiner ist als ein SotA-Modell (State-of-the-Art). Diese Verringerung der Größe führt direkt zu einer Verringerung der Intelligenz des Modells, wodurch es für viele Aufgaben ungeeignet wird, die in SotA-Modellen wie ChatGPT/Codex oder Claude als selbstverständlich angesehen werden.
Geschwindigkeit - Lokale Modelle werden auf Ihrem Rechner wahrscheinlich langsamer laufen als bei Verwendung einer KI-API. Auch dies ist auf die Einschränkungen der Consumer-Hardware und einige Tricks zurückzuführen, die API-Anbieter anwenden können, die Ihnen im Allgemeinen nicht zur Verfügung stehen.
Konfiguration - Das Ausführen lokaler Modelle ist vergleichbar mit dem Versuch, Linux auf einem refurbished Laptop zum Laufen zu bringen, im Gegensatz zum Betreten des Apple Stores und dem Kauf eines sauberen neuen Macbook Air. Das Codex- und Claude-Code-Erlebnis ist das Apple-Store-Erlebnis der KI. Das lokale KI-Modell-Erlebnis ist der Typ mit einem Fedora in seiner Garage, der an einem hakeligen Computer herumhackt, um ihn zum Laufen zu bringen. Mindestens müssen Sie sich um folgende Dinge kümmern:
Es ist keine leichte Reise, und viele geben auf und nehmen an, dass lokale KI-Modelle der Aufgabe nicht gewachsen sind, weil sie nie die richtige Kombination aus Hardware/Modell/Einstellungen/Prompting/Harness gefunden haben, um sie für ihre Aufgabe zum Laufen zu bringen. Obwohl sie in vielen Fällen recht haben, hoffe ich, dass dieses Tutorial zumindest zeigt, wie weit lokale Modelle gekommen sind, wie sie beim Reverse Engineering helfen können, und Menschen dazu inspiriert, lokaler KI eine Chance zu geben.
(Archiv-Passwort ist crackmes.one). Ich habe einen alternativen Link hier im Repo bereitgestellt, falls der ursprüngliche Link nicht mehr funktioniert.
Ghidra 12.04 wird für Disassemblierung und Dekompilierung verwendet. Sie müssen OpenJDK 21 installieren, um es zu nutzen: https://github.com/nationalsecurityagency/ghidra
Während der Arbeit an diesem Tutorial habe ich mit Claude Code ein Ghidra-Plugin vibe-coded, um Funktionen und Variablen mit KI umzubenennen. Sie können das Plugin hier herunterladen: https://github.com/markoglasgow/Ghidra_FastAIRenamer_Plugin
Um es zu installieren, verschieben Sie einfach die Zip-Datei ghidra_12.0.4_PUBLIC_20260427_FastAIRenamerPlugin.zip nach ${GHIDRA_HOME}\Extensions\Ghidra, führen Sie dann Ghidra aus, indem Sie ${GHIDRA_HOME}\ghidraRun.bat ausführen. Um das Plugin zu aktivieren, wählen Sie im anfänglichen Ghidra-Bildschirm im oberen Menü File -> Install Extensions, aktivieren Sie dann im Plugin-Browser das Kontrollkästchen neben FastAIRenamerPlugin und klicken Sie auf Ok. Ghidra wird Sie auffordern, es neu zu starten, also tun Sie das sofort.