En este repositorio, encontrará las herramientas que hemos desarrollado durante nuestra investigación para ayudarnos a ingeniería inversa y también explotar la implementación de Samsung de Trustzone, que se basa en un sistema operativo de confianza llamado Kinibi.
En la carpeta bindings/ encontrará enlaces de Python para el libMcClient.so . Fueron desarrollados porque nos pareció más fácil escribir nuestras hazañas en Python, y demostraron ser especialmente útiles para los ejercicios dados durante nuestras sesiones de entrenamiento.
En el emulator/ carpeta, encontrará un script de Python que utiliza el motor de unicornio para emular un Trustlet. Esta herramienta se utilizó principalmente para probar nuestras exploits, ya que puede imprimir las instrucciones ejecutadas, registrar valores y contenido de apilamiento.
En el fuzzer/ carpeta, encontrará un script de Python que utiliza el proyecto afl-unicorn para Fuzz Trustlets. Se basa en gran medida en el emulador. Deberá implementar más TLAPIS/DRAPIS si tiene la intención de hacer algunos confusos serios.
En los scripts/ carpeta, encontrará varias cosas:
mclf_loader , un cargador para binarios de confianza de confianza utilizando el formato de archivo MCLFtbase_loader , un cargador que extrae los diversos componentes de una imagen de Sbootfind_symbols , un script que encuentra y renombra los diversos talones de Tlapis/Drapis dentro de Trustletsfind_symbols_mclib , un script que encuentra y renombra las diversas funciones TLAPIS/DRAPIS dentro del MCLIBLos guiones están disponibles tanto para Ida Pro como para Ghidra, ya que queríamos que nuestros alumnos pudieran usar un SRE gratuito.
En la carpeta tainting/ , encontrará un script de Python que utiliza Manticore para encontrar vulnerabilidades en Trustlets utilizando la ejecución simbólica. Esto fue solo un experimento, por lo que el script es realmente básico.