Les scripts, les outils et les informations pour aider à la plate-forme de bande de base cellulaire Exynos de Samsung de Samsung, Samsung, le nom de code Shannon. Ces outils ont été publiés pour le discours "Imilant la bande de base de Samsung pour les tests de sécurité" chez Black Hat USA'2020, le 5 août.
reversing/ghidra/ShannonLoader Une extension Ghidra pour le chargement modem.bin binaires de presque tous les modems connus à ce jour. Toutes les images de firmware de https://github.com/grant-h/shannonfirmware sont chargées pendant les tests CI pour le chargeur pour assurer sa compatibilité.
reversing/ghidra/scriptsScripts Python post-chargement Ghidra qui aident à annoter les images de modem Shannon. Cela comprend la récupération des chaînes de débogage et les fonctions de dénonce automatique. Utilisez après le chargement avec Shannonloader.
reversing/modem Script d'extraction Raw modem.bin en sous-parties et autres au fur et à mesure qu'ils sont développés.
reversing/btlScripts et informations pour analyser les fichiers de journal de trace (BTL). Ceux-ci sont inclus pendant les accidents / vidages du modem ou via la fonctionnalité "CP RAM Logging". Ce sont des fichiers journaux compressés à partir du modem en cours d'exécution réel.
firmware/Informations sur l'acquisition du micrologiciel et certains vidages de données extraits.
Voici un tutoriel rapide pour commencer à inverser ce firmware avec Ghidra.
modem.bin . Assurez-vous de se débrouiller le binaire s'il est comprimé.ShannonLoader.zip qui se trouve dans la dernière balise de versionmodem.bin . Vous devriez voir que le chargeur de ce fichier est automatiquement sélectionné comme "Samsung Shannon Modem Binary". Si vous ne voyez pas cela, assurez-vous que vous avez chargé le bon fichier et installé correctement l'extension. Ouvrez la console de débogage Ghidra (en bas à droite sur l'écran de Splash) pour vérifier s'il y a des erreurs.ShannonTraceEntry.py python de Script Manager dans la catégorie "Shannon". Assurez-vous de placer les scripts dans votre répertoire de la maison utilisateur à ~/ghidra_scripts (Linux) ou ajoutez-leur le chemin dans le gestionnaire. Ce script identifiera toutes les informations de débogage de trace avant l'analyse et évitera les données de diassemble.log_printf , conduisant à un démontage brisé dans tout le binaire. Si vous ne décochez pas cela, vous devrez redémarrer votre importation à partir de zéro.ShannonRename.py . Cela vous aidera à naviguer dans le binaire, mais n'oubliez pas que les noms sont déterminés heuristiquement, donc la qualité peut varier. Les fonctions avec le même nom deviné auront un préfixe numérique annexé.Si vous voulez un rapide coup d'œil, nous avons exporté un projet Ghidra pour une image de modem 2017.
La licence du référentiel est le MIT. Remarque: La licence de niveau supérieur couvre uniquement les fichiers qui contiennent explicitement les marques SPDX, pas l'ensemble du référentiel. Pour d'autres fichiers, ils peuvent ne pas être licenciables (par exemple, les vidages binaires, le micrologiciel) ou peuvent contenir d'autres licences permissives.