Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
byvalver — pega bytes ruins de shellcode e os bane, retornando shellcode limpo com funcionalidades preservadas | Kitploit
Ferramentas/GitHubGitHub/umpolungfish/byvalver
ExploraçãoShellcodeAnálise de MalwareTestes de PenetraçãoAnálise de BináriosAprendizado de MáquinaRed TeamingGeração de ShellcodeDesenvolvimento de Payloads
GitHubumpolungfish/byvalver

byvalver

pega bytes ruins de shellcode e os bane, retornando shellcode limpo com funcionalidades preservadas

63951há 6 mesesRevisado pelo Kitploit
Ver Repositório

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

byvalver (·𐑚𐑲𐑝𐑨𐑤𐑝𐑼)

O BANIDOR DE BYTES RUINS DE SHELLCODE

byvalver bane bytes ruins com extremo preconceito
C++ LIMPEZA DE SHELLCODE MULTIPLATAFORMA ARQUITETURAS BUILD CLEAN Estrelas GitHub Forks GitHub PATROCINADOR NO gitHub
APOIE NO ko-fi

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


Índice

  • Visão Geral
  • Início Rápido
    • Instalação
    • Uso Básico
    • Verificação
    • Suporte Multiarquitetura
    • Processamento em Lote
  • TUI Interativo
  • Banimento Direcionado de Bytes Ruins
  • Perfis de Bytes Ruins
  • Funcionalidades
    • Mecanismo Avançado de Transformação
    • Métricas de Desempenho
    • Camada de Ofuscação
    • Seleção de Estratégia com ML
    • Opções de Saída
    • Suíte de Verificação
  • Arquitetura
  • Requisitos do Sistema
  • Dependências
  • Compilação
  • Instalação
  • Uso
  • Estratégias de Ofuscação
  • Estratégias de Desnulificação
  • Treinamento e Validação de ML
  • Menagerie de Agentes
  • Desenvolvimento
  • Documentação
  • Solução de Problemas
  • Licença

Visão Geral

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

ArquiteturaMaturidadeEstratégiasObservações
x86 (32-bit Intel/AMD)Estável v4.2150+Testado em produção, cobertura total
x64 (64-bit Intel/AMD)Estável v4.2150+Arquitetura padrão, testado em produção
ARM (32-bit)Experimental v0.17 essenciaisTestes limitados, apenas instruções básicas
ARM64 (AArch64)Experimental v0.1BásicasEstrutura pronta, estratégias mínimas
  • Seleção automática do modo Capstone via flag --arch

v4.0.1 Correções de Bugs:

  • Corrigida codificação da instrução ARM SUB (opcode correto 0x2 com bit I=1)
  • Corrigida lógica can_handle das estratégias ARM64 para estratégias pass-through
  • Adicionados avisos experimentais quando a arquitetura ARM/ARM64 é selecionada
  • Adicionadas heurísticas de detecção de incompatibilidade de arquitetura
  • Melhorias na organização do código (includes movidos para escopo de arquivo)

NOVO na v4.2: Suporte Aprimorado para x64

  • Camada de Compatibilidade de Estratégias x86/x64: Mais de 128 estratégias x86 agora funcionam em shellcode x64
  • 5 Novos Arquivos de Estratégia Específicos x64: MOVABS, SBB, TEST, Memória SSE, Deslocamento LEA
  • Codificação Estendida de Registradores: Suporte total a R8–R15 com tratamento adequado do prefixo REX
  • Utilitários de Prefixo REX: is_64bit_register(), is_extended_register(), build_rex_prefix()
  • Resolve taxa de falha de 100% em amostras de shellcode exclusivamente x64

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:

  1. Especificação direta: A opção --bad-bytes permite especificar bytes arbitrários a serem banidos (ex.: --bad-bytes "00,0a,0d" para shellcode seguro para novas linhas)
  2. Baseado em perfis: A opção --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:

  • Implementação em C puro para eficiência e controle de baixo nível
  • Capstone para desmontagem precisa
  • NASM para gerar stubs de decodificação
  • Padrão modular de estratégias para transformações extensíveis (mais de 153 implementações de estratégias)
  • Integração com rede neural para seleção inteligente de estratégias
  • Processamento bifásico: Ofuscação seguida de desnulificaçã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

BANIMENTO DE BYTES RUINS EM AÇÃO

banimento de bytes ruins em ação

INÍCIO RÁPIDO

Comece com byvalver em minutos:

INSTALAÇÃO

OPÇÃO 1: DO GITHUB (RECOMENDADO)```bash curl -sSL https://raw.githubusercontent.com/umpolungfish/byvalver/main/install.sh | bash

root@kitploit:~
**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

Uso Básico

banish NULL BYTES (DEFAULT):```bash byvalver input.bin output.bin

root@kitploit:~
**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

banish null bytes and newlines

byvalver --bad-bytes "00,0a,0d" input.bin output.bin

root@kitploit:~
**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

VERIFICAÇÃO

Sempre verifique seu shellcode transformado:```bash

Check for remaining bad bytes

python3 verify_denulled.py --bad-bytes "00,0a,0d" output.bin

Verify functional equivalence

python3 verify_functionality.py input.bin output.bin

root@kitploit:~
### 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

root@kitploit:~
**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

root@kitploit:~
**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/

TUI INTERATIVA

Menu principal da TUI

Processamento em lote da TUI

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:

  • processamento em lote com estatísticas ao vivo
  • configuração de ML &
  • navegação abrangente de arquivos

Inicie a TUI com a flag --menu:```bash byvalver --menu

root@kitploit:~
### 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.

CONFIGURAÇÃO DE BYTE INVÁLIDO:

2x métodos de entrada disponíveis:

  1. ENTRADA MANUAL - Valores hexadecimais separados por vírgula (ex.: 00,0a,0d)
  2. PERFIS PREDEFINIDOS - 13 perfis para cenários comuns:
    • null-only, http-newline, http-whitespace
    • url-safe, sql-injection, xml-html
    • json-string, format-string, buffer-overflow
    • command-injection, ldap-injection
    • printable-only, alphanumeric-only

NAVEGAÇÃO:

  • Teclas de Seta (↑↓) ou j/k (estilo vi): Navegar entre as opções do menu
  • Enter: Selecionar a opção destacada
  • q: Sair da aplicação ou cancelar a operação
  • 0-9: Selecionar rapidamente a opção do menu pelo número
  • Espaço: Selecionar o diretório atual (no modo de navegação por diretórios do navegador de arquivos)

REQUISITOS:

O modo interativo requer que a biblioteca ncurses esteja instalada no seu sistema:```bash

Ubuntu/Debian

sudo apt install libncurses-dev

CentOS/RHEL/Fedora

sudo dnf install ncurses-devel

macOS (with Homebrew)

brew install ncurses

root@kitploit:~
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

EXEMPLOS DE PERFIL

Contextos HTTP (elimina NULL, LF, CR):```bash byvalver --profile http-newline payload.bin http_safe.bin

root@kitploit:~
**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

root@kitploit:~
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%

Visualizar resultados

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%

root@kitploit:~
[![Gem Version](https://badge.fury.io/rb/patreon.svg)](https://badge.fury.io/rb/patreon)
[![Build Status](https://travis-ci.org/patreon/patreon-ruby.svg?branch=master)](https://travis-ci.org/patreon/patreon-ruby)
[![Documentation](https://img.shields.io/badge/docs-patreon--ruby-blue.svg)](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:

root@kitploit:~
$ bundle install

Ou instale você mesmo como:

root@kitploit:~
$ gem install patreon

Uso

Para usar a API do Patreon, você precisa configurar um cliente OAuth2. Aqui está um exemplo básico:

root@kitploit:~
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']}!"

Contribuindo

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%

root@kitploit:~
[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%

CAMADA DE OFUSCAÇÃO

O modo --biphasic adiciona ofuscação anti-análise antes da desnulação:

  • Achatamento de fluxo de controle
  • Padrões de despacho
  • Reatribuição de registradores
  • Ofuscação de estado
  • Inserção de código morto
  • Trilhas NOP
  • Substituição de instruções
  • Operações equivalentes
  • Manipulação de quadro de pilha
  • Ocultação de resolução de API
  • Codificação de strings
  • Codificação de constantes
  • Anti-debugging
  • Técnicas de detecção de VM

SELEÇÃO DE ESTRATÉGIA COM ML

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:

  • Codificação one-hot de instruções (51 dimensões) substitui IDs de instruções escalares
  • Janela de contexto com buffer deslizante de 4 instruções (atual + 3 anteriores)
  • Extração fixa de características com layout estável de 84 dimensões por instrução
  • Registro estável de estratégias garantindo mapeamento consistente da saída da rede neural
  • Retropropagação completa por todas as camadas (entrada→oculta→saída)
  • Cálculo correto de gradiente para perda de softmax + entropia cruzada
  • Mascaramento de saída filtra estratégias inválidas antes do softmax
  • Inicialização He/Xavier para inicialização adequada de pesos
  • Rede neural feedforward de 3 camadas (336→512→200)
  • Aprendizado adaptativo a partir de feedback de sucesso/falha
  • Rastreia previsões, precisão e confiança
  • Fallback gracioso para ordenação determinística

[!WARNING] O modo ML é experimental e requer mais treinamento/validação com a nova arquitetura.

PROCESSAMENTO EM LOTE

  • Varredura recursiva de diretórios (-r)
  • Padrões de arquivo personalizados (--pattern "*.bin")
  • Preservação ou achatamento de estrutura
  • Modos continuar em erro ou estrito
  • Compatível com todas as opções (biphasic, PIC, XOR, etc.)
  • Saída aprimorada:
    • Transformações de tamanho por arquivo com proporções
    • Identificação detalhada de bytes inválidos em falhas
    • Porcentagens de sucesso/falha no resumo
    • Lista de arquivos com falha (primeiros 10 mostrados inline)
    • Definição estrita de sucesso: arquivos com bytes inválidos restantes marcados como falha

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):

  • shellcode1.bin
  • shellcode2.bin ...
root@kitploit:~
> [!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)

Suíte de Verificação

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ção
  • verify_semantic.py: Valida equivalência

Arquitetura

byvalver emprega um design modular baseado em padrão de estratégia:

  • Passo 1: (Opcional) Ofuscação para anti-análise
  • Passo 2: Desnulificação para remoção de bytes nulos
  • Camada de ML para otimização de estratégia
  • Sistema de lote para processamento escalável
Taxonomia de Categorias de Estratégia

Requisitos de Sistema

  • SO: Linux (Ubuntu/Debian/Fedora), macOS (com Homebrew), Windows (via WSL/MSYS2)
  • CPU: x86/x64 com instruções modernas
  • RAM: 1GB livre
  • Disco: 50MB livre
  • Ferramentas: compilador C, Make, Git (recomendado)

Dependências

  • Essenciais: GCC/Clang, GNU Make, Capstone (v4.0+), NASM (v2.13+), xxd
  • Opcionais: Clang-Format, Cppcheck, Valgrind
  • Treinamento ML: Bibliotecas matemáticas (incluídas)

Comandos de Instalação

Ubuntu/Debian:```bash sudo apt update sudo apt install build-essential nasm xxd pkg-config libcapstone-dev clang-format cppcheck valgrind

root@kitploit:~
**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

CORREÇÕES DE BUILD NO macOS/Homebrew (ALTERAÇÕES NO REPO)

Alterações recentes foram feitas para melhorar a compatibilidade com macOS/Homebrew (especialmente no Apple Silicon + prefixo do Homebrew /opt/homebrew):

  • Atualizados 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.
  • Normalizado o caminho de include do Capstone emitido pelo 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>

SOLUÇÃO DE PROBLEMAS (macOS)```bash

Verify xxd is available (macOS usually ships /usr/bin/xxd)

command -v xxd

Verify Capstone is discoverable via pkg-config

pkg-config --cflags capstone pkg-config --libs capstone

Clean rebuild

make clean make

root@kitploit:~
**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

Instalação global:```bash sudo make install sudo make install-man

root@kitploit:~
Desinstalar:```bash
sudo make uninstall

Do GitHub:```bash curl -sSL https://raw.githubusercontent.com/umpolungfish/byvalver/main/install.sh | bash

root@kitploit:~
## USO```bash
byvalver [OPTIONS] <input> [output]
  • Entrada/saída podem ser arquivos ou diretórios (lote automático)

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 interativo

EXEMPLOS:```bash

Default: banish null bytes only (well-tested, recommended)

byvalver shellcode.bin clean.bin

v3.0 NEW: List available bad-byte profiles

byvalver --list-profiles

v3.0 NEW: Use predefined profile for HTTP contexts (eliminates 0x00, 0x0A, 0x0D)

byvalver --profile http-newline shellcode.bin clean.bin

v3.0 NEW: Use profile for SQL injection contexts

byvalver --profile sql-injection shellcode.bin clean.bin

v3.0 NEW: Use profile for URL-safe shellcode

byvalver --profile url-safe shellcode.bin clean.bin

v3.0 NEW: Manual bad-byte specification (experimental - not extensively tested)

byvalver --bad-bytes "00,0a,0d" shellcode.bin clean.bin

Combined with other features

byvalver --profile http-newline --biphasic --ml input.bin output.bin

Batch processing with profile

byvalver -r --profile http-whitespace --pattern "*.bin" shellcodes/ output/

Launch interactive TUI mode

byvalver --menu

root@kitploit:~
## 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.

MENAGERIE DE AGENTES

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.

INÍCIO RÁPIDO```bash

Requires API key for your chosen provider

export ANTHROPIC_API_KEY="..." # or DEEPSEEK_API_KEY, QWEN_API_KEY, etc.

--- Specialized Generators ---

1. General Technique Generator (discover → propose → generate → implement)

python3 run_technique_generator.py

2. Obfuscation Technique Generator (specifically for anti-analysis/evasion)

python3 run_obfuscation_generator.py

3. Bad-Byte Removal Generator (targeting restricted byte elimination)

python3 run_badbyte_generator.py

4. Profile-Specific Strategy Generator (targeting a specific bad-byte profile)

python3 run_profile_generator.py --profile alphanumeric-only

--- Common Options ---

Dry-run: discover and propose only, no files written

python3 run_technique_generator.py --dry-run

Target a specific architecture

python3 run_technique_generator.py --arch x64

Use a different provider / model

python3 run_technique_generator.py --provider deepseek --model deepseek-chat

root@kitploit:~
### 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

REQUISITOS```bash

Install Python dependencies (uses AjintK framework)

pip install anthropic tenacity httpx pyyaml

Or with uv (faster)

uv pip install -r AjintK/requirements.txt

root@kitploit:~
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>
Baixar ferramenta