🛡️ GoBfuscator - Fortgeschrittenes Go-Code-Obfuskierungswerkzeug


🔍 Überblick
GoBfuscator ist ein professionelles Obfuskierungswerkzeug, das speziell für Go- (Golang-) Quellcode entwickelt wurde. Es bietet mehrere Schutzebenen, um Reverse Engineering zu erschweren, während die Laufzeitfunktionalität zu 100 % erhalten bleibt.
Hauptfunktionen:
- ✨ AES-256-verschlüsselte Strings mit Laufzeitentschlüsselung
- 🔀 Umfassende Umbenennung von Bezeichnern (Funktionen, Variablen, Typen)
- 🧹 Code-Bereinigung und Entfernung von Kommentaren
- 🛡️ Schutz gegen gängige Reverse-Engineering-Techniken
- ⚡ Kein Laufzeit-Performance-Overhead nach der initialen Entschlüsselung
🚀 Schnellstart
Installation
git clone https://github.com/luftwaffe66/GoBfuscator.git
cd GoBfuscator
pip install -r requirements.txt
Grundlegende Verwendung
python3 obfuscator.py yourfile.go
Dies erzeugt yourfile_obfuscated.go mit allen angewendeten Schutzmaßnahmen.
🛠️ Technische Umsetzung
Mehrschichtige Obfuskierung
-
Umbenennung von Bezeichnern:
- Alle nicht reservierten Bezeichner werden durch zufällige 6-stellige Namen ersetzt
- Go-reservierte Wörter und Standardbibliotheks-Imports bleiben erhalten
- Behandelt Methodenempfänger und Deklarationen auf Paketebene
-
String-Verschlüsselung:
- Verwendet AES-256-CBC mit zufälligem IV für jeden String
- Base64-kodiert zur Einbettung in den Quellcode
- Laufzeitentschlüsselung mit automatischer Entfernung des PKCS7-Paddings
-
Code-Bereinigung:
- Entfernung aller Kommentare
- Komprimierung von Leerraum
- Normalisierung der Formatierung
Sicherheitsfunktionen
- 🔑 Eindeutiger Verschlüsselungsschlüssel pro Durchlauf generiert
- 🛡️ Schutz gegen einfache String-Extraktionswerkzeuge
- 🔄 Randomisierte Benennung verhindert Mustererkennung
- ⚠️ Bewahrt wichtige Escape-Sequenzen (\n, \t usw.)
📊 Benchmark-Ergebnisse
| Operation | Original | Obfuskiert | Overhead |
|---|
| Startzeit | 12ms | 15ms | +25% |
| Speicherverbrauch | 8.2MB | 8.5MB | +3.6% |
| Laufzeit-Performance | 1.0x | 1.0x | 0% |
Tests durchgeführt auf Go 1.19, Intel i7-1185G7, 16GB RAM
🧩 Integration
CI/CD-Pipeline
steps:
- name: Obfuscate Go Code
run: |
git clone https://github.com/luftwaffe66/GoBfuscator.git
cd GoBfuscator
python3 obfuscator.py $GITHUB_WORKSPACE/main.go
mv main_obfuscated.go $GITHUB_WORKSPACE/main.go
Erweiterte Optionen
# Preserve specific identifiers
python3 obfuscator.py --preserve "Config,DBConn" main.go
# Custom encryption key (base64)
python3 obfuscator.py --key "dGhpcyBpcyBhIHNlY3JldCBrZXkh" main.go
📚 Dokumentation
Funktionsweise
-
Parsing-Phase:
- Extrahiert alle umbenennbaren Bezeichner
- Identifiziert Strings zur Verschlüsselung
- Bewahrt die Codestruktur
-
Transformationsphase:
- Generiert zufällige Namen für Bezeichner
- Verschlüsselt Strings mit AES-256
- Erstellt die Entschlüsselungsinfrastruktur
-
Ausgabephase:
- Generiert sauberen, funktionsfähigen Go-Code
- Fügt erforderliche Entschlüsselungsfunktionen hinzu
- Behält die ursprüngliche Funktionalität bei
Einschränkungen
- ❌ Behandelt keine reflektionsbasierte Codeanalyse
- ❌ Kann exportierte Paketnamen nicht obfuskieren
- ❌ Kann einige Debugger-Funktionen beeinträchtigen
🤝 Mitwirken
Wir freuen uns über Beiträge! Bitte befolgen Sie diese Schritte:
- Forken Sie das Repository
- Erstellen Sie einen Feature-Branch (
git checkout -b feature/AmazingFeature)
- Committen Sie Ihre Änderungen (
git commit -m 'Add some AmazingFeature')
- Pushen Sie zum Branch (
git push origin feature/AmazingFeature)
- Öffnen Sie einen Pull Request
📜 Lizenz
Vertrieben unter der MIT-Lizenz. Siehe LICENSE für weitere Informationen.
📬 Kontakt
Projektbetreuer - @luftwaffe66
🌟 Danksagungen
- Inspiriert von verschiedenen Open-Source-Obfuskierungswerkzeugen
- Verwendet PyCryptodome für die AES-Implementierung
- Dank an alle Mitwirkenden und Nutzer
🔐 Schützen Sie Ihren Go-Code noch heute! Sternen Sie dieses Repo, um das Projekt zu unterstützen.