Habilidades binary-analysis-patterns
🔍

binary-analysis-patterns

Seguro

Analisar Padrões de Código Binário

Compreenda executáveis compilados sem código-fonte. Esta habilidade fornece padrões de linguagem assembly, reconhecimento de fluxo de controle e orientação para decompilação em tarefas de engenharia reversa.

Suporta: Claude Codex Code(CC)
🥉 75 Bronze
1

Baixar o ZIP da skill

2

Upload no Claude

Vá em Configurações → Capacidades → Skills → Upload skill

3

Ative e comece a usar

Testar

A utilizar "binary-analysis-patterns". O que este padrão assembly faz? ```asm lea eax, [rax + rax*4] add eax, eax ```

Resultado esperado:

Este padrão multiplica um valor por 10. A instrução LEA computa rax * 5 (rax + rax*4), depois o ADD dobra o resultado para obter rax * 10. Compiladores usam esta otimização shift-and-add em vez da instrução MUL mais lenta para multiplicação por constantes.

A utilizar "binary-analysis-patterns". Como identifico uma instrução switch na desmontagem?

Resultado esperado:

Procure por dois padrões: (1) Jump tables - um registrador é usado como índice em um array de endereços (jmp [table + reg*8]), ou (2) Comparações sequenciais - múltiplas cadeias cmp/je comparando a mesma variável contra diferentes constantes. O padrão jump table é mais comum para instruções switch maiores com muitos casos.

A utilizar "binary-analysis-patterns". Qual é a diferença entre estes dois padrões? Pattern A: mov eax, [rdi] Pattern B: movzx eax, byte [rdi]

Resultado esperado:

Pattern A lê um inteiro de 4 bytes (dword) da memória, sugerindo tipo int ou uint32. Pattern B lê um único byte e faz zero-extend para 32 bits, sugerindo tipo unsigned char ou uint8. A variante movzx é comumente usada ao trabalhar com flags booleanas, caracteres ASCII ou valores unsigned pequenos que precisam ser promovidos para registradores maiores para operações.

Auditoria de Segurança

Seguro
v1 • 2/25/2026

All 47 static analysis findings are false positives. The detected patterns are Markdown code fence delimiters and assembly code examples in documentation. No executable code, external commands, or security risks present. This is purely educational content about binary analysis patterns.

1
Arquivos analisados
453
Linhas analisadas
0
achados
1
Total de auditorias
Nenhum problema de segurança encontrado
Auditado por: claude

Pontuação de qualidade

38
Arquitetura
100
Manutenibilidade
87
Conteúdo
50
Comunidade
100
Segurança
100
Conformidade com especificações

O Que Você Pode Construir

Engenharia Reversa de Malware

Pesquisadores de segurança usam padrões assembly para entender o comportamento de malware, identificar funções maliciosas e reconstruir a lógica do programa sem acesso ao código-fonte.

Manutenção de Código Legado

Desenvolvedores que mantêm sistemas legados sem documentação usam padrões de desmontagem para entender binários compilados, corrigir bugs e adicionar recursos a aplicações antigas.

Resolução de Desafios CTF

Participantes de Capture The Flag analisam executáveis binários para encontrar flags ocultas, entender o fluxo do programa e explorar vulnerabilidades usando reconhecimento de padrões assembly.

Tente Estes Prompts

Identificar Padrão Assembly
Explique o que este padrão de código assembly representa em código de alto nível:

```asm
xor ecx, ecx
loop_start:
cmp ecx, [n]
jge loop_end
; ... body ...
inc ecx
jmp loop_start
loop_end:
```

Que constructo de programação este padrão implementa?
Analisar Estrutura de Função
Desmontei esta função. Ajude-me a entender:
1. Qual é a assinatura da função (parâmetros e tipo de retorno)?
2. Qual convenção de chamada é usada (System V ou Microsoft x64)?
3. Qual é a lógica geral desta função?

[cole o código assembly aqui]
Recuperação de Estrutura de Dados
Este código assembly acessa uma estrutura de dados complexa. Ajude-me a identificar:
1. Que tipo de estrutura de dados é esta (struct, array, linked list)?
2. Quais são os offsets dos campos e seus prováveis tipos?
3. O que esta estrutura representa no código original?

```asm
mov rdi, [struct_ptr]
mov eax, [rdi]
movzx eax, byte [rdi+4]
mov rax, [rdi+8]
```
Script de Análise Ghidra
Preciso de um script Python para Ghidra para:
1. Encontrar todas as funções que chamam 'strcpy'
2. Identificar vulnerabilidades potenciais de buffer
3. Criar um tipo de estrutura para um layout de dados que descobri

Forneça o script com explicações do que cada parte faz.

Melhores Práticas

  • Comece com análise de strings para identificar funções interessantes - strings referenciadas no código frequentemente revelam o propósito da lógica ao redor
  • Siga o fluxo de dados para trás a partir de chamadas API interessantes ou funções de biblioteca para entender como os dados são preparados e validados
  • Use cross-references (xrefs) extensivamente - entender quem chama uma função e o que ela acessa revela contexto e propósito
  • Documente suas descobertas com comentários e símbolos renomeados imediatamente - análise binária é iterativa e você esquecerá o contexto

Evitar

  • Assumir que a saída do decompiler está correta - decompilação pode produzir código enganoso devido a otimizações, tipos não reconhecidos ou chamadas indiretas
  • Analisar builds otimizadas sem entender otimizações do compilador - tail call optimization (jmp em vez de call+ret) e inlining podem obscurecer limites de função
  • Focar apenas nas funções 'interessantes' - autores de malware frequentemente escondem lógica em funções utilitárias de aparência comum ou usam técnicas de ofuscação
  • Ignorar convenções de chamada específicas da arquitetura - identificar erroneamente passagem de parâmetros leva a assinaturas de função completamente erradas

Perguntas Frequentes

Esta habilidade pode analisar arquivos binários reais para mim?
Não, esta habilidade fornece padrões de referência e orientação para entender código assembly e técnicas de análise binária. Você precisa usar ferramentas como Ghidra, IDA Pro ou objdump para realizar a desmontagem e análise reais.
Quais arquiteturas são cobertas nos padrões?
A habilidade cobre principalmente convenções de chamada e padrões de instrução x86-64 (tanto System V AMD64 para Linux/macOS quanto Microsoft x64 para Windows), ARM64 (AArch64) e ARM32.
Como escolher entre as convenções de chamada System V e Microsoft x64?
Verifique a plataforma alvo do binário. Binários Linux e macOS usam System V (argumentos em RDI, RSI, RDX, RCX, R8, R9). Binários Windows usam Microsoft x64 (argumentos em RCX, RDX, R8, R9 com espaço shadow de 32 bytes).
Por que o código decompilado parece estranho ou obviamente errado?
Decompiladores fazem suposições baseadas em tipos e padrões. Se o decompiler não tem informações de tipo ou encontra otimizações do compilador, a saída pode ser enganosa. Use a visão assembly para verificar e corrigir as suposições do decompiler.
Quais ferramentas funcionam melhor com estes padrões?
Ghidra (gratuito, decompiler poderoso), IDA Pro (padrão da indústria, caro), Binary Ninja (moderno, boa automação) e radare2 (focado em linha de comando). Esta habilidade inclui dicas específicas para Ghidra e IDA Pro.
Posso usar estes padrões para análise de malware?
Sim, estes padrões são comumente usados em análise de malware e pesquisa de segurança. Os padrões para identificar chamadas de função, estruturas de dados e fluxo de controle se aplicam a qualquer tarefa de análise binária incluindo análise de código malicioso em ambientes controlados.

Detalhes do Desenvolvedor

Estrutura de arquivos

📄 SKILL.md