Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Alcatraz — Offuscatore binario x64 per file PE con appiattimento del flusso di controllo, antidisassemblaggio, offuscamento delle importazioni e mutazione delle istruzioni per ostacolare il reverse engineering. | Kitploit
Strumenti/GitHubGitHub/weak1337/alcatraz
Reverse EngineeringAnalisi di Binari
GitHubweak1337/alcatraz

Alcatraz

Offuscatore binario x64 per file PE con appiattimento del flusso di controllo, antidisassemblaggio, offuscamento delle importazioni e mutazione delle istruzioni per ostacolare il reverse engineering.

Vedi Repository
2.0k2683 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Alcatraz

Alcatraz è un offuscatore binario x64 in grado di offuscare vari file PE, inclusi:

  • .exe
  • .dll
  • .sys

Panoramica

  • Alcatraz
  • Requisiti
  • Utilizzo
  • Funzionalità
    • Offuscamento dei movimenti immediati
    • Appiattimento del flusso di controllo
    • Mutazione ADD
    • Offuscamento del punto di ingresso
    • Offuscamento LEA
    • Anti disassemblaggio
    • Offuscamento delle importazioni
    • Risultato finale

Requisiti

Installa: https://vcpkg.io/en/getting-started.html

asmjit: vcpkg.exe install asmjit:x64-windows
Zydis: vcpkg.exe install zydis:x64-windows

Utilizzo

imgbefore 1.) Carica un binario cliccando su file nell'angolo in alto a sinistra.
2.) Aggiungi funzioni espandendo l'albero Functions. (Puoi cercare inserendo il nome nella barra di ricerca in alto)
3.) Premi compile (nota: offuscare molte funzioni potrebbe richiedere alcuni secondi)

Funzionalità

Nella dimostrazione seguente tutte le funzionalità (tranne quella dimostrata) sono disabilitate.

Offuscamento dei movimenti immediati

Se un valore immediato viene spostato in un registro, lo offuschiamo applicando molteplici operazioni bitwise. Diamo un'occhiata alla funzione popolare _security_init_cookie.
Prima: imgbefore Dopo: imgafter

Appiattimento del flusso di controllo

Rimuovendo la struttura ordinata del programma generata dal compilatore e inserendo il nostro codice in nuovi blocchi generati, aumentiamo la complessità del programma. Prendiamo come esempio questa semplice funzione main (l'ottimizzazione per questo programma è disabilitata):
imgmain
Se la inseriamo in IDA 7.6, il decompilatore la ottimizza:
imgmainnoobf
Ora appiattiamo il suo flusso di controllo e lasciamo che IDA lo analizzi di nuovo:
imgmainobf
Come puoi vedere, la complessità è aumentata notevolmente anche se mostro solo una piccola porzione del codice generato. Se vuoi vedere il CFG: imgmaincfg

Mutazione ADD

Se un registro (es. RAX) viene aggiunto a un altro registro (es. RCX), muteremo l'istruzione. Ciò significa che la sintassi cambia ma non la semantica. L'istruzione ADD RCX, RAX può essere mutata in:

root@kitploit:~
push rax
not rax
sub rcx, rax
pop rax
sub rcx, 1

Se vuoi saperne di più sulla mutazione, dai un'occhiata a perses.

Offuscamento del punto di ingresso

Se il file PE è un .exe (il supporto per .dll verrà aggiunto), creeremo un punto di ingresso personalizzato che decifra quello reale all'avvio (!!! non funziona se mappato manualmente).
imgmaincfg

Offuscamento LEA

L'offuscamento LEA è piuttosto semplice ma efficace. Spostiamo un indirizzo diverso nel registro e lo decifriamo successivamente. In questo modo, i reverse engineer non possono fare riferimenti incrociati a determinati dati/funzioni.
Supponiamo di trovare l'istruzione: lea rcx, [0xDEAD]
La muteremo in:

root@kitploit:~
pushf
lea rcx, [1CE54]
sub rcx, EFA7
popf

rcx -> 0xDEAD

Anti disassemblaggio

Se troviamo un'istruzione che inizia con il byte 0xFF, inseriamo 0xEB prima di essa.
Facciamo questo perché 0xEB 0xFF viene codificato come jmp rip + 1 che, alla fine, salta al nostro primo 0xFF effettivo. Questo confonde gli strumenti che decodificano le istruzioni in modo lineare.
Prima:
imgffbefore
Dopo:
imgffafter

Di tanto in tanto possiamo inserire:

root@kitploit:~
jz 3
jne 1
0xE8

IDA proverà a decodificare 0xE8 (call) ma non ci riuscirà:
imgjz

Offuscamento delle importazioni

Al momento non esiste un'offuscamento IAT "vero e proprio". Il trucco anti disassemblaggio 0xFF se ne occupa per ora. L'implementazione corretta è pianificata qui:
iat.cpp

Risultato finale

Questo è un estratto della nostra funzione main con tutto abilitato tranne l'anti disassemblaggio (così IDA può creare una funzione):
imgfinal

Scarica lo strumento