
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
방향 참고: USB 포트는 남쪽을 가리킵니다:
중간의 녹색: overflow_led
overflow_led는 내부 버퍼가 가득 찰 때 켜집니다. 더 이상 LPC 프레임이 디코딩되지 않습니다.
LPC 스니퍼는 921600 보드레이트로 FTDI의 두 번째 UART에 프레임을 출력합니다.
오류 코드는 4비트로 디코딩됩니다.
LPC 프레임은 다음 순서로 처리됩니다:
내부 메모리는 48비트 주소 지정 메모리로 사용됩니다. 48비트는 정확히 하나의 LPC 프레임입니다.
LPC 스니퍼는 내부 버퍼를 사용합니다. 내부 버퍼가 가득 차면 새 프레임은 폐기됩니다. 중간의 녹색 LED가 켜집니다. 내부 버퍼는 최대 2**10개의 LPC 프레임(1024개)을 저장할 수 있습니다.