
Сниффер с малым количеством выводов для ICEStick, ориентированный на чипы TPM
Превращает плату ice40 stick в LPC-сниффер, регистрирующий только специфичные для TPM сообщения. Этот репозиторий является копией https://github.com/lynxis/lpc_sniffer/, с изменениями, позволяющими регистрировать только сообщения со стартовым полем 0101 и адресом между 24 и 27.
Этот проект использовался для извлечения ключей VMK BitLocker путём перехвата шины LPC, когда BitLocker был включён в конфигурации по умолчанию. Более подробная информация доступна в этом посте.
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
Для ориентации: USB-порт направлен на юг:
зелёный в середине: overflow_led
overflow_led загорается, когда внутренний буфер заполнен. Кадры LPC больше не декодируются.
LPC-сниффер будет выводить кадры во второй UART микросхемы FTDI со скоростью 921600 бод.
Код ошибки кодируется 4 битами.
Кадр LPC будет:
Внутренняя память используется как 48-битная адресуемая память. 48 бит — это ровно один кадр LPC.
LPC-сниффер использует внутренний буфер. Когда внутренний буфер заполнен, новые кадры будут отбрасываться. Зелёный светодиод в середине загорится. Внутренний буфер может сохранить до 2**10 кадров LPC (1024).