A extensão implementa suporte à arquitetura eBPF para Ghidra e permite a desmontagem e descompilação de programas eBPF.
Desde maio de 2023, o eBPF-for-Ghidra foi incluído no repositório oficial NationalSecurityAgency/Ghidra .
Você pode obter as atualizações e correções mais recentes para o módulo eBPF diretamente no Ghidra.
Este repositório pode ser arquivado no futuro.
Exemplo de programa eBPF você pode obter aqui.

Exemplo de desmontagem e descompilação do eBPF:

File → Install Extensions...GHIDRA_INSTALL_DIR=${GHIDRA_HOME} gradle e use Ghidra para instalá-lo: File → Install Extensions...GhidraExtensions .03.09.2019 — Implementação de mapas eBPF, manipulador de relocação personalizado foi implementado

19.09.2019 — problema com pilha resolvido
20.09.2019 — Os call-helpers eBPF são implementados como syscalls, adicionada assinatura do helper por meio do eBPFAnalyzer personalizado

23/09/2019 – marcadores ruins corrigidos

01.12.2020 — novos auxiliares eBPF adicionados
23.06.2022 — adicionado suporte para chamadas relativas (tipo de realocação R_BPF_64_32 ). Obrigado @cnwangjihe por esta ideia. imm da instrução de chamada onde bpf_call->src_reg == BPF_PSEUDO_CALL agora contém o deslocamento relativo para a função de destino.
Antes:

Depois:

24.06.2022 — realizando Pull Request para repositório oficial Ghidra como principal fornecedor do processador eBPF
19.12.2022 — adicionado suporte para operações BPF_ATOMIC, instruções ALU32 adicionadas, instruções BPF_JMP32 adicionadas, instrução JSET corrigida
03.05.2023 — Suporte ao processador eBPF adicionado ao repositório oficial Ghidra no commit 506ca1e
A partir do Ghidra 10.3, o módulo eBPF é incluído por padrão no Ghidra. Não há mais necessidade de construir este projeto e adicioná-lo como uma extensão do Ghidra. Para usuários de versões mais antigas do Ghidra, o módulo eBPF ainda pode ser acessado através de Releases existentes.
Documentação oficial do kernel
Documentação oficial do kernel - perguntas
Programas eBPF para testar em Ghidra
Desmontador simples de eBPF em Rust
Máquina virtual Rust e compilador JIT para programas eBPF
Ajudantes do eBPF (todos)
Visão geral do eBPF