
Ein Low-Pin-Count-Sniffer für ICEStick – ausgerichtet auf TPM-Chips
Verwandle den Ice40-Stick in einen LPC-Sniffer, der nur TPM-spezifische Nachrichten protokolliert. Dieses Repository ist ein Duplikat von https://github.com/lynxis/lpc_sniffer/, mit Änderungen, um nur Nachrichten mit Startfeld 0101 und Adresse zwischen 24 und 27 zu protokollieren.
Dieses Projekt wurde verwendet, um BitLocker-VMK-Schlüssel zu extrahieren, indem der LPC-Bus belauscht wurde, wenn BitLocker in seiner Standardkonfiguration aktiviert war. Weitere Informationen gibt es in diesem Beitrag.
lpc_sniffer.bin mit iceprog lpc_sniffer.bin auf deinen Ice40 programmierenmake install ersetzt werden./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
Zur Orientierung: Der USB-Anschluss zeigt nach Süden:
grün in der Mitte: overflow_led
overflow_led, wenn der interne Puffer voll ist. Es werden keine weiteren LPC-Frames dekodiert.
Der LPC-Sniffer schreibt Frames auf den zweiten UART des FTDI mit 921600 Baud.
Ein Fehlercode wird in 4 Bits dekodiert
Ein LPC-Frame wird:
Der interne Speicher wird als 48-Bit adressierbarer Speicher verwendet. 48 Bit entsprechen genau einem LPC-Frame
Der LPC-Sniffer verwendet einen internen Puffer. Wenn der interne Puffer voll ist, werden neue Frames verworfen. Die grüne LED in der Mitte leuchtet auf. Der interne Puffer kann bis zu 2**10 LPC-Frames (1024) speichern.