In diesem Repository finden Sie die Tools, die wir während unserer Forschung entwickelt haben, um uns zu unterstützen, um den Ingenieur umzukehren und Samsung durch die Implementierung von TrustZone zu nutzen, die auf einem vertrauenswürdigen Betriebssystem namens Kinibi basiert.
In den bindings/ in den Ordner finden Sie Python -Bindungen für die Bibliothek libMcClient.so so, dass Sie mit vertrauenswürdigen Anwendungen und sicheren Treibern kommunizieren. Sie wurden entwickelt, weil wir es einfacher fanden, unsere Heldentaten in Python zu schreiben, und sie erwiesen sich als besonders nützlich für die während unserer Trainingseinheiten gegebenen Übungen.
Im emulator/ Ordner finden Sie ein Python -Skript, das die Unicorn -Engine verwendet, um ein Trustlet nachzuahmen. Dieses Tool wurde hauptsächlich verwendet, um unsere Exploits zu testen, da es die ausgeführten Anweisungen drucken, Werte registrieren und Inhalte stapeln kann.
Im fuzzer/ Ordner finden Sie ein Python-Skript, das das afl-unicorn -Projekt an Fuzz Trustlets verwendet. Es basiert stark auf dem Emulator. Sie müssen mehr TLAPIS/DRAPIS implementieren, wenn Sie ein ernstes Fuzzing durchführen möchten.
In den scripts/ im Ordner finden Sie verschiedene Dinge:
mclf_loader , ein Loader für Trustlet -Binärdateien mit dem MCLF -Dateiformattbase_loader , ein Loader, der die verschiedenen Komponenten eines SBOOT -Bildes extrahiertfind_symbols , ein Skript, das die verschiedenen Tlapis/Drapis -Stubs in Trustlets findet und umbenannt wirdfind_symbols_mclib , ein Skript, das die verschiedenen TLAPIS/DRAPIS -Funktionen innerhalb des MCLIB findet und umbenanntDie Skripte sind sowohl für IDA Pro als auch für Ghidra verfügbar, da wir wollten, dass unsere Auszubildenden eine kostenlose SRE verwenden können.
Im tainting/ Ordner finden Sie ein Python -Skript, das Manticore nutzt, um Schwachstellen in Trustlets mit symbolischer Ausführung zu finden. Dies war nur ein Experiment, also ist das Skript wirklich grundlegend.