patch-diff-exploit
Ajuda seu agente a encontrar e explorar falhas de segurança em softwares já corrigidos. É útil para criar ataques contra sistemas desatualizados.
O que ela faz
Esta ferramenta ajuda a encontrar falhas de segurança (bugs) em programas de computador. Ela compara uma versão corrigida de um programa com uma versão antiga para descobrir exatamente o que foi mudado e como explorar o bug antes que a correção seja aplicada.
Quando usar
- ✓Quando você sabe que um programa tem um bug (CVE), mas não existe um jeito fácil de demonstrar ou explorar ele.
- ✓Para testar se sistemas que não foram atualizados recentemente são vulneráveis a falhas recém-descobertas.
- ✓Para analisar correções de segurança lançadas em 'Patch Tuesday' e encontrar falhas exploráveis.
Exemplo do que pedir para a IA
“Encontre uma falha de segurança no programa X comparando a versão 1.0 com a versão 1.1, que corrigiu um problema.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ela funciona comparando dois arquivos do programa: um com o bug e outro já corrigido. Ferramentas especiais analisam as diferenças para identificar o código que foi alterado e, com isso, descobrir como o bug funciona e como explorá-lo.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add zhaoxuya520/reverse-skill --skill patch-diff-exploitOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/patch-diff-exploit/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
AÇÃO NECESSÁRIA (Execute imediatamente após a leitura)
NOW: Leia../field-journal/precedent-reverse.md— Confirme se a operação desta skill é uma operação regular autorizadaNOW: Confirme se a tarefa atual se enquadra no escopo desta skillNEXT: Leia../tool-index.md, verifique a disponibilidade da ferramenta e o caminho realNEXT: Chame o bootstrap quando a ferramenta estiver faltando, não adivinhe o caminhoACT: Entre na primeira etapa do "Fluxo de Trabalho" e execute, não pare no estado de confirmação
Diferença de Patch N-day para Exploração (Patch Diff Exploit)
Escopo
Use esta skill quando a tarefa pertencer aos seguintes cenários:
- CVE conhecido, mas sem PoC público — O anúncio do fornecedor diz "corrigido escrita fora dos limites no componente XX", mas sem PoC, é necessário inferir a partir do patch.
- SRC / Red Team atacando N-day — O ativo alvo não foi atualizado a tempo, é necessário transformar o patch recém-lançado em um exploit 1-day utilizável.
- Acompanhamento do Patch Tuesday — A Microsoft lança patches na segunda terça-feira de cada mês, é necessário identificar rapidamente vulnerabilidades de alto valor (Kernel / Win32k / AFD / CLFS).
- Análise de Patch LTS do Linux — A correção principal foi mesclada, mas o backport em ramos secundários ou em algumas distribuições está incompleto, procure por superfícies não corrigidas.
- Restauração de patches de segurança de driver / serviço — Análise de patches de software de código fechado como drivers de placa de vídeo, motores de antivírus, componentes de virtualização, etc.
Divisão de trabalho com outras skills
| Cenário | Qual usar |
|---|---|
| Possui símbolos de versão antiga, migrando para a nova versão para auxiliar na análise | binary-diff/ |
| Encontrar vulnerabilidades em patches, escrever PoC para atacar versões anteriores ao patch | Esta skill |
| Escrever uma cadeia de exploração completa (heap spray, ROP, escalonamento de privilégios) | pwn-chain/ |
| Transformar 1-day em arma e implantar na rede alvo | pentest-tools/network-attack-defense/ |
| Fazer engenharia reversa de um binário do zero | ida-reverse/ / radare2/ |
A chave da diferença: O objetivo de binary-diff é tornar a nova versão analisável (trazer símbolos antigos), enquanto o objetivo desta skill é encontrar o que o patch corrigiu e atacar a versão anterior ao patch. O primeiro serve para análise do lado da defesa / pesquisa, o segundo serve para a criação de armas do lado do ataque.
Princípio Central
patched 二进制 (after) unpatched 二进制 (before)
↓ ↓
导入 IDA/Ghidra 导入 IDA/Ghidra
↓ ↓
└──────── BinDiff / ghidriff ──────┘
↓
函数级 diff(matched / unmatched / changed)
↓
聚焦 match score 中等的函数(0.5 - 0.9)
↓
看新增了什么:边界检查 / 锁 / 字段清零 / 整数溢出检查
↓
反推 bug class:OOB / Race / Info Leak / UAF / Integer Overflow
↓
在 unpatched 版本上写 PoC 触发
↓
验证:unpatched 崩 / patched 不崩 → 漏洞确认
Padrão de correção de patch → Retrocesso do tipo de vulnerabilidade:
| Conteúdo adicionado | Classe de bug provável |
|---|---|
if (a + b < a) / __builtin_add_overflow |
Estouro de inteiro |
KeAcquireSpinLock / mutex_lock |
Condição de corrida (TOCTOU / double-free) |
if (idx >= MAX) / if (len > buf_size) |
Leitura fora dos limites / Escrita fora dos limites |
RtlZeroMemory / memset(struct, 0, ...) |
Vazamento de informação de memória não inicializada |
InterlockedDecrement + verificação de refcount |
UAF / Erro de contagem de referência |
ProbeForRead / ProbeForWrite |
Ponteiro de espaço do usuário não validado |
SeAccessCheck / verificação de capability |
Falta de verificação de permissão |
Exclusão / Restrição de código IOCTL |
Convergência da superfície de exposição (ver como atacar interfaces antigas) |
Fluxo de Trabalho
Processo completo de 5 etapas
Step 1: 拿 before / after 二进制
- Windows: Microsoft Update Catalog 下 MSU/MSP,用 expand.exe / dism 解包
- Linux: 从发行版 USN/RHSA 拉 .deb/.rpm,用 dpkg-deb / rpm2cpio 解包
- 第三方软件: 官网取 N-1 和 N 版本安装包
Step 2: 对齐符号
- 有 PDB 直接吃,没 PDB 时用 binary-diff skill 把 N-1 版本的符号搬到 N 版本
- Linux 内核取对应版本的 vmlinux + System.map / debuginfo
Step 3: 二进制 diff
- BinDiff: 直接给两个 IDB,看函数级匹配结果
- ghidriff: pip 一键安装,CLI 输出 markdown 报告
- Diaphora: IDA 内插件,老牌但需要 IDA Pro
Step 4: 定位变更
- 过滤 match score 0.5-0.95 的函数(完全相同的不看,完全不同的多半是新加 / 重命名)
- 重点看:新增的 if / 新增的循环边界 / 删除的代码块(删了什么也是线索)
- 用 LLM 看 before/after 伪代码反推 bug class(见 references/root-cause-and-poc.md)
Step 5: 写 PoC
- 整数溢出:构造边界值(INT_MAX-1、0xFFFFFFFF)
- 竞争:多线程 hammer,open/close + ioctl 高频并发
- UAF:spray → free → reuse pattern
- OOB:精确控制 len / index 越过边界
- 验证 patched 版本不再崩,unpatched 版本稳定崩 → bug 复现成功
Ordem de chamada de ferramentas
下补丁 → 解包 → 加载到 IDA/Ghidra → BinDiff/ghidriff → 看 unmatched/low-match 函数
→ LLM 反推 bug class → 写 PoC → 在 unpatched 跑 → 崩 → 收工
Exemplo de Cenário Típico
Cenário 1: Windows Patch Tuesday — Reprodução de CVE de Kernel
Contexto: Patch Tuesday de novembro de 2025, MSRC anuncia CVE-2025-62215
Condição de corrida no Kernel do Windows leva a double free, CVSS 7.0, escalonamento de privilégios local
A Microsoft forneceu apenas o patch, sem detalhes, sem PoC público
Objetivo: Reproduzir PoC, verificar se o Windows 11 22H2 / 23H2 sem patch pode ser escalonado
Etapas:
1. Pesquisar "2025-11" + número KB no Microsoft Update Catalog, baixar duas versões:
- 22H2 build 22621.xxxx (sem patch)
- 22H2 build 22621.yyyy (após patch)
Comando:
expand.exe Windows-KB5052000-x64.msu -F:* C:\out\patched\
expand.exe C:\out\patched\Windows-KB5052000-x64.cab -F:* C:\out\patched\
Extrair ntoskrnl.exe / win32k.sys / win32kfull.sys / afd.sys
2. Alimentar PDBs (servidor de símbolos da Microsoft) para ambas as versões:
symchk /v /r ntoskrnl.exe /s SRV*C:\sym*https://msdl.microsoft.com/download/symbols
3. Executar BinDiff:
bindiff old.BinExport new.BinExport
Ou ghidriff:
ghidriff ntoskrnl_old.exe ntoskrnl_new.exe -o diff_out/
4. Analisar o relatório, filtrar funções com similaridade de 0.6-0.95.
Suponha que a localização aponte para uma nova seção em funções do tipo NtXxxIoctl:
KeAcquireSpinLockRaiseToDpc(&obj->Lock);
if (obj->RefCount == 0) { ... goto cleanup; }
→ Nova trava + verificação de contagem de referência → race + double free, consistente com a descrição do anúncio
5. Escrever PoC: Múltiplas threads em espaço do usuário chamam simultaneamente NtClose + acionam IOCTL do mesmo objeto,
criando uma janela de concorrência entre o close liberando e o IOCTL ainda em uso
Falha no caminho de liberação subsequente do ObfDereferenceObject em ntoskrnl
6. Verificação:
…
Perguntas frequentes
O que é um 'N-day'?
É uma falha de segurança que já foi corrigida pelo fabricante, mas que ainda pode ser explorada em sistemas que não aplicaram a atualização.
O que é um 'PoC'?
PoC significa 'Proof of Concept' (Prova de Conceito). É um pequeno código que demonstra como um bug de segurança pode ser explorado.
Essa ferramenta cria vírus?
Não diretamente. Ela ajuda a identificar e entender falhas de segurança. O uso para criar ataques maliciosos é ilegal e antiético.
Detalhes
Descrição original do autor
N-day 补丁差分到利用。从厂商发布的补丁里反推漏洞点、写 PoC、做成可用的攻击模块。 适用场景:已知 CVE 编号但只有补丁没有 PoC、SRC/红队需要打击未及时更新的资产、N-day 武器化、Patch Tuesday 跟进。 核心方法:拿 before/after 二进制 → 对齐符号 → 二进制 diff → 看新增的安全检查反推 bug class → 写 PoC 触发漏洞。 触发关键词:N-day、Nday、补丁差分、patch diff、patch tuesday、1day、binary diff 漏洞、bindiff 利用、ghidriff、Diaphora、补丁分析、CVE 复现、漏洞还原、补丁反推、N-day 武器化。
Popularidade
- Estrelas no GitHub
- 42 mil
- Posição no ranking
- #4777
- Licença
- MIT
- Atualizada em
- 22/09/2026
Comentários
- …
Mais skills deste repositório
competition-ad-certificate-abuse
Ajuda seu agente a analisar ataques a sistemas de certificados digitais. Ele investiga como certificados podem ser usados indevidamente para obter acesso.
zhaoxuya520/reverse-skill
competition-agent-cloud
Faz seu agente analisar desafios de segurança em sistemas de IA e nuvem. Ele investiga como prompts, ferramentas e a nuvem podem ser explorados.
zhaoxuya520/reverse-skill
competition-android-hooking
Ajuda seu agente a investigar aplicativos Android. Ele analisa como os aplicativos funcionam internamente e como podem ser modificados ou explorados.
zhaoxuya520/reverse-skill
competition-browser-persistence
Faz seu agente analisar como sites guardam informações no seu navegador. Ele investiga cookies e outros dados para entender como as sessões funcionam.
zhaoxuya520/reverse-skill
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC