E01 디스크 이미지에서 LLM 애플리케이션(ChatGPT, Claude, LM Studio, Jan, 미정의 LLM 등의 실행 흔적 / 사용자 정보 / 프롬프트 / 파일 업로드 / 네트워크 아티팩트를 자동으로 수집하여 결과 폴더로 정리합니다.
dfVFS를 통해 E01 이미지를 읽고, 앱별 경로 패턴(artifacts.json) 또는 휴리스틱 패턴을 재귀적으로 탐색합니다.
- 세 가지 콘솔 출력 모드
- 기본(default): 핵심 진행 메시지만 간결히 표시
- 컬러(-c): 컬러 하이라이트 적용
- 자세히(-v): 헤더/카테고리 요약/최종 테이블 등 상세 정보 복원
- 포렌식 로깅
- 소스 이미지 SHA‑256, 도구 버전, 실행 컨텍스트, 성공/실패 카운트, 소요 시간 포함
extraction_report.txt파일로 상세 경로/에러 로그 기록
- 휴리스틱 모드 지원
- 정의되지 않은 LLM 이름을 입력해도 모드(
api/standalone)에 맞춘 기본 경로 패턴으로 탐색
- 정의되지 않은 LLM 이름을 입력해도 모드(
- 카테고리 기반 수집
Program_Execution_Traces,User_Info,Prompt(+File_Uploads),Network등 카테고리별 폴더 구성
세부 경로 패턴은 **
artifacts.json**을 참고하세요.
- MODE = api:
CHATGPT,CLAUDE - MODE = standalone:
LMSTUDIO,JAN - 그 외 LLM: 위 2가지 모드 중 하나를 선택하여 휴리스틱 모드로 수집 가능
- Python: 3.9 이상
- 필수 패키지:
dfvfs,pytsk3,libewf-python,rich - 네이티브 라이브러리
- Ubuntu/WSL:
libtsk-dev,libewf-dev,libbde-dev,libfsntfs-dev,build-essential,python3-dev - Windows: WSL(우분투) 사용 권장
- macOS(Homebrew):
sleuthkit,libewf,pkg-config
- Ubuntu/WSL:
git clone https://github.com/forensicbread/WHS_extract_llm.git
cd WHS_extract_llm# PowerShell(관리자)
wsl --install -d Ubuntu
# 재부팅 후 WSL(“Ubuntu”) 실행
# (WSL) 리포지토리로 이동
cd "<YOUR_PATH_TO_WHS_extract_llm>"
# (WSL) 스크립트 권한 및 실행
chmod +x setup_wsl.sh
sed -i 's/\r$//' setup_wsl.sh && bash ./setup_wsl.sh
# (WSL) 가상환경 활성화
source ~/venvs/whs-windows/bin/activate
# (WSL) 실행 예시
python -m extract_llm ./E01/CLAUDE.E01 api CLAUDE ./result
# 또는
python ./extract_llm/cli.py ./E01/CLAUDE.E01 api CLAUDE ./result# (WSL) 네이티브 라이브러리 설치
sudo apt update
sudo apt install -y python3-venv python3-dev build-essential libtsk-dev libewf-dev libbde-dev libfsntfs-dev
# (WSL) 가상환경 생성/활성화
mkdir -p ~/venvs
python3 -m venv --prompt whs-windows ~/venvs/whs-windows
source ~/venvs/whs-windows/bin/activate
# (WSL) 파이썬 의존성
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt
# (WSL) 실행 예시
python -m extract_llm ./E01/CLAUDE.E01 api CLAUDE ./result
# 또는
python ./extract_llm/cli.py ./E01/CLAUDE.E01 api CLAUDE ./resultcd "<YOUR_PATH_TO_WHS_extract_llm>"
chmod +x setup_macos.sh
./setup_macos.sh
# 설치 완료 후
source .venv-macos/bin/activate
# 실행 예시
python -m extract_llm ./E01/CLAUDE.E01 api CLAUDE ./result
# 또는
python ./extract_llm/cli.py ./E01/CLAUDE.E01 api CLAUDE ./resultpython -m extract_llm <E01_IMAGE> <MODE> <LLM_NAME> <OUTPUT_DIR> [옵션]MODE:api|standaloneLLM_NAME:CHATGPT|CLAUDE|LMSTUDIO|JAN| (그 외 문자열은 휴리스틱 모드)OUTPUT_DIR: 결과 저장 폴더(없으면 자동 생성)
-c, --color: 컬러 출력-v, --verbose: 상세 모드(헤더/카테고리 요약/최종 테이블)--hash: 소스 E01 이미지 SHA-256 계산 및 로그 기록(기본 미계산)-p, --no-keep-plus: 카테고리 폴더명에서+→_치환-s, --no-final-summary: 마지막 요약 메시지 생략
# 최소 출력
python -m extract_llm ./E01/CHATGPT.E01 api CHATGPT ./result
# 컬러 활성화
python -m extract_llm ./E01/CHATGPT.E01 api CHATGPT ./result -c
# 상세 모드(헤더/요약/테이블)
python -m extract_llm ./E01/CLAUDE.E01 api CLAUDE ./result -v
# SHA-256 계산 및 로그 기록
python -m extract_llm ./E01/CLAUDE.E01 api CLAUDE ./result -hash
# 카테고리명에서 '+'를 '_'로 치환
python -m extract_llm ./E01/LMSTUDIO.E01 standalone LMSTUDIO ./result -p./result/<LLM_NAME>/<카테고리>/...: 추출된 파일/디렉터리./result/<LLM_NAME>/extraction_report.txt: 실행 컨텍스트 + 상세 경로/에러 로그- 이미지 파일명/경로, SHA‑256(선택), LLM 타깃/모드, 명령줄, 타임스탬프
- 카테고리별 성공/실패 카운트, 전체 소요 시간
상세 모드(-v)에서 카테고리별 추출/실패 카운트 테이블 및 최종 요약 메시지를 화면에 표시합니다.
- 이미지 파티션 탐색:
/p1…/p10에서 NTFS +Windows폴더 존재 파티션 자동 탐지 - 경로 정규화/와일드카드 매칭:
\→/변환, 대소문자 무시,*패턴 처리 - 카테고리별 재귀 수집:
Program_Execution_Traces,User_Info,Prompt(+File_Uploads),Network등 - 부분 추출: 필요 시
extract_files키(Cookies,Network Persistent State등)만 선별 추출 - 로그/요약 출력: 성공/실패 분리 기록 및
extraction_report.txt저장