Dans ce référentiel, vous trouverez les outils que nous avons développés au cours de nos recherches pour nous aider à insensé et à exploiter la mise en œuvre de TrustZone de Samsung, qui est basé sur un système d'exploitation de confiance appelé Kinibi.
Dans le dossier bindings/ , vous trouverez des liaisons Python pour la bibliothèque libMcClient.so qui est utilisée pour communiquer avec les applications de confiance et les pilotes sécurisés. Ils ont été développés parce que nous avons trouvé plus facile d'écrire nos exploits à Python, et ils se sont révélés particulièrement utiles pour les exercices donnés lors de nos séances de formation.
Dans l' emulator/ dossier, vous trouverez un script Python qui utilise le moteur de la licorne pour imiter un fiduciaire. Cet outil a été principalement utilisé pour tester nos exploits car il peut imprimer les instructions exécutées, enregistrer les valeurs et empiler le contenu.
Dans le dossier fuzzer/ , vous trouverez un script Python qui utilise le projet afl-unicorn dans Fuzz Trustlets. Il est fortement basé sur l'émulateur. Vous devrez implémenter plus de TLAPIS / DRAPIS si vous avez l'intention de faire du fuzzing sérieux.
Dans les scripts/ dossier, vous trouverez diverses choses:
mclf_loader , un chargeur pour les binaires de fiducie à l'aide du format de fichier MCLFtbase_loader , un chargeur qui extrait les différents composants d'une image SBOOTfind_symbols , un script qui trouve et renommée les différents talons Tlapis / Drapis dans les fiduciesfind_symbols_mclib , un script qui trouve et renommée les différentes fonctions Tlapis / Drapis au sein du mclibLes scripts sont disponibles à la fois pour IDA Pro et Ghidra, car nous voulions que nos stagiaires puissent utiliser un SRE gratuit.
Dans le dossier tainting/ , vous trouverez un script Python qui utilise Manticore pour trouver des vulnérabilités dans les fiducies en utilisant l'exécution symbolique. Ce n'était qu'une expérience, donc le script est vraiment basique.