Common Binary Exploitation Protections & Bypasses
Habilitar Arquivos Core
Arquivos Core são um tipo de arquivo gerado por um sistema operacional quando um processo falha. Esses arquivos capturam a imagem da memória do processo falho no momento de sua terminação, incluindo a memória do processo, registradores e estado do contador de programa, entre outros detalhes. Essa captura pode ser extremamente valiosa para depuração e compreensão do motivo da falha.
Habilitar a Geração de Despejos de Core
Por padrão, muitos sistemas limitam o tamanho dos arquivos core para 0 (ou seja, não geram arquivos core) para economizar espaço em disco. Para habilitar a geração de arquivos core, você pode usar o comando ulimit
(no bash ou shells similares) ou configurar as configurações em todo o sistema.
Usando ulimit: O comando
ulimit -c unlimited
permite que a sessão do shell atual crie arquivos core de tamanho ilimitado. Isso é útil para sessões de depuração, mas não é persistente entre reinicializações ou novas sessões.
Configuração Persistente: Para uma solução mais permanente, você pode editar o arquivo
/etc/security/limits.conf
para incluir uma linha como* soft core unlimited
, que permite a todos os usuários gerar arquivos core de tamanho ilimitado sem precisar definir ulimit manualmente em suas sessões.
Analisando Arquivos Core com GDB
Para analisar um arquivo core, você pode usar ferramentas de debug como o GDB (GNU Debugger). Supondo que você tenha um executável que gerou um despejo core e o arquivo core seja chamado core_file
, você pode iniciar a análise com:
Este comando carrega o executável e o arquivo core no GDB, permitindo que você inspecione o estado do programa no momento do crash. Você pode usar comandos do GDB para explorar a pilha, examinar variáveis e entender a causa do crash.
Last updated