🛡️ GoBfuscator - Strumento Avanzato di Offuscamento del Codice Go


🔍 Panoramica
GoBfuscator è uno strumento di offuscamento di livello professionale progettato specificamente per il codice sorgente Go (Golang). Fornisce molteplici livelli di protezione per rendere difficile il reverse engineering mantenendo al 100% la funzionalità a runtime.
Caratteristiche Principali:
- ✨ Stringhe crittografate con AES-256 con decrittazione a runtime
- 🔀 Ridenominazione completa degli identificatori (funzioni, variabili, tipi)
- 🧹 Pulizia del codice e rimozione dei commenti
- 🛡️ Protezione contro comuni tecniche di reverse engineering
- ⚡ Zero overhead sulle prestazioni a runtime dopo la decrittazione iniziale
🚀 Avvio Rapido
Installazione
git clone https://github.com/luftwaffe66/GoBfuscator.git
cd GoBfuscator
pip install -r requirements.txt
Utilizzo Base
python3 obfuscator.py yourfile.go
Questo genererà yourfile_obfuscated.go con tutte le protezioni applicate.
🛠️ Implementazione Tecnica
Offuscamento Multi-Livello
-
Ridenominazione degli Identificatori:
- Tutti gli identificatori non riservati vengono sostituiti con nomi casuali di 6 caratteri
- Preserva le parole riservate di Go e gli import della libreria standard
- Gestisce i receiver dei metodi e le dichiarazioni a livello di package
-
Crittografia delle Stringhe:
- Utilizza AES-256-CBC con IV casuale per ogni stringa
- Codifica Base64 per l'incorporamento nel sorgente
- Decrittazione a runtime con rimozione automatica del padding PKCS7
-
Pulizia del Codice:
- Rimozione di tutti i commenti
- Compressione degli spazi bianchi
- Normalizzazione della formattazione
Caratteristiche di Sicurezza
- 🔑 Chiave di crittografia univoca generata per ogni esecuzione
- 🛡️ Protezione contro semplici strumenti di estrazione di stringhe
- 🔄 La denominazione casuale impedisce il riconoscimento di pattern
- ⚠️ Preserva le sequenze di escape importanti (\n, \t, ecc.)
📊 Risultati dei Benchmark
| Operazione | Originale | Offuscato | Overhead |
|---|
| Tempo di Avvio | 12ms | 15ms | +25% |
| Utilizzo di Memoria | 8.2MB | 8.5MB | +3.6% |
| Prestazioni a Runtime | 1.0x | 1.0x | 0% |
Test eseguiti su Go 1.19, Intel i7-1185G7, 16GB RAM
🧩 Integrazione
Pipeline CI/CD
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
Opzioni Avanzate
# Preserve specific identifiers
python3 obfuscator.py --preserve "Config,DBConn" main.go
# Custom encryption key (base64)
python3 obfuscator.py --key "dGhpcyBpcyBhIHNlY3JldCBrZXkh" main.go
📚 Documentazione
Come Funziona
-
Fase di Parsing:
- Estrae tutti gli identificatori rinominabili
- Identifica le stringhe da crittografare
- Preserva la struttura del codice
-
Fase di Trasformazione:
- Genera nomi casuali per gli identificatori
- Crittografa le stringhe con AES-256
- Costruisce l'infrastruttura di decrittazione
-
Fase di Output:
- Genera codice Go pulito e funzionante
- Aggiunge le funzioni di decrittazione richieste
- Mantiene la funzionalità originale
Limitazioni
- ❌ Non gestisce l'analisi del codice basata sulla reflection
- ❌ Non può offuscare i nomi dei package esportati
- ❌ Può compromettere alcune funzionalità del debugger
🤝 Contribuire
Accogliamo con favore i contributi! Segui questi passaggi:
- Fai il fork del repository
- Crea un branch per la funzionalità (
git checkout -b feature/AmazingFeature)
- Esegui il commit delle tue modifiche (
git commit -m 'Add some AmazingFeature')
- Esegui il push sul branch (
git push origin feature/AmazingFeature)
- Apri una Pull Request
📜 Licenza
Distribuito sotto la Licenza MIT. Vedi LICENSE per maggiori informazioni.
📬 Contatti
Manutentore del Progetto - @luftwaffe66
🌟 Riconoscimenti
- Ispirato a vari strumenti di offuscamento open-source
- Utilizza PyCryptodome per l'implementazione di AES
- Grazie a tutti i contributori e gli utenti
🔐 Proteggi il Tuo Codice Go Oggi! Metti una stella a questo repo per supportare il progetto.