posted by 블르샤이닝 2024. 3. 30. 10:12
728x90

전부터 카카오톡 포렌식이 궁금했다. 왜? 다른사람이 성공했으니...나도 하고 싶어서....그래서 리버싱을 하려고 했는데....다 죽던데 어떻게 한거지..뭐로 우회한거지....커널디버깅으로 했나...

 

많은 생각을 하고 있던 차에 아래 블로그를 발견해서 오호!!!우선 소스코드 받아서 어떻게 동작하는 구조인지를 보고, 그다음에는 진짜 커널디버깅이라도 해봐야하나 생각중

 

https://present4n6.tistory.com/84

 

카카오톡 복호화 (KakaoTalk.db decrypt)

1. 카카오톡 복호화 이번 2021 KDFS DFC 문제에 카카오톡 대화내역을 분석해야 할 일이 있어서 찾은 카카오톡 데이터 복호화 방법과 관련해서 포스팅 해보겠습니다. 카카오톡의 대화내역 암호화 방

present4n6.tistory.com

 

 

https://github.com/jiru/kakaodecrypt

 

GitHub - jiru/kakaodecrypt: Decrypt chat history from the local database of Kakaotalk’s Android app

Decrypt chat history from the local database of Kakaotalk’s Android app - jiru/kakaodecrypt

github.com

 

 

728x90
posted by 블르샤이닝 2023. 10. 26. 20:40
728x90

https://imazing.com/ko/converter/download

 

Mac 및 PC용 iMazing Converter 다운로드 하기

HEIC을 JPEG로 전환하는 최고의 솔루션, iMazing Converter 다운로드.

imazing.com

 

이거 무료인데 좋아요~

728x90
posted by 블르샤이닝 2023. 10. 24. 08:27
728x90

출처 : http://forensic-proof.com/  

(김진국강사님의 디지털포렌식 강의을 듣고 정리한 내용입니다.)

 

 

1. 프리패치

 

  · 목적 : 하드디스크의 속도 때문에 초기 참조하는 파일의 순서를 저장해서 부팅시 빠르게 로드할 수 있도록 함.

  · 윈도우 프리패칭 (Windows Prefetching)

 - 실행 파일이 사용하는 시스템 자원 정보를 특정 파일에 저장  프리패치 파일

 - 윈도우 부팅 시 프리패치 파일을 모두 메모리에 로드

 - 사용자가 파일을 실행할 경우 미리 저장된 정보를 이용해 초기 실행 속도 향상

 - 윈도우 XP 이후 (2003, Vista, 2008, 7, 8, 10)의 운영체제에서 제공

  · 프리패칭 유형

 - 부트 프리패칭 (Boot Prefetching) : XP, 2003, Vista 2008, 7

   - 부팅을 빠르게 하도록 하는 파일

 - 응용프로그램 프리패칭 (Application Prefetching) : XP, Vista, 7, 8, 10

 

1.1. 경로

  · SystemRoot%\Prefetch

 - 부트 프리패치 : NTOSBOOT-B00DFAAD.pf

 - 응용프로그램 프리패치 : <filename>-<filepath hash>.pf

  · 이 경로에 들어가면 db파일도 있는데 이 것은 프리패치파일을 메모리에 올렸는데 안 쓸경우 페이지 파일로 내리니까 그것을 막기 위한 파일이다.

 

1.2. 부트프리패칭

  · 부팅과 관련된 파일이 저장장치에 흩어져 있거나 단편화되어 있음 -> 부팅 속도 저하

프리패처에 의해 시스템 부팅 시 최대 120초 까지 모니터링

  · 부팅 시 사용하는 파일을 모니터링한 후 결과를 파일에 저장

  · 프리패칭된 파일을 이용하여 부팅 속도 향상

 

1.3. 응용 프로그램 프리패칭

  · 응용프로그램 초기 실행 시 캐시 관리자가 처음 10초를 모니터링

  · 10초 동안 사용한 파일을 모니터링한 후 결과를 파일로 저장

  · 프리패칭된 응용프로그램 다시 실행 시, 프리패치 파일을 이용해 초기 실행 속도 향상

  · 파일 개수는 최대 128개로 제한 -> 한계치를 넘으면 사용되지 않는 파일부터 자동 삭제

 

1.4. 획득가능한 정보

  · 응용프로그램 이름

  · 응용프로그램 실행 횟수

  · 응용프로그램 마지막 실행 시각 (FILETIME, 64-Bit Timestmamp)

  · 참조 목록 (실행 시 필요한 DLL, SDB, NLS, INI 등의 경로)

  · 파일 시스템 시간 정보 (생성, 수정, 접근 시간)을 이용한 통합 분석

 

1.5. 프리패치 활용

  · 악성코드가 실행될 경우, 프리패치 파일 자동 생성

  · 부트 프리패치 파일을 이용해, 부팅 시 로드되는 악성코드 탐지 가능

  · 참조 목록을 통해, 로드한 라이브러리, 파일 목록 확인 가능

 

 

2. 로그파일

 

  · 파일시스템의 I/O 혹은 트랜잭션에 대한 로그

  · NTFS 파일시스템 로그

 - %SystemDrive%\$LogFile

 - %SystemDrive%\$Extend\$UsnJrnl:$J

  · 파일시스템 로그의 장점

 - 특정 기간 동안 일어난 상세한 파일시스템 이벤트 분석 가능

 - 삭제된 파일의 흔적 추적 가능

 

2.1. $LogFile

  · 트랜잭션 로그 파일

 - 시스템 비정상 동작을 대비하기 위한 트랜잭션 로그

 - 파일 생성, 삭제, 수정, 파일명 변경, 이동 등의 행위 파악 가능

  · 트랜잭션 단위의 로그 기록

 - 파일/디렉터리 생성

 - 파일/디렉터리 삭제

 - 파일/디렉터리 변경

 - MFT 레코드 변경

  · 일반적으로 64MB 크기

  · PC의 일반적 작업이라면 2~3시간 정도의 로그가 보관

 

2.2. $UsnJrnl

  · NTFS 변경 로그

 - 파일이나 디렉터리의 변경 내용 기록

 - 윈도우 7부터 기본 활성화

  · 로그에 기록되는 정보

 - 변경된 시간

 - 변경 이유

 - 파일/디렉터리의 이름

 - 파일/디렉터리의 속성

 - 파일/디렉터리의 MFT 레코드 번호

 - 파일의 부모 디렉터리에 대한 파일 참조 주소

 - 보안 ID (Security ID)

 - 레코드의 USN (Update Sequence Number)

  · 컴퓨터를 계속 사용할 경우, 보통 1~2일의 로그 저장

  · 하루 8시간 정도 사용할 경우, 보통 4~5일의 로그 저장

  · $MAX

-변경 로그에 대한 메타데이터

  · $J

-실제 변경 레코드

 

2.3. 필기

  · $Logfile은 보통 2시간정도만 기록한다. 이것은 롤백을 위한 용도이다.. 하지만 $UsnJrnl은 단순 히 기록하는 것이기 때문에 매우 도움이 된다.

  · 경로에 들어가면 ADS 속성( 스트림이 2개이다..)

  · 추가 스트림으로 $J인데 winhex로보면 왼쪽 아이콘에 ... 모양이 있다. 이것이 ADS 속성이라는의미이다. 이것을 더블클릭하면 $j는 2기가이다..원래는 32메가 만 쓴느건데..앞에가 다 ㅇ으로채워져있다. 이것또한 윈헥스에 (스파스)라고 표시되어있다. 그냥 다 가져온다.

Sqlite도구를 쓴다음 select EventTime, Event, Detail, FullPath From LogFile을 친다.

  · Detail에서 클러스터 넘버를 쓰면 (24) <--이런식으로써져있는데 이것은 결구 24개의 클러스터를 쓴다는 의미..파일의 크기를 추정해볼 수 있다.

  · select TimeStamp, Event, FullPath From USNJRNL 

where Event like %file_Deleted%' 이렇게하면 삭제된파일만나온다.

where FullPath like '%Desktop%' 하면 바탕화면만나온다.

where TimeStamp like '%2014-11-27 13:%' 이러면 이날 이후로만나옴

where TimeStamp >'2014-11-27' and TimeStamp < '2014-11-28'

 

 

3. 바로가기

 

  · 링크 파일(LNK)이라고도 불리며 영문 명칭은 “Windows Shortcut”, “Shell Link” 윈도우에만 존재하는 기능으로 파일, 디렉터리 등 객체를 참조하는 파일 

  · 커맨드라인이 아닌 GUI에서만 동작 

  · .lnk 확장자를 가짐

 

3.1. 저장위치

  · 메뉴

 - %UserProfile%\AppData\Roaming\Microsoft\Windows\Start Menu

  · 바탕화면

 - %UserProfile%\Desktop

  · 사용자의 내 음악(My Music), 내 그림(My Pictures), 내 비디오(My Videos) 폴더

 - %UserProfile%  “%SystemDrive%\Users\Public” 하위 폴더 링크

  · Send To 폴더

 - %UserProfile% \AppData\Roaming\Microsoft\Windows\SendTo

  · 빠른 실행 (Quick Launch) 폴더

 - %UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch

  · 최근 문서 (Recent)

 - %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent

  · 응용프로그램 최근 문서 (순서는 레지스트리 MRU에 저장)

 - MS Office: %UserProfile%\AppData\Roaming\Microsoft\Office\Recent

 - Hangul: %UserProfile%\AppData\Roaming\HNC\Office\Recent

 

3.2. 파일 구조 정보

  · SHELL_LINK_HEADER

 - 링크 대상 파일의 속성 (읽기 전용, 숨긴 파일, 시스템, 볼륨 레이블, 암호화, 압축 등)

 - 링크 대상 파일의 생성, 수정, 접근 시간, 크기

  · LINKINFO

 - 링크 대상 파일의 크기

 - 링크 대상 파일이 위치한 드라이브 형식

 - 링크 대상 파일이 위치한 드라이브 시리얼 번호

 - 링크 대상 파일의 경로  외장저장장치 흔적

  · EXTRA_DATA

 - NetBIOS 이름

 - MAC 주소

 

3.3. 바로가기파일활용

  · 자동 생성된 바로가기 파일을 이용해 폴더나 파일의 실행 흔적 분석

  · 링크 대상의 위치를 이용해 외장저장장치를 이용한 데이터 이동 흔적 분석

  · 애플리케이션 취약점을 악용하는 악성코드일 경우, 실행 흔적 분석

  · 바로가기 파일 자체로 침해를 확인하기는 어렵기 때문에 타임라인 분석과 연계 분석

 

 

4. 점프목록

 

  · 윈도우 7부터 새롭게 추가된 응용프로그램 사용 로그로 기본 활성화

  · 모든 응용프로그램에 대한 접근 이력 보관

 

4.1경로

  · %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\

  · AutomaticDestinations 폴더

  · 운영체제가 자동으로 남기는 항목

최근 사용한 목록(Recent)이나 자주 사용되는 목록(Frequent)

  · CustomDestinations 폴더

  · 응용프로그램이 자체적으로 관리하는 항목

작업(Task) 목록

  · 점프목록 파일명

  · 각 응용프로그램 별로 고유한 16자리 사용

 

4.2. 포렌식적 의미 

  · 복합문서 구조의 스트림에 바로가기 파일 형식으로 점프목록 저장

  · 바로가기 파일에서 획득 가능한 모든 정보

 - 링크 대상의 속성, 크기, 경로, (생성, 수정, 접근) 시간

 - 링크 대상이 위치한 곳의 드라이브의 형식, 시리얼 번호, NetBIOS 이름, MAC 주소

 - OLE Header + Jump List Item(LNK) + ... + Jump List Item(LNK) + Dest List 구조로 되어있다.

 - Jump List Item(LNK) 에는 실제 파일의 경로 담겨있다.

 

4.3. 점프목록 활용

  · 윈도우 7 기본 활성화

  · 최근 접근 문서(Recent)나 UserAssist 키보다 더 많은 정보 포함

  · 사용자가 직접 삭제하지 않는 이상 운영체제 설치 시부터 지속적으로 로그 저장

  · 악성 파일 실행 흔적

  · 외장저장장치 파일 열람 흔적

  · 웹 사이트 접속 이력

 

 

5. 레지스트리

 

  · 윈도우 운영체제에서 운영체제와 응용프로그램 운영에 필요한 정보를 저장하기 위해 고안한 계층형 데이터베이스 (http://support.microsoft.com/kb/256986)

  · 부팅 과정부터 로그인, 서비스 실행, 응용프로그램 실행, 사용자 행위 등 모든 활동에 관여함

  · 윈도우 3.11, 9x, Me, NT, 2000, XP, 2003, Vista, 2008, 7, 2012, 8 에서 사용

 

5.1. 필요성

  · 윈도우 시스템 분석의 필수 요소

 - 운영체제 정보, 사용자 계정 정보, 시스템 정보, 응용프로그램 실행 흔적, 최근 접근

  · 문서 등

 - 자동 실행 항목(Autoruns), 악성코드 탐지, 저장장치 연결 흔적 등

  · 사용자/시스템/저장매체 사용 흔적 분석, 추가적인 포렌식 분석 대상 선별

 

5.2. 구조

  · “CURRENT”가 들어가는 루트키는 메모리에서만 유지

  · “CLASSES_ROOT”도 타 루트키가 링크된 가상 공간

  · 실제 하이브 파일로 존재하는 루트키

 - HKEY_USERS : Default, NTUSER.DAT

 - HKEY_LOCAL_MACHINE : SAM, SECURITY, SYSTEM, SOFTWARE 

 

 

 

 레지스트리 경로   하이브 파일 경로 
 HKEY_LOCAL_MACHINE\BCD00000000  {Boot Partition}\Boot\BCD  
 HEKY_LOCAL_MACHINE\COMPONETS  %SystemRoot%\System32\Config\COMPONETS
 HEKY_LOCAL_MACHINE\SYSTEM  %SystemRoot%\System32\Config\SYSTEM
 HEKY_LOCAL_MACHINE\SAM  %SystemRoot%\System32\Config\SAM 
 HEKY_LOCAL_MACHINE\SECURITY

 %SystemRoot%\System32\Config\SECURITY
 HEKY_LOCAL_MACHINE\SOFTWARE

 %SystemRoot%\System32\Config\SOFTWARE
 HEKY_LOCAL_MACHINE\HARDWARE 

 메모리에 존재
 HKEY_USER\<로컬 서비스 계정 SID>  %SystemRoot%\ServiceProfiles\LocalService\NTUSER.DAT  


 HKEY_USER\<네트워크 서비스 계정 SID>
 %SystemRoot%\ServiceProfiles\NetworkService\NTUSER.DAT
 HKEY_USER\<username SID>   %UserProfile%\NTUSER.DAT


 HKEY_USER\<username SID>_Classes
 %UserProfile%AppData\Local\Microsoft\Windows\Usrclass.dat
 HKEY_USER\.DEFAULT  %SystemRoot%\System32\Config\DEFAULT
 HKEY_USER\systemprofile  %SystemRoot%\System32\Config\systemprofile\NTUSER.DAT  

 

 

 루트키  약어   설명
HKEY_CLASSES_ROOT  HKCR  HKLM\SOFTWARE\Classes 및 HKU\<SID>\Classes
KKEY_CURRENT_USER  HCKU  HKU 중 현재 로그인한 사용자의 하위키
HKEY_LOCAL_MACHINE  HKLM  시스템에 존재하는 하이브 파일과 메모리 하이브
HKEY_USERS  HKU  사용자 루트 폴더에 있는 NTUSER.DAT
HKEY_CURRENT_CONFIG  HKCC  HKLM_SYSTEM\CurrentControlSet\Hardware Profile\ Current
HKEY_PERFORMANCE_DATA  HKPD  성능카운트(레지스트리 함수로만 접근가능, 편집기불가)

 

5.3. 백업과 로그

  · 레지스트리 파일 백업

 - %SystemRoot%\System32\config\RegBack\

  · 레지스트리 로그

 - %SystemRoot%\System32\config\[hive name].LOG

 - %SystemRoot%\System32\config\[hive name].LOG1

 - %SystemRoot%\System32\config\[hive name].LOG2

 

5.4. 볼륨 섀도 복사본

  · 비스타 이후부터는 시스템 복원 지점을 위해 VSS 사용

  · 특정 시점에 파일, 폴더에 대한 스냅샷 저장

  · \System Volume Information\

 

5.5. 침해 아티팩트

  · UserAssist

  · NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\

  · 응용프로그램 사용 로그 – 응용프로그램 종류, 최종 실행 시각, 실행 횟수 등 확인 가능

  · http://www.symantec.com/connect/forums/system-tool-malware-or-spyware

  · MUICache

  · UsrClass.dat\Software\Classes\LocalSettings\MuiCache\

  · MUI (Multilingual User Interface) 다중 언어 지원을 위해 프로그램 이름 캐시

  · 새로운 프로그램 실행 시, 자동으로 리소스 영역에서 프로그램 이름을 추출하여 저장

  · LEGACY_*

  · HKLM\System\ControlSet00#\Enum\Root\

  · 악성코드가 직접 생성하기 보다는 실행 시 운영체제에 의해 생성되는 키

윈도우 서비스로 동작하는 악성코드 정보

  · 레지스트리 키 마지막 수정 시간은 악성 서비스의 처음 실행 시간

  · Tracing

  · HKLM\SOFTWARE\Microsoft\Tracing

  · 라우팅 및 원격 액세스(Routing and Remote Access) 서비스가 기록하는 추적정보

  · 복잡한 네트워크 장애를 해결할 목적으로 저장

 

 

6. AV로그

 

6.1. 안랩

  · 로그 -> (텍스트 인코딩 | 바이너리)

 - %SystemDrive%\Program Files\AhnLab\[ProductName]\log

  · 검역소 -> 바이너리

 - %SystemDrive%\Program Files\AhnLab\[ProductName]\Quarantine

  · 내보내기 기능을 이용해 텍스트로 저장

6.2. 이스트소프트 알약

  · 로그 -> 바이너리(바이너리로 되어있기 때문에 알아볼 수 없다)

 - %SystemDrive%\ProgramData\ESTSoft\AlYac\log

  · 검역소 -> 바이너리

 - %SystemDrive%\ProgramData\ESTSoft\AlYac\quarantine

 

6.3. 윈도우 디펜더

  · 로그 -> 이벤트 로그와 통합 (윈도우 이벤트와 통합했기 때문에 알아보기 쉽다)

  · 검역소 -> 바이너리

 - %SystemDrive%\ProgramData\Microsoft\Windows Defender\Quarantine

 

6.4. 시만텍 엔드포인트 프로텍션 (SEP)

  · 로그 -> 텍스트 형식 (시간만 인코딩 되어 알아보기 쉽다)

 - %SystemDrive%\Program Files\Symantec\Symantec Endpoint Protection\[…]

검역소 -> 바이너리

 - %SystemDrive%\Program Files\Symantec\Symantec Endpoint Protection\Quarantine

 

 

7. 볼륨섀도복사본

 

  · 윈도우의 시스템 복원 기능으로 XP의 “시스템 복원 지점””이 Vista 이후 변화됨

 - 특정 시각의 파일, 폴더 등을 수동 또는 자동으로 복사본(스냅샷)을 생성하는 서비스

 - 윈도우 포렌식 분석의 필수 데이터!!!

  · VSS 목적

 - 볼륨 백업본을 통해 시스템 복원 기능 제공 (이전 버전, 삭제된 파일 복구 등)

 - 파일 잠금 문제 회피

 - 읽기 전용인 볼륨 섀도 복사본으로 다른 파일의 쓰기 간섭을 회피

  · 볼륨 스냅샷 서비스 지원

 - 윈도우 Server 2003/2008/2012

 - 윈도우 Vista, 7, 8

 

7.1. 경로

  · 저장 경로 : %SystemDrive%\System Volume Information

  · 제외 파일 목록 : HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot

 

7.2. 생성시점

  · 수동 (Vista/7)

  · 매 24시간 마다 (Vista)

  · 매 7일 마다 (7)

  · 윈도우 업데이트 전 (Vista/7)

  · 서명되지 않은 드라이버 설치 시 (Vista/7)

  · 프로그램에서 스냅샷 API 호출 시 (Vista/7)

 

7.3. 획득 가능 정보

  · 백업된 시점의 시스템 흔적 (파일시스템, 레지스트리 등)

  · 백업 시점 간에 변화된 시스템 흔적 비교

 

7.4분석과정

   1) 라이브 분석이 가능하다면 라이브 분석!!!

   2) 이미지를 획득한 경우, EnCase PDE나 Arsenal Image Moutner 사용!!

   3) 2번이 가능하지 않을 경우, VHD로 변환 후 [VHD 연결]!!!

   4) 스냅샷 목록 및 생성 일자 확인!!!

   5) 필요한 파일만 선별 수집하여 분석 진행!!!

 

 

8. 호환성 아티팩트

 

  · 운영체제의 업데이트에 따라 이전 버전과의 호환성 기능 제공

  · 호환성 문제의 대부분은 버전에 따라 달라진 API 문제

  · 운영체제는 호환성 문제가 있는 API를 탐지한 후, 대체 API로 연결

 

8.1. 필기

  · 취약한 API는 윈도우즈에서 알아서 제거한다. 하지만 기존의 프로그램은 해당 API를 이용하므로 윈도우즈에서 대체해주어야한다 따라서 그 기록은 로그에 남게되는데 이러한 로그를 분석할 일이 생길것이다.

 

8.2. 응용프로그램 호환성 캐시

  · 호환성 문제가 발생했던 응용프로그램의 정보 저장

  · 저장경로 -> 레지스트리

 - 키 : HKLM\SYSTEM\ControlSet00#\Control\Session Manager\AppCompatCache

 - 값 : AppCompatCache

 

8.3. 응용프로그램 호환성 데이터베이스

  · 호환성 데이터베이스 파일 경로

 - %SystemRoot%\AppPatch(64)\

  · SDB(Shim Database)

 - 호환성 문제가 있는 프로그램 목록과 해결 방안

 - sysmain.sdb

 - drvmain.sdb

 - msimain.sdb

 - pcamain.sdb

 

8.4. 응용프로그램 호환성 플래그

  · “이 프로그램이 제대로 설치되었습니다“ 선택 시 레지스트리에 정보 저장

 - HKCU\Software\Microsoft\Windows NT\CurrentVersion\ AppCompatFlags\Compatibility Assistant\Persisted

 - HKLM\Software\Microsoft\Windows NT\CurrentVersion\ AppCompatFlags\Compatibility Assistant\Persisted

  · 프로그램 속성 -> 호환성 탭 설정 변경

 - HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

 - HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

 

8.5. 최근파일캐시

  · 프로그램 실행 시 경로를 임시 저장하기 위한 공간으로 단순 경로 나열

 - %SystemRoot%\AppCompat\Programs\RecentFileCache.bcf

  · 캐시 되는 경우

 - 실행 파일 -> 실행 파일로 파생된 경우 (드롭퍼)

 - 다른 볼륨이나 시스템에서 복사(인터넷 다운로드 포함)된 경우

  · 필기

  · 인터넷에 파일을 다운받으면 캐시폴더에 다운받고 파일을 옮긴다. 그때의 캐쉬가 여기이다.드로퍼의 리스트도 여기에 저장된다.

  · 결론은 윈도우에서는 호환성문제가 있을 경우 레지스트레 관련된 로그를 저장해 놓는다. 따라서 호환성캐쉬만 보면 눈에 뛸 것이다.

 

 

9. 윈도우WOW64

 

9.1. 레지스트리 아티팩트

  · 32비트 소프트웨어의 레지스트리 또한 리다이렉트된다.

  · 64비트 환경에서 동작한 32비트 악성코드의 흔적이 남음

  · HKLM\SOFTWARE\Wow6432Node

 

9.2. 파일시스템 아티팩트

  · 64비트 프로그램을 돌리면 system32 폴더에 저장된다

  · 만약 32비트프로그램을 64비트 환경에 돌리면 SyWOW64에 기록이 남는다.

  · %SystemRoot%\SysWOW64

 - %SystemRoot%\system32 폴더의 리다이렉트 폴더

 - System32 폴더 하위에 접근하는 32비트 프로그램 데이터는 해당 폴더로 리다이렉트

 - %SystemRoot%\SysWOW64\config 폴더 조사

 

 

10. 윈도우 문제 보고(WER, Windows Error Reporting)

  · XP부터 추가된 기능으로 오류 발생 시 디버깅 정보를 수집하여 보고하는 기능

  · MS 파트너(ISV, IHV, OEM 등)일 경우, 보고된 정보 확인 가능

  · 발생 빈도가 높거나 심각한 오류는 핫픽스(Hotfix)를 통해 업데이트

 

10.1. 텍스트 파일 로그 경로

  · %SystemDrive%\ProgramData\Microsoft\WER\ReportArchive

  · %UserProfile%\AppData\Local\Microsoft\Windows\WER

 

10.2. 이벤트로그 경로

  · %SystemRoot%\system32\winevt\Logs\Microsoft-Windows-WER-Diag%4Operational.evtx

 
728x90
posted by 블르샤이닝 2023. 10. 23. 09:03
728x90

출처 : https://geun-yeong.tistory.com/73

 

Registry에서 Windows 버전 정보 획득하기

Table of Contents Abstract 본 글에서는 Windows의 버전 관련 정보를 얻을 수 있는 레지스트리를 알아보고, 기존 레지스트리로는 구분할 수 없는 10과 11을 구분할 수 있는 또 다른 레지스트리에 대해 찾아

geun-yeong.tistory.com

 

 

 

Abstract

본 글에서는 Windows의 버전 관련 정보를 얻을 수 있는 레지스트리를 알아보고, 기존 레지스트리로는 구분할 수 없는 10과 11을 구분할 수 있는 또 다른 레지스트리에 대해 찾아보고 소개하는 내용을 담았다. 혹여, Windows 10과 11을 구분하고자 하는 사람들에게 도움이 되길 바란다.

Windows Registry where it was stored

윈도우 레지스트리의 어느 곳에서 윈도우 버전 관련 정보를 얻을 수 있는지 알아보자.

Common Informations

먼저 일반적인 Windows 버전 관련 정보를 얻을 수 있는 레지스트리 키는 아래와 같다.

Windows Key
7 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
10
11

주요 Registry Value를 살펴보면 아래 표와 같다.

Value Name
Windows Desc.
7 10 11
BuildLab 현 시스템의 전체 빌드 버전 문자열
BuildLabEx 현 시스템의 좀 더 상세한 전체 빌드 버전 문자열
- [major].[minor].[build].[branch].[date]-[time]
CurrentBuild 현 시스템의 메이저 빌드 버전
CurrentBuildNumber 현 시스템의 메이저 빌드 버전
CurrentMajorVersionNumber × 현 시스템의 NT 커널 메이저 버전 번호
- 10부터 새로 만들어짐
CurrentMinorVersionNumber × 현 시스템의 NT 커널 마이너 버전 번호
- 10부터 새로 만들어짐
CurrentVersion 현 시스템의 NT 커널 버전
- 8.1부터 6.3으로 고정, 10부터는 위의 Major와 Minor를 이용하는 것을 추천
DisplayVersion × 현 시스템의 운영체제 버전
- 1803, 1903, 20H2, 21H2 같은 문자열
EditionID Home, Professional, Education 등 에디션 ID 정보
- 평가판의 경우 Eval이 붙음
InstallDate Unix 타임스탬프 형식의 윈도우 설치 시간
InstallTime × Windows Filetime 형식의 윈도우 설치 시간
ProductName 현 시스템의 Windows 제품 이름
- Windows 10 Pro, Windows 7 Ultimate 등 흔히 윈도우 버전 정보라고 말하는 대상
RegisteredOwner 현 시스템의 등록자 및 소유자
- 보통 설치 당시에 입력한 사용자 이름 혹은 로그인한 MS 계정의 이메일
SystemRoot 시스템 파일이 저장된 경로
- 환경변수 %SystemRoot% 
UBR 업데이트 빌드 리비전(Update Build Revision)
- OS Build 22000.376에서 376 위치에 해당하는 값
  • Windows 7 Ultimate SP1의 CurrentVersion 예하 Values
  • Windows 10 Pro의 CurrentVersion 예하 Values
더보기
닫기
Windows 10의 일반적인 운영체제 버전 정보
  • Windows 11 Pro의 CurrentVersion 예하 Values
더보기
닫기
Windows 11의 일반적인 운영체제 정보

Windows OS Name

What problem in Windows 11

위의 "Windows 11 Pro의 CurrentVersion 예하 Values"로 보면 알 수 있지만 Windows 11임에도 불구하고 CurrentMajorVersionNumber가 정수 10 값을 가지며, ProductName도 "Windows 10 Pro"라는 문자열을 갖는다. 처음엔 Windows 10에서 Windows 11로 업그레이드 한 탓에 이런 흔적이 남은 것인가 싶었지만 처음부터 Windows 11로 설치해도 Windows 10으로 남는다는 것이 문제였다.

How to get a correct information

그래서 Windows 11임을 구분할 수 있는 다른 레지스트리 값을 찾아야 했다. 그 결과 Windows의 부팅 설정 데이터(BCD, Boot Configuration Data) 레지스트리에서 해답을 찾을 수 있었다. BCD 관련 레지스트리 키 경로는 아래와 같다.

HKEY_LOCAL_MACHINE\BCD00000000

BCD00000000의 서브 키중 Objects 라는 키가 있다. Objects 키 밑으로 여러 GUID 형식의 서브 키가 존재한다. 

HKEY_LOCAL_MACHINE\BCD00000000\Objects\{<GUID>}

"{9dea862c-5cdd-4e70-acc1-f32b344d4795}" GUID는 Windows 부팅 관리자(Windows Boot Manager)를 나타내는 GUID 형식의 Identifier다. 이는 7, 10, 11 모두 동일하다. Objects의 서브 키중 이러한 GUID를 갖는 서브 키가 존재하고, 그 밑으로 23000003이라는 서브 키가 존재한다. 7, 10, 11, 어느 컴퓨터든 마찬가지로 모두 존재한다. 23000003 서브 키는 Element라는 값을 가지고 있는데, Element에는 GUID 형태의 문자열이 들어있다. 아래 그림에서 Element에 저장된 GUID는 아래 표와 같다. 이 값은 컴퓨터마다 다르다.

Key HKLM\BCD00000000\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\23000003
Value Element
Type REG_SZ
Data {8e9b6a69-2e21-11ec-aa74-cef1fc3af2a1}

부팅 설정 데이터 관련 레지스트리의 부팅 관리자 레지스트리

다시 BCD00000000\Objects에서 이 GUID를 서브 키 이름으로 갖는 서브키를 찾아보자.

{8e9b6a69-2e21-11ec-aa74-cef1fc3af2a1}

부팅 관리자의 23000003이 가리키던 GUID

이 서브 키의 Elements\12000004를 찾아가면 Windows 11이라는 문자열이 저장된 것을 볼 수 있다.

Key HKLM\BCD00000000\Objects\{8e9b6a69-2e21-11ec-aa74-cef1fc3af2a1}\Elements\23000003
Value Element
Type REG_SZ
Data Windows 11

BCD 레지스트리에 저장된 Windows 11 문자열

정리하면 아래 그림과 같다.

Windows 이름 찾는 과정

Close

이상으로 Windows 버전 관련 정보를 얻을 수 있는 윈도우 레지스트리에 대해 알아봤다. Windows 버전 관련 정보가 저장된 레지스트리 위치와 값들의 의미에 더해 기존에 알려진 Windows NT\CurrentVersion으로는 Windows 11을 구분할 수 없다는 문제에 대한 해결책도 함께 알아봤다. 아직 Windows 11이 정식 출시된 지 얼마 안 됐기 때문이 아닐까 싶다. 훗날 CurrentMajorVersionNumber 값이 11(0xB)가 되는 날이 오지 않을까 예상해본다.

참고로 BCD 관련 레지스트리는 Windows 7도 존재하며 7의 경우 "Windows 7", 10의 경우 "Windows 10"으로 나타난다.

Windows 11 밈 중에 겉 모습만 바뀌고 속은 Windows 10이라는 걸 재밌게 표현한 짤들을 많이 볼 수 있다. 이 밈을 다시 한번 느끼게 해준 재밌는 경험이었다.

Windows 11 Meme (https://9gag.com/gag/amPpx2j)

728x90

'포렌식 > 컴퓨터' 카테고리의 다른 글

heic 파일 jpg 변환 프로그램(무료)  (0) 2023.10.26
윈도우 포렌식 참고 자료로 좋은 내용  (1) 2023.10.24
plum.sqlite-wal 파일 분석  (0) 2023.10.23
파일 시스템과 파일 복구 자료  (0) 2023.10.10
ShimCache  (0) 2023.08.01
posted by 블르샤이닝 2023. 10. 23. 09:02
728x90

 

https://dingtoffee.github.io/StickyParser/

 

StickyParser

StickyPraser - Sticky Notes Forensic. A Windows Sticky Notes Praser (snt and plum.sqlite supported). Additional Feature: SQLite Recovery - Deleted content recovery from plum.sqlite or any generic sqlite.

dingtoffee.github.io

 

 

728x90
2023. 10. 10. 09:39

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.