Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
egodeath — Un offuscatore JavaScript basato su tecniche di offuscamento a indistinguibilità crittografica. | Kitploit
Strumenti/GitHubGitHub/nstarke/egodeath
Analisi StaticaAnalisi del CodiceReverse EngineeringPaper e RicercaApprendimento e Formazione
GitHubnstarke/egodeath

egodeath

Un offuscatore JavaScript basato su tecniche di offuscamento a indistinguibilità crittografica.

Vedi Repository
535169 giorni 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

egodeath

Questo progetto non raggiunge l'offuscamento indistinguibile. Non dovresti usare questo prodotto per proteggere segreti. Serve a scoraggiare il reverse engineering, non a prevenirlo

Tests

images/screenshot.png Un offuscatore JavaScript progettato per rendere il codice estremamente difficile da leggere e analizzare sia per umani che per LLM. Scritto in TypeScript. Implementa tecniche dalla ricerca crittografica sull'offuscamento sottoposta a revisione paritaria.

Installazione

npm install
npm run build

Utilizzo da riga di comando

# Utilizzo base
node dist/index.js input.js > output.js

# Con budget di token target (default: 2.000.000)
node dist/index.js --target-tokens 500000 input.js > output.js

# Offuscamento minimale (output piccolo)
node dist/index.js --target-tokens 10000 input.js > output.js

# Massimo gonfiaggio (10M token)
node dist/index.js --target-tokens 10000000 input.js > output.js

# Utilizzo di variabile d'ambiente
INPUT_FILE=input.js node dist/index.js > output.js

# Aiuto
node dist/index.js --help

Opzioni

OpzionePredefinitoDescrizione
--target-tokens <n>2000000Dimensione target dell'output in token. Input piccoli vengono gonfiati fino a questo limite. Input grandi producono meno gonfiaggio per rimanere entro il budget.
--help, -hMostra il messaggio di aiuto

Script npm

npm run build              # Compila TypeScript in dist/
npm run start              # Esegue l'offuscatore (legge input.js)
npm run test               # Esegue la suite di test
npm run obfuscate-package  # Esegue test di compatibilità su pacchetti npm

API programmatica

const { obfuscate } = require('./dist/obfuscator');

const code = 'function add(a, b) { return a + b; }';
const obfuscated = obfuscate(code);

// Con opzioni
const obfuscated = obfuscate(code, { targetTokens: 500000 });

Pipeline di trasformazione

L'offuscatore applica 20 trasformazioni in 4 fasi. Ogni stadio si basa sul precedente.

Fase 1: Pre-trasformazioni di sicurezza e anti-analisi

OrdineTrasformazioneFileDescrizione
1Trappole Anti-Debugtransforms/antiDebug.tsInietta istruzioni eval("debugger") e 10-20 cicli setInterval con intervalli di numeri primi (5s-600s) che attivano ripetutamente breakpoint del debugger. Ogni istanza utilizza stringhe codificate uniche.
2Inneschi per Programmi Punturatitransforms/tripwires.tsIncorpora controlli nascosti che confrontano hash di parametri con valori segreti. 5 modelli di hash (impronta bit a bit, aritmetica modulare, charCodeAt, hash numerico, typeof+length). Attiva corruzione silenziosa dello stato, cicli infiniti o lancia eccezioni su input segreti. [Paper 4]
3Iniezione di Rumore LPNtransforms/noiseInjection.tsAggiunge e annulla rumore casuale attraverso percorsi divisi in calcoli aritmetici. 6 modelli: add/sub, XOR, mul/div, variabile doppia divisa, catena di hash calcolata, rotazione di bit. I valori intermedi sono privi di significato senza tracciare l'intera cancellazione. [Paper 7]

Fase 2: Pre-trasformazioni strutturali

OrdineTrasformazioneFileDescrizione
4Appiattimento del Flusso di Controllotransforms/controlFlowFlattening.tsConverte i corpi delle funzioni in macchine a stati while(true) { switch((_s * P) % M) { ... } } con invio aritmetico modulare — i valori dei case sono codificati tramite (idStato * moltiplicatore) % modulo usando parametri primi casuali. [Paper 3]
5Predicati Opachitransforms/opaquePredicates.tsInietta condizioni if che valutano sempre vero o falso ma sono matematicamente difficili da dimostrare (ad es., (x*x+x)%2===0). 15 formule di predicato tra aritmetica modulare, bit a bit e categorie di tipo.
6Funzioni Proxytransforms/proxyFunctions.tsInstrada tutte le chiamate di funzione attraverso due dispatcher: _fc(fn, ...args) per chiamate semplici, _mc(obj, prop, ...args) per chiamate di metodo. Utilizza Function.prototype.apply catturato in una variabile locale per robustezza.
7Esaurimento della Finestra di Contestotransforms/contextExhaustion.tsAvvolge le espressioni in ternari profondamente annidati con condizioni opache, catene di espressioni void e padding condizionale void. Costringe i LLM a sprecare token della finestra di contesto in rumore.
8Fusione di Espressioni a Virgolatransforms/commaExpressions.tsComprime istruzioni di espressioni consecutive in singole espressioni a virgola: a(); b(); return c() diventa return a(), b(), c().

Fase 3: Passaggi sugli identificatori

OrdinePassaggioFileDescrizione
9Passaggio 1: Catalogazionepasses/firstPass.tsAttraversa l'AST e cataloga ogni identificatore, costruendo una mappa dei globali che assegna a ciascuno un nome Unicode casuale di 6-16 caratteri scelto da 16 intervalli di script (CJK, Hangul, Greco, Cirillico, Devanagari, Thai, Arabo, Katakana, ecc.).
10Passaggio 2: Sostituzionepasses/secondPass.tsSostituisce tutti i nomi di identificatore con i loro equivalenti Unicode offuscati. Codifica gli argomenti di require() come String.fromCharCode(...). Codifica le sorgenti statiche di import/export come stringhe letterali con escape Unicode. Sostituisce i riferimenti a superClass delle classi, le espressioni di template literal, i pattern di destrutturazione.
11Passaggio 3: Parametri Fittizipasses/thirdPass.tsInietta 0-15 parametri casuali non utilizzati in ogni dichiarazione ed espressione di funzione. Salta le funzioni con parametri rest. Rimuove tutti i commenti.

Fase 4: Post-trasformazioni

Scarica lo strumento