Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
egodeath — Um ofuscador de JavaScript baseado em técnicas de ofuscação de indistinguibilidade criptográfica. | Kitploit
Ferramentas/GitHubGitHub/nstarke/egodeath
Análise EstáticaAnálise de CódigoEngenharia ReversaPapers e PesquisaAprendizado e Educação
GitHubnstarke/egodeath

egodeath

Um ofuscador de JavaScript baseado em técnicas de ofuscação de indistinguibilidade criptográfica.

Ver Repositório
53513há 8 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

egodeath

Este projeto não alcança ofuscação de indistinguibilidade. Você não deve usar este produto para proteger segredos. Ele existe para dificultar a engenharia reversa, não para impedi-la

Tests

images/screenshot.png Um ofuscador de JavaScript projetado para tornar o código extremamente difícil de ler e analisar tanto para humanos quanto para LLMs. Escrito em TypeScript. Implementa técnicas de pesquisa criptográfica de ofuscação revisada por pares.

Instalação

npm install
npm run build

Uso via CLI

# Uso básico
node dist/index.js input.js > output.js

# Com orçamento de tokens alvo (padrão: 2.000.000)
node dist/index.js --target-tokens 500000 input.js > output.js

# Ofuscação mínima (saída pequena)
node dist/index.js --target-tokens 10000 input.js > output.js

# Inchaço máximo (10M de tokens)
node dist/index.js --target-tokens 10000000 input.js > output.js

# Usando variável de ambiente
INPUT_FILE=input.js node dist/index.js > output.js

# Ajuda
node dist/index.js --help

Opções

OpçãoPadrãoDescrição
--target-tokens <n>2000000Tamanho alvo da saída em tokens. Entradas pequenas são inchadas até esse limite. Entradas grandes produzem menos inchaço para permanecer dentro do orçamento.
--help, -hExibe a mensagem de ajuda

Scripts npm

npm run build              # Compila TypeScript para dist/
npm run start              # Executa o ofuscador (lê input.js)
npm run test               # Executa a suíte de testes
npm run obfuscate-package  # Executa testes de compatibilidade contra pacotes npm

API Programática

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

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

// Com opções
const obfuscated = obfuscate(code, { targetTokens: 500000 });

Pipeline de Transformações

O ofuscador aplica 20 transformações em 4 fases. Cada etapa se baseia na anterior.

Fase 1: Pré-transformações de Segurança e Anti-Análise

OrdemTransformaçãoArquivoDescrição
1Armadilhas Anti-Debugtransforms/antiDebug.tsInjeta instruções eval("debugger") e 10-20 loops de setInterval com intervalos de números primos (5s-600s) que disparam repetidamente breakpoints de depuração. Cada instância usa strings codificadas únicas.
2Armadilhas de Programa Perfuradotransforms/tripwires.tsEmbute verificações ocultas que comparam hashes de parâmetros com valores secretos. 5 padrões de hash (impressão digital bit a bit, aritmética modular, charCodeAt, hash numérico, typeof+length). Dispara corrupção silenciosa de estado, loops ocupados ou lança exceções em entradas secretas. [Paper 4]
3Injeção de Ruído LPNtransforms/noiseInjection.tsAdiciona e cancela ruído aleatório por meio de caminhos divididos em cálculos aritméticos. 6 padrões: add/sub, XOR, mul/div, divisão em variável dupla, cadeia de hash computada, rotação de bits. Valores intermediários são sem sentido sem rastrear a anulação completa. [Paper 7]

Fase 2: Pré-transformações Estruturais

OrdemTransformaçãoArquivoDescrição
4Achatamento de Fluxo de Controletransforms/controlFlowFlattening.tsConverte corpos de funções em máquinas de estado while(true) { switch((_s * P) % M) { ... } } com despacho de aritmética modular — os valores de caso são codificados por meio de (stateId * multiplier) % modulus usando parâmetros primos aleatórios. [Paper 3]
5Predicados Opacostransforms/opaquePredicates.tsInjeta condições if que sempre avaliam para verdadeiro ou falso, mas são matematicamente difíceis de provar (por exemplo, (x*x+x)%2===0). 15 fórmulas de predicado em categorias de aritmética modular, operações bit a bit e verificação de tipo.
6Funções Proxytransforms/proxyFunctions.tsRoteia todas as chamadas de função por meio de dois despachantes: _fc(fn, ...args) para chamadas simples, _mc(obj, prop, ...args) para chamadas de método. Usa Function.prototype.apply capturado em uma variável local para maior resiliência.
7Exaustão da Janela de Contextotransforms/contextExhaustion.tsEnvolve expressões em ternários profundamente aninhados com condições opacas, cadeias de expressões void e preenchimento condicional com void. Força LLMs a desperdiçar tokens da janela de contexto com ruído.
8Mesclagem de Expressões com Vírgulatransforms/commaExpressions.tsColapsa instruções de expressão consecutivas em expressões de vírgula únicas: a(); b(); return c() torna-se return a(), b(), c().

Fase 3: Passos de Identificadores

OrdemPassoArquivoDescrição
9Passo 1: Catalogaçãopasses/firstPass.tsPercorre a AST e cataloga cada identificador, construindo um mapa de globais que atribui a cada um um nome Unicode aleatório de 6 a 16 caracteres extraído de 16 intervalos de scripts (CJK, Hangul, Grego, Cirílico, Devanágari, Tailandês, Árabe, Katakana, etc.).
10Passo 2: Substituiçãopasses/secondPass.tsSubstitui todos os nomes de identificadores por seus equivalentes Unicode ofuscados. Codifica argumentos de require() como String.fromCharCode(...). Codifica fontes estáticas de import/export como literais de string com escape unicode. Substitui referências de superClass, expressões de template literal e padrões de desestruturação.
11Passo 3: Parâmetros Fantasmapasses/thirdPass.tsInjeta de 0 a 15 parâmetros aleatórios não utilizados em toda declaração e expressão de função. Ignora funções com parâmetros rest. Remove todos os comentários.

Fase 4: Pós-transformações

Baixar ferramenta