
pega bytes ruins de shellcode e os bane, retornando shellcode limpo com funcionalidades preservadas
Visão Geral • Início Rápido • TUI Interativo • Eliminação Direcionada de Bytes Ruins • Perfis de Bytes Ruins • Funcionalidades • Arquitetura • Requisitos do Sistema • Dependências • Compilação • Instalação • Uso • Estratégias de Ofuscação • Estratégias de Desnulificação • Treinamento de ML • Menagerie de Agentes • Desenvolvimento • Solução de Problemas • Licença
byvalver é uma ferramenta de linha de comando construída em C para eliminar automaticamente (ou "banir") bytes ruins de shellcode x86/x64/ARM/ARM64, mantendo completa equivalência funcional.
NOVO na v4.0: Suporte Multiarquitetura
| Arquitetura | Maturidade | Estratégias | Observações |
|---|---|---|---|
| x86 (32-bit Intel/AMD) | Estável v4.2 | 150+ | Testado em produção, cobertura total |
| x64 (64-bit Intel/AMD) | Estável v4.2 | 150+ | Arquitetura padrão, testado em produção |
| ARM (32-bit) | Experimental v0.1 | 7 essenciais | Testes limitados, apenas instruções básicas |
| ARM64 (AArch64) | Experimental v0.1 | Básicas | Estrutura pronta, estratégias mínimas |
--archv4.0.1 Correções de Bugs:
can_handle das estratégias ARM64 para estratégias pass-throughNOVO na v4.2: Suporte Aprimorado para x64
is_64bit_register(), is_extended_register(), build_rex_prefix()A ferramenta utiliza o framework de desmontagem Capstone para analisar instruções e aplica mais de 175 estratégias de transformação ranqueadas para substituir código contendo bytes ruins por alternativas equivalentes.
O framework genérico de banimento de bytes ruins oferece 2 modos de uso:
--bad-bytes permite especificar bytes arbitrários a serem banidos (ex.: --bad-bytes "00,0a,0d" para shellcode seguro para novas linhas)--profile utiliza conjuntos pré-configurados de bytes ruins para cenários comuns de exploração (ex.: --profile http-newline, --profile sql-injection, --profile alphanumeric-only)Suporta Windows, Linux e macOS.
TECNOLOGIA CENTRAL:
C puro para eficiência e controle de baixo nívelCapstone para desmontagem precisaNASM para gerar stubs de decodificação[!NOTA] Eliminação de byte nulo (
--bad-bytes "00"ou padrão): BEM TESTADA / Eliminação genérica de bytes ruins (--bad-bytes "00,0a,0d"etc.): RECÉM IMPLEMENTADA

Comece com byvalver em minutos:
OPÇÃO 1: DO GITHUB (RECOMENDADO)```bash curl -sSL https://raw.githubusercontent.com/umpolungfish/byvalver/main/install.sh | bash
**OPÇÃO 2: CONSTRUIR A PARTIR DA FONTE**```bash
git clone https://github.com/umpolungfish/byvalver.git
cd byvalver
make
sudo make install
sudo make install-man # Install man page
banish NULL BYTES (DEFAULT):```bash byvalver input.bin output.bin
**USANDO PERFIS BAD-BYTE:**```bash
# HTTP contexts (removes null, newline, carriage return)
byvalver --profile http-newline input.bin output.bin
# SQL injection contexts
byvalver --profile sql-injection input.bin output.bin
# Alphanumeric-only shellcode (most restrictive)
byvalver --profile alphanumeric-only input.bin output.bin
ESPECIFICAÇÃO MANUAL DE BAD-BYTES:```bash
byvalver --bad-bytes "00,0a,0d" input.bin output.bin
**RECURSOS AVANÇADOS:**```bash
# Add obfuscation layer before denullification
byvalver --biphasic input.bin output.bin
# Enable ML-powered strategy selection
byvalver --ml input.bin output.bin
# Generate XOR-encoded shellcode with decoder stub
byvalver --xor-encode DEADBEEF input.bin output.bin
# Output in different formats
byvalver --format c input.bin output.c # C array
byvalver --format python input.bin output.py # Python bytes
byvalver --format hexstring input.bin output.hex # Hex string
Sempre verifique seu shellcode transformado:```bash
python3 verify_denulled.py --bad-bytes "00,0a,0d" output.bin
python3 verify_functionality.py input.bin output.bin
### SUPORTE MULTI-ARQUITETURA
`byvalver` suporta múltiplas arquiteturas via a flag `--arch`:
**x86 (32-bit Intel/AMD)** - Totalmente suportado com 150+ estratégias```bash
byvalver --arch x86 --bad-bytes "00" x86_shellcode.bin output.bin
x64 (64-bit Intel/AMD) - Totalmente suportado (padrão)```bash byvalver --arch x64 --bad-bytes "00,0a,0d" x64_shellcode.bin output.bin
**ARM (32 bits)** - Suporte experimental com estratégias básicas```bash
byvalver --arch arm --bad-bytes "00" arm_shellcode.bin output.bin
ARM64 (AArch64) - Suporte experimental com estratégias básicas```bash byvalver --arch arm64 --bad-bytes "00,0a" arm64_shellcode.bin output.bin
**Notas:**
- O suporte ARM/ARM64 foca em instruções principais (MOV, aritmética, carregamentos/armazenamentos)
- Use perfis de bad-byte mais simples para ARM (por exemplo, apenas byte nulo)
- Avisos experimentais são exibidos quando ARM/ARM64 é selecionado
- Detecção básica de incompatibilidade de arquitetura avisa se o shellcode parece ter arquitetura errada
- A detecção automática de arquitetura está planejada para versões futuras
### PROCESSAMENTO EM LOTE
Processar diretórios inteiros:```bash
# Process all .bin files recursively
byvalver -r --pattern "*.bin" input_dir/ output_dir/
# Apply HTTP profile to all shellcode in directory
byvalver -r --profile http-newline input_dir/ output_dir/
byvalver inclui uma TUI interativa (Interface de Usuário de Texto) com paridade de recursos 1:1 com a CLI.
A TUI fornece uma interface visual e intuitiva para todas as operações de banimento de bad-byte, incluindo:
Inicie a TUI com a flag --menu:```bash
byvalver --menu
### PRINCIPAIS FUNCIONALIDADES:
O TUI oferece 9 opções principais de menu que cobrem toda a funcionalidade da CLI:
1. **Processar Arquivo Único** - Processa arquivos de shellcode individuais com feedback visual
2. **Processamento em Lote de Diretório** - Processa diretórios inteiros com acompanhamento de progresso ao vivo
3. **Configurar Opções de Processamento** - Alternar modo bifásico, geração PIC, ML, verbose, dry-run
4. **Definir Bad Bytes** - Entrada manual ou seleção de 13 perfis predefinidos
5. **Configurações de Formato de Saída** - Escolha entre 5 formatos de saída (raw, C, Python, PowerShell, hexstring)
6. **Configuração de Métricas de ML** - Configurar seleção de estratégia de ML e rastreamento de métricas
7. **Opções Avançadas** - Codificação XOR, timeouts, limites, configurações de validação
8. **Carregar/Salvar Configuração** - Gerenciamento de arquivos de configuração no estilo INI
9. **Sobre byvalver** - Informações de versão e ajuda
### NAVEGADOR VISUAL DE ARQUIVOS:
- **Navegação de diretório** com teclas de seta ou teclas vi-style j/k
- **Distinção arquivo/diretório** com indicadores [FILE] e [DIR]
- **Exibição de tamanho de arquivo** com formatos legíveis (B, KB, MB, GB)
- **Filtragem por extensão** (ex.: *.bin)
- **Manuseio inteligente de caminhos** - Navega automaticamente para o diretório pai se um caminho de arquivo for fornecido
- **Exibição ordenada** - Diretórios primeiro, depois ordem alfabética
- **Modos de seleção múltipla**:
- Modo de seleção de arquivo: Navegue em diretórios, selecione apenas arquivos
- Modo de seleção de diretório: Selecione diretórios para processamento em lote
- Ambos os modos: Selecione arquivos ou diretórios
### PROCESSAMENTO EM LOTE COM ATUALIZAÇÕES EM TEMPO REAL:
A tela de processamento em lote fornece **feedback em tempo real**:
- **Barra de progresso** mostrando arquivos processados (ex.: `[============== ] 52/100 files`)
- **Exibição de configuração** mostrando configurações ativas:
- Contagem de bad bytes e perfil usado
- Opções de processamento (`Biphasic`, `PIC`, `XOR`, ML)
- Formato de saída
- **Estatísticas de arquivos ao vivo** com status codificado por cores:
- Concluído: X / Y (arquivos tentados / total)
- ✅ Sucesso (VERDE) - zero bad bytes restantes
- ❌ Falha (VERMELHO) - erros ou bad bytes restantes
- Porcentagem de taxa de sucesso
- **Exibição do arquivo atual** em texto negrito
- **Pré-visualização do próximo arquivo** em texto amarelo/escuro
- **Tabela dinâmica de estatísticas de estratégia** mostrando:
- **Todas as estratégias ativas** (sem limite de 10 estratégias)
- **Nomes completos das estratégias** (até 50 caracteres, sem truncamento)
- Contagens de sucesso/fracasso por estratégia
- Porcentagens de taxa de sucesso
- Codificados por cor de acordo com o desempenho (verde ≥80%, amarelo 50-79%, vermelho <50%)
- Atualizações em tempo real a cada 50ms
### GERENCIAMENTO DE CONFIGURAÇÃO:
Carregue e salve configurações no **formato INI**:```ini
[general]
verbose = 0
quiet = 0
show_stats = 1
[processing]
use_biphasic = 0
use_pic_generation = 0
encode_shellcode = 0
xor_key = 0xDEADBEEF
[output]
output_format = raw
[bad_bytes]
bad_bytes = 00
[ml]
use_ml_strategist = 0
metrics_enabled = 0
[batch]
file_pattern = *.bin
recursive = 0
preserve_structure = 1
Consulte example.conf para um modelo de configuração completo.
2x métodos de entrada disponíveis:
00,0a,0d)O modo interativo requer que a biblioteca ncurses esteja instalada no seu sistema:```bash
sudo apt install libncurses-dev
sudo dnf install ncurses-devel
brew install ncurses
A aplicação detectará automaticamente se o ncurses está disponível e habilitará o suporte à TUI de acordo.
### OPÇÕES DE COMPILAÇÃO:
O suporte à TUI é compilado condicionalmente com base na disponibilidade do ncurses:
- Compilação padrão: `make` - Inclui TUI se ncurses estiver disponível
- Forçar compilação com TUI: `make with-tui` - Compila com suporte à TUI (falha se ncurses não estiver disponível)
- Excluir TUI: `make no-tui` - Compila sem suporte à TUI para um binário menor
### EXEMPLOS DE FLUXOS DE TRABALHO:
**PROCESSAMENTO DE ARQUIVO ÚNICO:**
1. Inicie a TUI: `byvalver --menu`
2. Selecione "1. Process Single File" (Processar Arquivo Único)
3. Navegue até o arquivo de entrada usando o navegador visual de arquivos
4. Navegue até o local do arquivo de saída
5. Inicie o processamento e visualize os resultados
**PROCESSAMENTO EM LOTE:**
1. Inicie a TUI: `byvalver --menu`
2. Selecione "2. Batch Process Directory" (Processar Diretório em Lote)
3. Navegue até o diretório de entrada contendo arquivos de shellcode
4. Navegue até o diretório de saída
5. Configure o padrão de arquivo (padrão: <file>.bin) e a opção recursiva
6. Inicie o processamento em lote e acompanhe o progresso ao vivo com estatísticas de estratégia
**GERENCIAMENTO DE CONFIGURAÇÃO:**
1. Configure todas as opções na TUI (bad bytes, formato de saída, ML, etc.)
2. Selecione "8. Load/Save Configuration" (Carregar/Salvar Configuração)
3. Salve a configuração atual em um arquivo (ex.: `my_config.conf`)
4. Posteriormente: Carregue o arquivo de configuração para restaurar todas as configurações
### NOTAS DE DESEMPENHO:
- **Processamento de arquivo único**: Feedback visual instantâneo, <1 segundo para shellcode típico
- **Processamento em lote**: Atraso de 50ms entre arquivos para atualizações visuais
- **Diretórios grandes (100+ arquivos)**: A varredura pode levar de 1 a 2 segundos
- **Inicialização de estratégias**: 2 a 5 segundos na primeira execução (custo único por sessão)
### COMPATIBILIDADE DE TERMINAL:
A TUI foi testada com:
- GNOME Terminal
- Konsole
- xterm
- iTerm2 (macOS)
- Windows Terminal (WSL)
- tmux/screen (funciona, mas pode ter limitações de cor)
**Tamanho mínimo recomendado do terminal**: 80x24 caracteres (100x30 ou maior recomendado para a tabela completa de estratégias durante o processamento em lote)
Para documentação completa da TUI, solução de problemas e uso avançado, consulte [TUI_README.md](https://github.com/umpolungfish/byvalver/blob/main/TUI_README.md).
## ELIMINAÇÃO DIRECIONADA DE BYTES PROBLEMÁTICOS
### VISÃO GERAL
A opção `--bad-bytes` permite especificar qualquer conjunto de bytes a serem eliminados do seu shellcode.
### DETALHES DA IMPLEMENTAÇÃO
`byvalver` opera da seguinte forma:
1. Analisando a lista de bytes hexadecimais separados por vírgula (ex.: `"00,0a,0d"`)
2. Usando uma consulta de bitmap O(1) para identificar bytes problemáticos nas instruções
3. Aplicando as mesmas 153+ estratégias de transformação usadas para eliminação de byte nulo
4. Verificando se a saída não contém os bytes problemáticos especificados
### COMPORTAMENTO ESPERADO
- **Apenas bytes nulos** (`--bad-bytes "00"` ou padrão): Alta taxa de sucesso (100% no corpus de teste)
- **Múltiplos bytes problemáticos** (`--bad-bytes "00,0a,0d"`): A taxa de sucesso pode variar significativamente dependendo de:
- Quais bytes específicos são marcados como problemáticos
- Complexidade do shellcode de entrada
- Frequência de bytes problemáticos no shellcode original
- Se existem codificações alternativas eficazes para o conjunto específico de bytes problemáticos
### RECOMENDAÇÕES
1. **Para uso em produção:** Mantenha o modo padrão de eliminação de byte nulo
2. **Para experimentação:** Teste o recurso `--bad-bytes` com seu caso de uso específico e valide a saída
3. **Sempre verifique:** Use `verify_denulled.py --bad-bytes "XX,YY"` para confirmar se todos os bytes problemáticos foram eliminados
4. **Espere variabilidade:** Alguns shellcodes podem não ser totalmente limpos com certos conjuntos de bytes problemáticos
### MELHORIAS FUTURAS
O recurso genérico de bytes problemáticos fornece uma base para:
- Otimização de estratégias para padrões específicos de bytes problemáticos
- Descoberta automatizada de novas estratégias direcionadas a combinações comuns de bytes problemáticos
- Re-treinamento do modelo de ML com diversos dados de treinamento de bytes problemáticos
- Testes e validação estendidos
> [!CAUTION]
> O uso de `--bad-bytes` com múltiplos bytes problemáticos aumenta significativamente a complexidade da tarefa de transformação. Alguns shellcodes podem se tornar impossíveis de transformar se muitos bytes forem marcados como problemáticos, pois a ferramenta pode ficar sem codificações alternativas. Comece com conjuntos pequenos de bytes problemáticos (ex.: `"00,0a"`) e expanda gradualmente enquanto testa a saída. Sempre verifique o resultado com `verify_denulled.py` antes da implantação.
## PERFIS DE BYTES PROBLEMÁTICOS
### VISÃO GERAL
Os usuários também podem escolher **perfis de bytes problemáticos** - conjuntos pré-configurados de bytes para cenários comuns de exploração. Em vez de especificar manualmente valores hexadecimais, use nomes de perfil que correspondam ao seu contexto.
### PERFIS DISPONÍVEIS
| Perfil | Dificuldade | Bytes Problemáticos | Caso de Uso |
|---------|-----------|----------|-----------|
| `null-only` | ░░░░░ Trivial | 1 | Buffer overflows clássicos (padrão) |
| `http-newline` | █░░░░ Baixa | 3 | Cabeçalhos `HTTP`, protocolos baseados em linha |
| `http-whitespace` | █░░░░ Baixa | 5 | Parâmetros `HTTP`, injeção de comandos |
| `url-safe` | ███░░ Média | 23 | Parâmetros de `URL`, requisições `GET` |
| `sql-injection` | ███░░ Média | 5 | Contextos de injeção `SQL` |
| `xml-html` | ███░░ Média | 6 | Injeção `XML`/`HTML`, `XSS` |
| `json-string` | ███░░ Média | 34 | Injeção em API `JSON` |
| `format-string` | ███░░ Média | 3 | Vulnerabilidades de string de formato |
| `buffer-overflow` | ███░░ Média | 5 | Buffer overflows de pilha/heap com filtragem |
| `command-injection` | ███░░ Média | 20 | Injeção de comandos de shell |
| `ldap-injection` | ███░░ Média | 5 | Consultas `LDAP` |
| `printable-only` | ████░ Alta | 161 | Protocolos baseados em texto (apenas ASCII imprimível) |
| `alphanumeric-only` | █████ Extrema | 194 | Shellcode apenas alfanumérico (0-9, A-Z, a-z) |
### USO```bash
# List all available profiles
byvalver --list-profiles
# Use a specific profile
byvalver --profile http-newline input.bin output.bin
# Combine with other options
byvalver --profile sql-injection --biphasic --format c input.bin output.c
Contextos HTTP (elimina NULL, LF, CR):```bash byvalver --profile http-newline payload.bin http_safe.bin
**SQL Injection** (elimina NULL, aspas, ponto e vírgula):```bash
byvalver --profile sql-injection payload.bin sql_safe.bin
Apenas Alfanumérico (dificuldade extrema - apenas permite 0-9, A-Z, a-z):```bash byvalver --profile alphanumeric-only payload.bin alphanum.bin
Para documentação detalhada de perfis, veja [docs/BAD_BYTE_PROFILES.md](https://github.com/umpolungfish/byvalver/blob/main/docs/BAD_BYTE_PROFILES.md).
## FUNCIONALIDADES
### ALTA TAXA DE SUCESSO NA ELIMINAÇÃO DE NULL-BYTES
<div align="center">
<strong>Alcançou 100% de eliminação de null-bytes em um corpus de teste diverso representando fontes de null comuns e complexas.</strong>
</div>
> Esta taxa de sucesso aplica-se especificamente à eliminação de null-byte (`\x00`), que foi extensivamente testada e otimizada.
### MOTOR DE TRANSFORMAÇÃO AVANÇADO
170+ implementações de estratégias cobrindo virtualmente todas as fontes comuns de null-bytes e padrões gerais de bad-bytes (várias novas famílias de estratégias adicionadas nas v3.0, v3.6, v3.7, v3.8, v4.0 e v4.1):
- Carregamento imediato baseado em `CALL/POP` e pilha
- Travessia `PEB` com resolução de API por hash
- Resolução de API avançada baseada em hash com algoritmos complexos
- Travessia `PEB` em múltiplos estágios para carregamento de múltiplas DLLs
- Zeração baseada em `SALC`, `XCHG` e flags
- `LEA` para substituição aritmética
- Construção de valor com `Shift` e aritmética
- Construção de string com múltiplos `PUSH`
- Construção de estruturas baseadas em pilha para estruturas Windows
- Construção de string baseada em pilha com padrões avançados
- Reescrita de `SIB` e deslocamento
- Manipulação de deslocamento de saltos condicionais
- Remapeamento e encadeamento de registradores
- `SALC`+`REP STOSB` aprimorado para inicialização de buffer
- Transformações avançadas de operações de string
- Cadeias de codificação de operações atômicas
- Codificação imediata baseada em pilha `FPU`
- Tradução de bytes baseada em tabela `XLAT`
- Cadeias de preservação de flags `LAHF`/`SAHF`
- **NOVO na v3.6**: Ofuscação aritmética `BCD` (`AAM`/`AAD`)
- **NOVO na v3.6**: Alternativas de quadro de pilha `ENTER`/`LEAVE`
- **NOVO na v3.6**: Contagem de bits `POPCNT`/`LZCNT`/`TZCNT` para constantes
- **NOVO na v3.6**: Carregamento imediato de registrador `XMM` `SIMD`
- **NOVO na v3.6**: Transformações de salto de teste zero `JECXZ`/`JRCXZ`
- **NOVO na v3.7**: Eliminação de bad-bytes de opcode de salto condicional (JE/JNE/JG/JL com opcodes ruins)
- **NOVO na v3.7**: Opcodes de bad-bytes de transferência registrador-para-registrador (alternativas MOV/XCHG)
- **NOVO na v3.7**: Eliminação de bad-bytes de ponteiro de quadro de pilha (alternativas PUSH/POP EBP)
- **NOVO na v3.7**: Eliminação de bad-bytes de bytes ModR/M e SIB (combinações alternativas de registradores)
- **NOVO na v3.7**: Bad-byte parcial imediato multi-byte (otimização de rotação)
- **NOVO na v3.7**: Bad-byte imediato de operação bitwise (AND/OR/XOR/TEST com registradores)
- **NOVO na v3.7**: Substituição de opcode de um byte (alternativas INC/DEC/PUSH/POP)
- **NOVO na v3.7**: Bad-byte de prefixo de instrução de string (conversão de prefixo REP para loop)
- **NOVO na v3.7**: Bad-byte de prefixo de tamanho de operando (conversão de 16 bits para 32 bits)
- **NOVO na v3.7**: Detecção de bad-byte de registrador de segmento (detecção de prefixo FS/GS)
- **NOVO na v3.8**: Sistema de geração SIB ciente de perfil (elimina byte SIB 0x20 codificado)
- **NOVO na v3.8**: Correções críticas para manipulação de salto condicional e otimização de registrador parcial
- **NOVO na v3.9**: Inserção polimórfica de NOP com múltiplos equivalentes de NOP
- **NOVO na v3.9**: Desdobramento de constantes para ofuscação de valor imediato
- **NOVO na v3.9**: Ofuscação de renomeação de registrador com padrões XCHG
- **NOVO na v3.9**: Ofuscação de derramamento de pilha para operações aritméticas
- **NOVO na v3.9**: Reordenação de instruções com inserção de NOP
- **NOVO na v3.9**: Estratégia de automodificação em tempo de execução (implementação básica)
- **NOVO na v3.9**: Geração de instruções sobrepostas
- **NOVO na v4.0**: Suporte multiarquitetura ARM/ARM64 com seleção de modo dinâmico do Capstone
- **NOVO na v4.0**: Codificação imediata ARM com transformações MVN
- **NOVO na v4.0**: Estratégias MOV ARM (original, evitação de null baseada em MVN)
- **NOVO na v4.0**: Estratégias aritméticas ARM (ADD com transformações SUB)
- **NOVO na v4.0**: Estratégias de memória ARM (passagem LDR/STR)
- **NOVO na v4.0**: Estratégias de ramificação ARM (passagem B/BL)
- **NOVO na v4.1**: Cadeias de Acumulação de Flags SETcc (eliminação de salto condicional)
- **NOVO na v4.1**: Construção de Valor Imediato Polimórfico (múltiplas variantes de codificação)
- **NOVO na v4.1**: Otimização de Cadeia de Dependência de Registrador (padrões de múltiplas instruções)
- **NOVO na v4.1**: Otimização de Endereçamento Relativo a RIP (melhorias PIC x64)
- **NOVO na v4.1**: Endereçamento de Memória com Deslocamento Negativo (alternativas de deslocamento)
- **NOVO na v4.1**: Intercalação de NOP Multi-Byte (variantes ofuscadas de NOP)
- **NOVO na v4.1**: Construção de Constantes com Manipulação de Bits (BSWAP, BSF, POPCNT, BMI2)
- **NOVO na v4.2**: Camada de Compatibilidade de Estratégias x86/x64 (permite 128+ estratégias x86 em x64)
- **NOVO na v4.2**: Estratégias de Imediato de 64 bits MOVABS (MOV REX.W com construção XOR/ADD)
- **NOVO na v4.2**: Estratégias de Zero Imediato SBB (transformação SBB AL/AX/EAX, 0)
- **NOVO na v4.2**: Estratégias de Imediato Grande TEST (TEST EAX/RAX, imm32 com operandos de registrador)
- **NOVO na v4.2**: Estratégias de Operação de Memória SSE (eliminação de null MOVUPS/MOVAPS/MOVDQU/MOVDQA)
- **NOVO na v4.2**: Estratégias de Deslocamento LEA x64 (manipulação de grande deslocamento com prefixos REX)
- **NOVO na v4.2**: Suporte Estendido a Registradores (utilitários de codificação de registradores R8-R15)
- Suporte abrangente para `MOV`, `ADD/SUB`, `XOR`, `LEA`, `CMP`, `PUSH` e mais
O motor emprega processamento de múltiplas passagens (ofuscação → desnulificação) com mecanismos robustos de fallback para casos extremos
**MELHORIAS CRÍTICAS v3.8**: Correção Multi-Estratégia para o Perfil http-whitespace
- **Problema**: Bad-bytes codificados causaram taxa de falha de 79.1% (125/158 arquivos falharam)
- **Causas Raiz Identificadas**:
- 45+ instâncias de byte SIB 0x20 (ESPAÇO) codificado em 15 arquivos de estratégia
- Lógica central de salto condicional usando offsets de skip de bad bytes sem validação
- Otimização de registrador parcial escrevendo bad bytes diretamente
- Bad-bytes codificados adicionais em 5 arquivos de estratégia de ALTA prioridade
- **Soluções Implementadas**:
- Geração SIB centralizada ciente de perfil com fallback em 3 níveis (STANDARD → DISP8 → PUSHPOP)
- Preenchimento NOP dinâmico para offsets de skip de salto condicional para evitar bad bytes
- Construção inteligente de bytes para valores de registrador parcial usando decomposição
- Substituição sistemática de bytes codificados por alternativas cientes de perfil
- **Impacto**: **79.1% de falha → 35.4% de falha** (taxa de sucesso: **20.9% → 64.6%**)
- **Arquivos Corrigidos**: 102 arquivos agora processam com sucesso (+69 arquivos, melhoria de 3.09x)
- **Taxas de Sucesso das Estratégias**:
- Otimização de Registrador Parcial: 25% → **100%** (12/12 transformações)
- mov_mem_disp_enhanced: 0% → **98.5%** (1605/1629 transformações)
- indirect_call_mem: 0% → **98.5%** (135/137 transformações)
- indirect_jmp_mem: 0% → **98.5%** (134/136 transformações)
- **Desempenho**: Zero overhead através de cache inteligente, aumento médio de tamanho <2%
### MÉTRICAS DE DESEMPENHO
Dados de desempenho do mundo real do processamento de 184 amostras diversas de shellcode:```
📊 Batch Processing Statistics:
Success Rate: 184/184 █████████████████████████ 100.00%
Files Processed: 184 █████████████████████████ 100.00%
Failed: 0 ░░░░░░░░░░░░░░░░░░░░░░░░░ 00.00%
Skipped: 0 ░░░░░░░░░░░░░░░░░░░░░░░░░ 00.00%
Se houve algum fluxo com falha, eles serão exibidos no terminal com o problema destacado.
Alternativamente, você pode visualizar os resultados dos seus fluxos anteriores pela interface gráfica. Você também pode pressionar em um fluxo para obter informações detalhadas.``` 🧠 ML Strategy Selection Performance:
Processing Speed: Instructions/sec: 19.5 inst/sec ████████████░░░░░░░░░░░░░ Total Instructions: 20,760 Session Duration: 1,067 seconds
Null-Byte Elimination: Eliminated: 18,636/20,760 ██████████████████████░░░ 89.77% Strategies Applied: 20,129 Success Rate: 92.57% ███████████████████████░░ 92.57%
Learning Progress: Positive Feedback: 18,636 ███████████████████████░░ 92.57% Negative Feedback: 1,493 █░░░░░░░░░░░░░░░░░░░░░░░░ 07.43% Total Iterations: 40,889 Avg Confidence: 0.0015 ░░░░░░░░░░░░░░░░░░░░░░░░░ 00.15%
[](https://badge.fury.io/rb/patreon)
[](https://travis-ci.org/patreon/patreon-ruby)
[](https://www.rubydoc.info/gems/patreon)
# Patreon Ruby
Esta gem fornece um cliente Ruby para a [API REST do Patreon](https://www.patreon.com/platform/documentation/getting-started).
## Instalação
Adicione esta linha ao Gemfile da sua aplicação:
```ruby
gem 'patreon'
E então execute:
$ bundle install
Ou instale você mesmo como:
$ gem install patreon
Para usar a API do Patreon, você precisa configurar um cliente OAuth2. Aqui está um exemplo básico:
require 'patreon'
client = Patreon::Client.new(access_token: 'YOUR_ACCESS_TOKEN')
# Obter o usuário atual
user = client.current_user
puts "Hello, #{user.attributes['full_name']}!"
Relatórios de bugs e pull requests são bem-vindos no GitHub em https://github.com/patreon/patreon-ruby.``` 🏆 Top Performing Denullification Strategies:
Strategy Attempts Success% Confidence
ret_immediate 134 █████████████░░░░░░░░░░░░ 50.00% MOVZX/MOVSX Null-Byte banishment 162 █████████████░░░░░░░░░░░░ 50.00% transform_mov_reg_mem_self 774 █████████████░░░░░░░░░░░░ 50.00% cmp_mem_reg_null 96 ████████████░░░░░░░░░░░░░ 46.88% cmp_mem_reg 264 ████████████░░░░░░░░░░░░░ 46.97% lea_disp_null 3900 ███████████░░░░░░░░░░░░░░ 45.38% transform_add_mem_reg8 2012 ███████████░░░░░░░░░░░░░░ 43.49% Push Optimized 4214 ███████░░░░░░░░░░░░░░░░░░ 29.31% ModRM Byte Null Bypass 82 ██████░░░░░░░░░░░░░░░░░░░ 25.61% conservative_arithmetic 5172 █████░░░░░░░░░░░░░░░░░░░░ 21.37% arithmetic_addsub_enhanced 1722 ████░░░░░░░░░░░░░░░░░░░░░ 18.12% PUSH Immediate Null-Byte banishment 3066 ████░░░░░░░░░░░░░░░░░░░░░ 16.54% SIB Addressing 9560 ████░░░░░░░░░░░░░░░░░░░░░ 16.03% generic_mem_null_disp_enhanced 22130 ███░░░░░░░░░░░░░░░░░░░░░░ 15.52% SALC-based Zero Comparison 1654 ███░░░░░░░░░░░░░░░░░░░░░░ 12.88%
[No content provided for translation.]```
⚡ Processing Efficiency:
Learning Rate: 1.97 feedback/instruction
Weight Update Avg: 0.042650
Weight Update Max: 0.100000
Total Weight Updates: 1724.68
Strategy Coverage:
Total Strategies: 153+
Strategies Activated: 117 ████████████████████████░ 95.90%
Zero-Attempt: 5 █░░░░░░░░░░░░░░░░░░░░░░░░ 04.10%
O modo --biphasic adiciona ofuscação anti-análise antes da desnulação:
Maturidade: Beta v2.0 — Treinado em conjuntos de dados de eliminação de byte nulo. Precisa de retreinamento para casos de uso genéricos de byte inválido.
Arquitetura:
[!WARNING] O modo ML é experimental e requer mais treinamento/validação com a nova arquitetura.
-r)--pattern "*.bin")XOR, etc.)EXEMPLO DE SAÍDA DE PROCESSAMENTO EM LOTE:``` ===== BATCH PROCESSING SUMMARY ===== Total files: 8 Successfully processed: 1 (12.5%) Failed: 7 (87.5%) Skipped: 0
Total input size: 650 bytes Total output size: 764 bytes Average size ratio: 1.18x
Bad bytes: 5 configured Configured set: 0x00, 0x09, 0x0a, 0x0d, 0x20
FAILED FILES (7):
> [!TIP]
> Para processamento em lote de grandes coleções de shellcode, use `--no-continue-on-error` para identificar arquivos problemáticos antecipadamente e, em seguida, processe com sucesso usando `--pattern` para excluir falhas. A flag `--verbose` ajuda a acompanhar o progresso e identificar quais estratégias funcionam melhor para seu corpus específico de shellcode. Os arquivos só são considerados bem-sucedidos quando contêm **zero bytes ruins restantes** – o sucesso parcial é tratado como falha.
### OPÇÕES DE SAÍDA
- Formatos: binário bruto, array em `C`, bytes em Python, string hexadecimal
- Codificação `XOR` com stub de decodificação (`--xor-encode 0xDEADBEEF`)
- Código independente de posição (`--pic`)
- Criação automática de diretório de saída
### ESTATÍSTICAS
Ao usar a flag `--stats`, o `byvalver` fornece análises detalhadas:
**ESTATÍSTICAS DE USO DE ESTRATÉGIAS:**
- Mostra quais estratégias de transformação foram aplicadas
- Taxas de sucesso/fracasso para cada estratégia
- Contagem de aplicações e tamanho médio de saída por estratégia
**ANÁLISE DE COMPLEXIDADE DE ARQUIVOS:**
- Arquivos mais complexos (por contagem de instruções)
- Maiores/menores arquivos por tamanho de entrada
- Arquivos com maiores taxas de expansão
- Estatísticas de banimento de bytes ruins por arquivo
**RESUMO DO PROCESSAMENTO EM LOTE:**
- Porcentagens de sucesso/fracasso
- Configuração detalhada de bytes ruins
- Lista de arquivos com falha, com opções para salvar a lista completa
**EXEMPLO DE SAÍDA:**```
===== BATCH PROCESSING SUMMARY =====
Total files: 162
Successfully processed: 131 (80.9%)
Failed: 31 (19.1%)
Skipped: 0
Total input size: 35772920 bytes
Total output size: 81609 bytes
Average size ratio: 0.00x
Bad bytes: 3 configured
Configured set: 0x00, 0x0a, 0x0d
====================================
FAILED FILES (31):
- ./winwin.bin
- ./stairslide_secure.bin
...
📊 DETAILED STATISTICS
=====================
STRATEGY USAGE STATISTICS:
┌─────────────────────────────────────────┬─────────┬─────────┬──────────────┬────────────────┐
│ Strategy Name │ Success │ Failure │ Applications │ Avg Output Size│
├─────────────────────────────────────────┼─────────┼─────────┼──────────────┼────────────────┤
│ push_immediate_strategy │ 45 │ 3 │ 48 │ 12.34 │
│ mov_reg_mem_self │ 32 │ 1 │ 33 │ 8.21 │
│ ... │ ... │ ... │ ... │ ... │
└─────────────────────────────────────────┴─────────┴─────────┴──────────────┴────────────────┘
FILE COMPLEXITY ANALYSIS:
Most Complex Files (by instruction count):
- ./complex_payload.bin: 1245 instructions, 4096 -> 5201 bytes (1.27x)
Largest Files (by input size):
- ./large_payload.bin: 8192 bytes input, 10485 bytes output (1.28x)
Smallest Files (by input size):
- ./tiny_shellcode.bin: 64 bytes input, 89 bytes output (1.39x)
Largest Expansion (by size ratio):
- ./expanded.bin: 512 -> 1024 bytes (2.00x expansion)
Ferramentas Python para validação:
verify_denulled.py: Garante zero bytes inválidos (suporta --bad-bytes para verificação personalizada)verify_functionality.py: Verifica padrões de execuçãoverify_semantic.py: Valida equivalênciabyvalver emprega um design modular baseado em padrão de estratégia:
C, Make, Git (recomendado)Capstone (v4.0+), NASM (v2.13+), xxdUbuntu/Debian:```bash sudo apt update sudo apt install build-essential nasm xxd pkg-config libcapstone-dev clang-format cppcheck valgrind
**macOS (Homebrew) — macOS Tahoe 26 (E MAIS NOVOS):**```bash
# Core build deps
brew install capstone nasm pkg-config
# xxd is typically already present at /usr/bin/xxd on macOS.
# If it isn't available for some reason, install Vim (xxd is bundled with it):
brew install vim
Alterações recentes foram feitas para melhorar a compatibilidade com macOS/Homebrew (especialmente no Apple Silicon + prefixo do Homebrew /opt/homebrew):
Makefile e makefile para usar CPPFLAGS durante a compilação e LDLIBS durante a linkagem, para que as flags do Capstone descobertas pelo pkg-config sejam respeitadas.pkg-config do Homebrew de .../include/capstone para .../include para que o #include <capstone/capstone.h> do projeto seja resolvido corretamente.Resumo do diff (alto nível):
$(CC) $(CFLAGS) -c ... → $(CC) $(CFLAGS) $(CPPFLAGS) -c ...$(CC) $(CFLAGS) -o ... $(LDFLAGS) → $(CC) $(CFLAGS) $(CPPFLAGS) -o ... $(LDFLAGS) $(LDLIBS)CAPSTONE_CFLAGS := pkg-config --cflags capstone → normalizado para um caminho de include compatível com <capstone/capstone.h>command -v xxd
pkg-config --cflags capstone pkg-config --libs capstone
make clean make
**Windows (WSL):**
Igual ao Ubuntu/Debian.
## COMPILAÇÃO
Use o Makefile para compilações:
- Padrão: `make` (executável otimizado)
- Debug: `make debug` (símbolos, sanitizers)
- Release: `make release` (-O3, nativo)
- Estático: `make static` (autocontido)
- Trainer ML: `make train` (bin/train_model)
- Limpeza: `make clean` ou `make clean-all`
Personalização:```bash
make CC=clang CFLAGS="-O3 -march=native" CPPFLAGS="$(pkg-config --cflags capstone)"
Ver configuração: make info
Instalação global:```bash sudo make install sudo make install-man
Desinstalar:```bash
sudo make uninstall
Do GitHub:```bash curl -sSL https://raw.githubusercontent.com/umpolungfish/byvalver/main/install.sh | bash
## USO```bash
byvalver [OPTIONS] <input> [output]
OPÇÕES PRINCIPAIS:
-h, --help: Ajuda-v, --version: Versão-V, --verbose: Verboso-q, --quiet: Silencioso--bad-bytes BYTES: Bytes hexadecimais separados por vírgula para banir (padrão: "00")--profile NAME: Usar perfil de bytes ruins predefinido (ex.: http-newline, sql-injection)--list-profiles: Listar todos os perfis de bytes ruins disponíveis--biphasic: Ofuscar + desnulificar--pic: Independente de posição--ml: Seleção de estratégia ML--xor-encode KEY: XOR com stub--format FORMAT: raw|c|python|hexstring-r, --recursive: Lote recursivo--pattern PATTERN: Glob de arquivo--no-preserve-structure: Achatar saída--no-continue-on-error: Parar em erro--menu: Iniciar menu TUI interativoEXEMPLOS:```bash
byvalver shellcode.bin clean.bin
byvalver --list-profiles
byvalver --profile http-newline shellcode.bin clean.bin
byvalver --profile sql-injection shellcode.bin clean.bin
byvalver --profile url-safe shellcode.bin clean.bin
byvalver --bad-bytes "00,0a,0d" shellcode.bin clean.bin
byvalver --profile http-newline --biphasic --ml input.bin output.bin
byvalver -r --profile http-whitespace --pattern "*.bin" shellcodes/ output/
byvalver --menu
## ESTRATÉGIAS DE OFUSCAÇÃO
A passagem de ofuscação do `byvalver` (ativada via `--biphasic`) aplica técnicas de anti-análise:
### TÉCNICAS PRINCIPAIS DE OFUSCAÇÃO
- **`MOV Register Exchange`**: Padrões `XCHG`/push-pop
- **`MOV Immediate`**: Decomposição aritmética
- **`Arithmetic Substitution`**: Equivalentes complexos
- **`Memory Access`**: Indireção e `LEA`
- **`Stack Operations`**: Manipulação manual do `ESP`
- **`Conditional Jumps`**: `SETcc` e movimentos
- **`Unconditional Jumps`**: Mecanismos indiretos
- **`Calls`**: `PUSH` + `JMP`
- **`Control Flow Flattening`**: Estados do despachante
- **`Instruction Substitution`**: Operações equivalentes
- **`Dead Code`**: Inserções inofensivas
- **`Register Reassignment`**: Ocultação de fluxo de dados
- **`Multiplication by One`**: Padrões `IMUL`
- **`NOP Sleds`**: Preenchimento variável
- **`Polymorphic NOP Insertion`**: Múltiplos equivalentes de NOP (XCHG EAX,EAX, LEA, MOV)
- **`Constant Unfolding`**: Quebrar imediatos em operações aritméticas
- **`Register Renaming`**: Substituição de registradores baseada em XCHG
- **`Stack Spill Obfuscation`**: Operações aritméticas baseadas na pilha
- **`Instruction Reordering`**: Embaralhamento de instruções com inserção de NOP
- **`Runtime Self-Modification`**: Geração de código automodificante
- **`Overlapping Instructions`**: Sequências de bytes com múltiplas interpretações
- **`Jump Decoys`**: Alvos falsos
- **`Relative Offsets`**: Saltos calculados
- **`Switch-Based`**: Fluxo computado
- **`Boolean Expressions`**: Equivalentes de De Morgan
- **`Variable Encoding`**: Transformações reversíveis
- **`Timing Variations`**: Atrasos
- **`Register State`**: Manipulações complexas
- **`Stack Frames`**: Gerenciamento personalizado
- **`API Resolution`**: Hash complexo
- **`String Encoding`**: Decodificação em tempo de execução
- **`Constants`**: Geração de expressões
- **`Debugger Detection`**: Verificações ofuscadas
- **`VM Detection`**: Métodos ocultos
As prioridades favorecem anti-análise (alta) sobre substituições simples (baixa).
Veja [OBFUSCATION_STRATS](https://github.com/umpolungfish/byvalver/blob/main/docs/OBFUSCATION_STRATS.md) para documentação detalhada da estratégia.
## ESTRATÉGIAS DE DESNULIFICAÇÃO
A passagem principal de desnulificação usa mais de 170 estratégias:
### ESTRATÉGIAS `MOV`
- Passagem original
- Decomposições `NEG`, `NOT`, `XOR`, `Shift`, `ADD/SUB`
### ARITMÉTICA
- Original, `NEG`, `XOR`, `ADD/SUB`
### SALTOS/CONTROLE
- Indiretos `CALL/JMP`
- Deslocamento de memória genérico
- Eliminação de deslocamento condicional
### AVANÇADO
- Bypass de ModR/M
- `TEST` preservando flags
- Endereçamento `SIB`
- Otimizações `PUSH`
- Específico do Windows: `CALL/POP`, hash do `PEB`, `SALC`, aritmética `LEA`, `shifts`, strings de pilha, etc.
### RECURSOS MODERNOS x64
- **RIP-Relative Optimization**: Decomposição de deslocamento, cálculo duplo de RIP, métodos baseados em pilha
- **Bit Manipulation**: Reordenação de bytes BSWAP, construção de potência de 2 com BSF/BSR, contagem de bits POPCNT, PEXT/PDEP BMI2
- **Flag Accumulation**: Eliminação de salto condicional baseada em SETcc com operações lineares de flags
### MELHORIA DE OFUSCAÇÃO
- **Multi-Byte NOP Interlacing**: NOPs aritméticos, rotação de registradores, NOPs condicionais, operações FPU
- **Register Dependency Chains**: Otimização de padrões multi-instrução, reordenação de instruções
- **Negative Displacement Addressing**: Ajustes de registrador base, modos de endereçamento alternativos
### MEMÓRIA/DESLOCAMENTO
- Tratamento de deslocamento nulo
- Alternativas `LEA`
As estratégias são priorizadas e selecionadas via ML ou ordem determinística
O registro modular permite fácil adição de novas estratégias para lidar com padrões emergentes de shellcode.
Veja [DENULL_STRATS](https://github.com/umpolungfish/byvalver/blob/main/docs/DENULL_STRATS.md) para documentação detalhada da estratégia.
## TREINAMENTO E VALIDAÇÃO DE ML
### TREINAMENTO
Construir treinador: `make train`
Executar: `./bin/train_model`
- Dados: `./shellcodes/`
- Saída: `./ml_models/byvalver_ml_model.bin`
- Configuração: 10k amostras, 50 épocas, 20% validação, LR 0.001, batch 32
Modelo carregado automaticamente em tempo de execução com resolução de caminho.
### TESTANDO MODO ML```bash
# Smoke test
./bin/byvalver --ml shellcodes/linux_x86/execve.bin output.bin
# Check registry initialization
./bin/byvalver --ml test.bin output.bin 2>&1 | grep "ML Registry"
# Expected: "ML Registry] Initialized with XXX strategies"
# Batch processing with learning
./bin/byvalver --ml --batch shellcodes/linux_x86/*.bin output/
# View metrics
cat ml_metrics.log
RECOMENDAÇÃO: O modo ML precisa de retreinamento com conjuntos de dados diversos de bad-byte antes do uso em produção. Atualmente otimizado apenas para banimento de null-byte.
byvalver inclui um pipeline de agentes alimentado por IA (agents/) que pode descobrir autonomamente lacunas no registro de estratégias, propor uma técnica inovadora de eliminação de bad-byte, gerar uma implementação C completa e integrá-la ao projeto — tudo em um único comando.
O pipeline é construído sobre o AjintK, um framework de agentes multi-provedor, e suporta Anthropic, DeepSeek, Qwen, Mistral e Google como backends de LLM.
export ANTHROPIC_API_KEY="..." # or DEEPSEEK_API_KEY, QWEN_API_KEY, etc.
python3 run_technique_generator.py
python3 run_obfuscation_generator.py
python3 run_badbyte_generator.py
python3 run_profile_generator.py --profile alphanumeric-only
python3 run_technique_generator.py --dry-run
python3 run_technique_generator.py --arch x64
python3 run_technique_generator.py --provider deepseek --model deepseek-chat
### ESTÁGIOS DO PIPELINE
| Stage | Agent | O que faz |
|---|---|---|
| 1 | `StrategyDiscoveryAgent` | Analisa `src/`, extrai os 340+ nomes e categorias de estratégias, pede ao LLM que resuma lacunas de cobertura |
| 2 | `TechniqueProposalAgent` | Dado o catálogo, propõe uma técnica genuinamente nova com fundamentação, instrução alvo e abordagem |
| 3 | `CodeGenerationAgent` | Gera uma implementação `.h` + `.c` completa em conformidade com `strategy_t` usando `strategy.h`/`utils.h`/`mov_strategies.c` como referência |
| 4 | `ImplementationAgent` | Escreve ficheiros em `src/`, modifica `strategy_registry.c` (include → forward decl → register call), executa `make` |
### OPÇÕES```
--dry-run Stop after Stage 2 — print proposal, write nothing
--arch x86 | x64 | both (default: both)
--provider anthropic | deepseek | qwen | mistral | google (default: anthropic)
--model Model ID (provider-specific default applied if omitted)
--verbose Print full LLM responses at each stage
pip install anthropic tenacity httpx pyyaml
uv pip install -r AjintK/requirements.txt
O pipeline foi validado com **DeepSeek** (`deepseek-chat`) e **Anthropic** (`claude-sonnet-4-6`).
Em uma execução típica, descobre 340+ estratégias, propõe uma técnica (ex.: re-codificação do prefixo VEX para instruções SSE/AVX), gera ~200 linhas de C e produz uma compilação limpa — totalmente sem supervisão.
Consulte [docs/AGENT_MENAGERIE.md](https://github.com/umpolungfish/byvalver/blob/main/docs/AGENT_MENAGERIE.md) para detalhes da arquitetura e extensão do pipeline com novos agentes.
## DESENVOLVIMENTO
- `C` moderno com modularidade
- Suíte de testes: `bash tests/run_tests.sh` (veja [tests/README.md](https://github.com/umpolungfish/byvalver/blob/main/tests/README.md))
- Estilo de código: Clang-Format (config: [.clang-format](https://github.com/umpolungfish/byvalver/blob/main/.clang-format)), execute `make format`
- Análise: Cppcheck, Valgrind
- Docker: `docker build -t byvalver .` (veja [Dockerfile](https://github.com/umpolungfish/byvalver/blob/main/Dockerfile))
- Contribuição: Veja [CONTRIBUTING.md](https://github.com/umpolungfish/byvalver/blob/main/CONTRIBUTING.md)
- Roteiro: Veja [ROADMAP.md](https://github.com/umpolungfish/byvalver/blob/main/ROADMAP.md)
## DOCUMENTAÇÃO
A documentação completa está disponível no diretório [docs/](https://github.com/umpolungfish/byvalver/blob/main/docs):
| Document | Descrição |
|---|---|
| [docs/USAGE.md](https://github.com/umpolungfish/byvalver/blob/main/docs/USAGE.md) | Guia de uso abrangente com exemplos |
| [docs/BUILD.md](https://github.com/umpolungfish/byvalver/blob/main/docs/BUILD.md) | Instruções de compilação e notas específicas de plataforma |
| [docs/TUI_README.md](https://github.com/umpolungfish/byvalver/blob/main/docs/TUI_README.md) | Documentação interativa do TUI |
| [docs/DENULL_STRATS.md](https://github.com/umpolungfish/byvalver/blob/main/docs/DENULL_STRATS.md) | Catálogo de estratégias de denulificação |
| [docs/OBFUSCATION_STRATS.md](https://github.com/umpolungfish/byvalver/blob/main/docs/OBFUSCATION_STRATS.md) | Documentação de técnicas de ofuscação |
| [docs/BAD_BYTE_PROFILES.md](https://github.com/umpolungfish/byvalver/blob/main/docs/BAD_BYTE_PROFILES.md) | Referência de perfis de bytes ruins |
| [docs/BADBYTEELIM_STRATS.md](https://github.com/umpolungfish/byvalver/blob/main/docs/BADBYTEELIM_STRATS.md) | Estratégias de eliminação estendidas |
| [docs/STRATEGY_HIERARCHY.md](https://github.com/umpolungfish/byvalver/blob/main/docs/STRATEGY_HIERARCHY.md) | Organização e prioridade de estratégias |
| [docs/ADVANCED_STRATEGIES.md](https://github.com/umpolungfish/byvalver/blob/main/docs/ADVANCED_STRATEGIES.md) | Técnicas avançadas de transformação |
| [docs/WHITEPAPER.md](https://github.com/umpolungfish/byvalver/blob/main/docs/WHITEPAPER.md) | Whitepaper técnico |
| [docs/AGENT_MENAGERIE.md](https://github.com/umpolungfish/byvalver/blob/main/docs/AGENT_MENAGERIE.md) | Pipeline de agentes: geração automática de técnicas |
## SOLUÇÃO DE PROBLEMAS
- Dependências: Verifique `Capstone`/`NASM`/xxd
- Compilações: Verifique PATH_MAX, cabeçalhos
- ML: Certifique-se do caminho do modelo
- Nulos: Confirme o formato de entrada, dependências
Para problemas persistentes, use o modo verbose e verifique os logs
Se a eliminação de bytes ruins falhar em shellcode específico, considere adicionar estratégias direcionadas ao registro.
## LICENÇA
`byvalver` é disponibilizado livremente sobre a Terra sob a [UNLICENSE](https://github.com/umpolungfish/byvalver/blob/main/UNLICENSE).
</DOCUMENT>