XP를 탑재한 VM과 HxD 프로그램을 준비하자.
폴더옵션에 '보호한 운영 체제 파일 숨기기'를 해제한다.
그럼 부팅과 관련된 파일들이 나온다. 여기서 ntldr 파일을 삭제하면 부팅이 되지 않는다.
Vmware 메뉴에서
Player-Manage-Virtual Machine Settings -ADD
하드디스크를 선택한다.
NEXT-NEXT- 10G -Store virtual disk as a single file -finish
VMware에서 가지고 놀 하드디스크를 하나 추가한다.
10기가짜리 하드디스크를 하나 추가하고
윈도우키+R을 눌러
diskmgmt.msc 를 입력하면 위와같은 화면이 뜬다. 아직 파티션을 할당하지 않은 상태로 HxD로 열어본다.
아무 내용이 없다.
디스크를 초기화하고 HxD에서 F5를 눌러보자.
무언가 적힌것을 볼 수 있다.
MBR이 적힌것인데 MBR에 구조는 총 3개가 있고. 512바이트로 구성되어 있다.
Boot Strap Cord(446바이트)
-부팅할때 부팅파티션이 어디있는지 구동하는 기계어
Signatuer(2바이트)
Patition table entry(64바이트)
-파티션 구조 정보
파란부분이 BootStap Code이다.
Invalid partition table.Error loading operating system.Missing operating system ->오류코드 메시지 데이터도 같이 들어있음
노란색 부분이 파티션테이블이다. 16바이트로 구성되어 있고
64바이트 이므로 4개의 파티션테이블을 만들 수 있다.
파티션 테이블은
주파티션
논리드라이브를 만들기위한 틀인 확장 파티션
4개의 파티션테이블이 부족하면 사용하는 논리드라이브가 있다.
디스크관리자에 가서 파티션을 만들어보자.
여기를 보면 논리드라이브는 체크를 못하는데 아직 주파티션이 하나도 없기 때문이다.
2G만 주고 파티션을 생성한다.
여기서 '비어 있는 NTFS 폴더의 탑재' 라는 것이 있는데
이론상 리눅스에서 폴더에 마운팅 하듯이 폴더에 마운팅하면 무한대로 가능하다.
크
FAT32가 포렌식하는 것에 기초이므로 FAT32로 포맷하자.
FAT32 할당 단위 크기의 기본값은 4K이다.
이제다시 HxD로 들어간다.
아까 노란색으로 치던곳에 숫자가 들어간 것을 확인 할 수 있다.
맨 처음 00은 파티션의 종류를 나타낸다
지금은 00이니 일반 파티션이고
80이면 부팅 파티션을 나타낸다.
이 하드에는 우리가 윈도우를 깔고 부팅할 것을 깐게 아니므로 00으로 표시된 것이다.
그리고 5번째 (2번째줄 3번째)를 보면
0B 라고 나타나있는데 이 파티션이 현재 쓰고있는 파일 시스템을 보여준다.
FAT32는 0B로 표시한다.
그 바로다음에 있는 FE 7F 04 는 끝의 주소를 나타낸다
그다음이 중요한데
3F 00 00 00 은 ->LBA(Logical Block Address)의 시작 주소이다.
CPU는 주소를 거꾸로 읽어주어야 하기 때문에 3F 00 00 00은
00 00 00 3F가 된다. 따라서 3F가 시작주소이므로 63이 시작주소라는 뜻이다.
ㅋ
위에 섹터에 63을 입력하여 가보자.
오른쪽에 보면 FAT32와 NTLDR이 보인다. 이곳이 LBA가 저장된 곳이다.
다시 돌아오면 그다음 마지막 86 FA 3F 00은 총 섹터의 갯수를 의미한다
즉 거꾸로 읽어서 00 3F FA 86인데 이것은 10진수로 4192902이다.
섹터하나에 크기는 512바이트 이다. 계산을 한번 해보자.
4192902 x 512 / 1024 /1024/1024 =1.99xx
약 2에 가까운 수이다. 아까 파티션을 지정할때 2G로 해줬기 때문이다.
이 처럼 디스크의 저장되어있는 MBR로 디스크에 정보를 얻을 수 있었다.
'디지털 포렌식' 카테고리의 다른 글
[Forensic]FAT의 구조 (0) | 2018.04.20 |
---|---|
[Forensic]논리디스크와 PBR (0) | 2018.04.19 |
[Forensic]포렌식개념 (0) | 2018.04.18 |