
ICEStick用の低ピン数スニファー - TPMチップを対象
ice40 スティックを LPC スニファに変え、TPM 固有のメッセージのみを記録します。このリポジトリは https://github.com/lynxis/lpc_sniffer/ の複製で、開始フィールドが 0101 でアドレスが 24 から 27 の間のメッセージのみを記録するように変更されています。
このプロジェクトは、BitLocker が既定の構成で有効になっているときに LPC バスをスニッフィングして、BitLocker の VMK キーを抽出するために使用されました。詳細は こちらの記事 で確認できます。
iceprog lpc_sniffer.bin で lpc_sniffer.bin を ice40 に書き込みますmake 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
For orientation: the usb port points south:
green in the middle: overflow_led
内部バッファがいっぱいになると overflow_led が点灯します。LPC フレームはそれ以上デコードされません。
LPC スニファは、フレームを FTDI の 2番目 の UART に 921600 ボーで書き出します。
エラーコードは4ビットでデコードされます。
LPC フレームは:
内部メモリは48ビットアドレス指定可能なメモリとして使用されます。 48ビットはちょうど1つの LPC フレームです。
LPC スニファは内部バッファを使用しています。内部バッファ がいっぱいになると、新しいフレームは破棄されます。中央の緑色の LED が点灯します。 内部バッファには最大 2**10 個の LPC フレーム (1024) を保存できます。