
Un renifleur à faible nombre de broches pour ICEStick - ciblant les puces TPM
Transformez la ice40 stick en un sniffeur LPC, ne journalisant que les messages spécifiques TPM. Ce dépôt est un duplicata de https://github.com/lynxis/lpc_sniffer/, avec des modifications pour ne journaliser que les messages dont le champ de début est 0101 et l'adresse comprise entre 24 et 27.
Ce projet a été utilisé pour extraire les clés VMK de BitLocker en sniffant le bus LPC lorsque BitLocker était activé dans sa configuration par défaut. Plus d'informations sont disponibles dans cet article.
iceprog lpc_sniffer.binmake install./parse/read_serial.py /dev/ttyUSB1 | tee outlog VCC 3.3|NC 1
GND 2
lpc_clock 3
lpc_ad[0] 4
lpc_ad[1] 5
lpc_ad[2] 6
lpc_ad[3] 7
lpc_frame 8
lpc_reset 9
Pour l'orientation : le port USB pointe vers le sud :
vert au milieu : overflow_led
overflow_led lorsque le tampon interne est plein. Plus aucune trame LPC n'est décodée.
Le sniffeur LPC écrira les trames sur le deuxième UART du FTDI à 921600 bauds.
Un code d'erreur est décodé sur 4 bits
Une trame LPC va :
La mémoire interne est utilisée comme mémoire adressable sur 48 bits. 48 bits correspondent exactement à une trame LPC.
Le sniffeur LPC utilise un tampon interne. Lorsque le tampon interne est plein, les nouvelles trames sont ignorées. La LED verte au milieu s'allume. Le tampon interne peut sauvegarder jusqu'à 2**10 trames LPC (1024).