
Plugin do IDA para aprimorar a engenharia reversa de binários (U)EFI com análise em lote, banco de dados de GUIDs e estatísticas de uso de serviços para pesquisa de segurança de firmware.
__.
_ __/_ /| |
| ) | ) | |
| \ | \ | |
/ / _ / ||
/ /
_________ . ____ . . _____
/ / _ || ______ ______ | |/ _| ____ ||/ _
_ \ / / / |/ // / | < / | \ / __
/ \ /| |_ \ _ \ | | | | \ || | \ /
/ / /_/ |/ > > |____| _| /||| _ >
/ / / / / /
EFI Swiss Knife Um plugin IDA para melhorar a engenharia reversa de (U)EFI
Copyright (C) 2016, 2017 Pedro Vilaça (fG!) - [email protected] - https://reverse.put.as
Este é um plugin IDA para auxiliar na engenharia reversa de binários (U)EFI. É baseado no trabalho original de Snare - https://github.com/snare/ida-efiutils Como odeio Python, fiz algo novo em C adicionando alguns recursos extras que eu queria.
Testado com IDA 6.9/6.95 na versão Mac OS X.
Para compilar no OS X, use o Makefile ou o Projeto XCode.
Você precisará editar o projeto XCode e definir os caminhos para o SDK. (o padrão é /Applications/IDA Pro 6.95/idasdk695)
Você deve editar o config.h e modificar os caminhos de log e banco de dados.
Copie EFISwissKnife.pmc64 para /Applications/IDA Pro 6.95/idaq.app/Contents/MacOS/plugins/
Por padrão, ele compila o plugin apenas para a versão 64 bits do IDA. Se você quiser o plugin para a versão 32 bits, precisa editar o Projeto Xcode e alterar EA64=1 para 0.
Para chamá-lo a partir do IDA, use Shift+F2 e então
O plugin suporta modo batch caso você queira analisar em massa binários EFI e coletar algumas estatísticas sobre o uso de serviços.
Você provavelmente deseja atualizar os GUIDs disponíveis em efi_guids.h.
Este código tem como alvo binários EFI do Mac OS X. Deve funcionar com binários UEFI de outras plataformas sem problemas ou com pequenas modificações e atualizações.
Apenas binários PE são suportados; binários TE ainda não são suportados.
É isso! Aproveite :-)
fG!
v1.0 - Versão inicial
BUGS DO IDA: Outro bug está relacionado ao flag PLUGIN_UNL. Ele é usado para "descarregar o plugin imediatamente após chamar 'run'.". Se esta opção estiver definida, ela trava a versão Windows. A versão Mac parece lidar bem com isso.