À propos
Il s'agit d'un plugin IDA pour étendre les capacités de rétro-ingénierie UEFI. Basé sur ida-efitools avec un ensemble de correctifs et de nouvelles fonctionnalités.
Fonctionne avec Python 2 et Python 3. Prend en charge les versions obsolètes d'IDA Pro 7.x sans garantie.
Fonctionnalités
- Définition des GUID
- Propagation des structures (registres, xrefs, variables de pile)
- Identification des protocoles et interfaces
- Initialisation des protocoles inconnus
Fonctionnalités étendues
- Peut être utilisé comme plugin et comme script.
- Importe automatiquement les déclarations C personnalisées (structs, enums, unions, typedefs) depuis le répertoire
efitools2/types
- Définit les permissions du segment de code sur RWE (pour corriger l'élimination incorrecte du code mort dans la vue du décompilateur)
Fonctionnalités exclusives au plugin
- Offre la possibilité de synchroniser les types externes
- Affiche et copie dans le presse-papiers le EFI_GUID sélectionné depuis la vue du désassembleur
- Extrait EFI_GUID des affectations de variables locales
Remarques importantes
- behemoth.til est rejeté au profit de uefi.til et uefi64.til d'IDA
- Ne pas utiliser uefi(64).til d'IDA 7.3 car il contient des erreurs
Utilisation
Comme script
Exécutez simplement efitools2/efitools.py depuis IDA.
Comme plugin
Raccourcis clavier :
- Ctrl-Alt-E - fait toute la magie
- Ctrl-Alt-G (sur des données) - affiche et copie EFI_GUID à l'emplacement actuel du curseur
- Ctrl-Alt-G (sur du code) - extrait et copie EFI_GUID depuis l'affectation d'une variable locale (placez le curseur sur l'affectation
EFI_GUID.data1)
- F5 (sur la fenêtre Local Types) - synchronise les types locaux depuis le dossier
types
Ajustement
- Les raccourcis clavier peuvent être configurés dans le fichier
ida-efitool2.py.
- Quelques préférences se trouvent dans le fichier
efitools2/efitools.py.
- Les GUID personnalisés doivent être placés dans le fichier
efitools2/guids/custom.ini.
- Les protocoles personnalisés doivent être placés dans le dossier
efitools2/types. Consultez les exemples disponibles.
C'est une fonctionnalité intégrée d'IDA. Ouvrez simplement le menu contextuel du type dans la fenêtre Local Types et sélectionnez l'action « Export to header file ».
Prérequis
pip install future - Pour Python 2 uniquement.
pip install clipboard - Si vous souhaitez copier automatiquement le contenu EFI_GUID dans le presse-papiers.
Installation du plugin
Copiez simplement le fichier ida-efitools2.py et le dossier efitools2 dans le répertoire des plugins d'IDA.
Crédits
@snare pour le code source original de ida-efiutils.
@danse-macabre pour ida-efitools réécrit de zéro.
@djpohly, @al3xtjames, @vutung2311 pour leurs contributions (forks).
@p-state (moi) pour avoir insufflé une nouvelle vie à ce projet.