
Um BOF para enumerar processos do sistema, seus níveis de proteção e muito mais.
Este BOF pode ser usado para enumerar processos do sistema e identificar o nível de proteção de cada um. Informações adicionais, como relação com serviços, usuário, sessão e caminho, também são retornadas. Essas informações, em conjunto, podem ser usadas para identificar bons candidatos para explorar sequestros de DLL em nível de SYSTEM. Processos ideais serão:

Esta ferramenta foi escrita sem o uso de declarações normais de API de BOF (ex.: um arquivo bofdefs.h). Conforme descrito neste blog post por Matt Ehrnschwender, é possível usar o objcopy para corrigir os símbolos apropriados do formato DLL$API no BOF após a compilação. O Makefile desta ferramenta chama o objcopy, passando um arquivo imports_enumprotectionsXX.txt contendo as substituições de símbolos adequadas para a ferramenta, o que torna o BOF utilizável.
Escrevi uma ferramenta chamada BOFPatcher que automatiza esse processo. Isso permite que os usuários escrevam BOFs como C normal, sem se preocupar com declarações de API incômodas:

Esta ferramenta está disponível para aqueles que adquirirem meu curso BOF Development and Tradecraft.
Agradecimentos a hasherezade por este trecho e a Gabriel Landau por NoFault.
Também um agradecimento aos muitos talentosos indivíduos cujo trabalho foi coletado pelo ChatGPT e usado por mim.