위의 그림은 MBR부터 읽어서 MFT의 Attribute 까지의 접근에 대한 그림이다. 실제 접근까지는 총 세번의 Dump가 이루어지며 Dump시 절대주소를 적어주어야만 원하는 곳의 데이터를 얻을 수 있다.

아래는 위 그림을 설명할 소스코드의 일부분이다.

int main(void)
{
	char dumpData[512];
	U8*  ucP;
	
	HDD_read(1, 0, 1, dumpData); 
	HexDump(dumpData, 512);
	HDD_read(1, *((U32 *)(dumpData + 446 + 8)), 1, dumpData);	// Boot Code + LBA Starting Address
	HexDump(dumpData, 512);
	HDD_read(1, (*((U32*)(dumpData+48))) *8 +63, 1, dumpData); // MFT Entry
	
	ucP = test((dumpData+(*((U16*)(dumpData+20))))); /* Attribute 의 시작 부분 */

 	test(ucP);
	
	return 0;
}

해당 소스의 전체 파일(소스가 제대로 동작하지는 않고 있다.)

hdd_NTFS_MFT_Entry_Attribute.c


저작자 표시
신고

'Embedded > File System' 카테고리의 다른 글

NTFS MFT까지의 접근  (0) 2013.01.16
파일 시스템 요소들  (0) 2013.01.08
FAT File System의 구조  (0) 2013.01.08
FAT 파일 시스템  (0) 2013.01.04
파티션  (0) 2012.12.31

CRC16 사용방법

분류없음 2013.01.13 13:08

다운로드 및 설치

파이썬에서 CRC를 사용하기 위해서는 파이썬 외부 모듈인 crcmod 를 설치해야 한다.

원본주소 - http://pypi.python.org/pypi/crcmod/1.7

2012년 1월 12일자 crcmod 다운로드 하기

crcmod-1.7.tar.gz

다 받았으면 압축을 풀고 관리자 권한으로 설치를 한다.

# python setup.py install


저작자 표시
신고

파일 시스템을 이루고 있는 몇 가지 요소

  • 클러스터
    1. 운영체제가 저장장치에 있는 데이터를 읽고 쓰는 논리적인 기본단위
    2. 리눅스에서는 아이노드라고도 불린다.
    3. 크기가 작은 파일을 저장장치에 쓰고자 하는 경우 파일이 클러스터의 크기보다 작아 서 남는 용량은 버려지게 된다.
    4. 상대적으로 느린 저장 매체인 하드디스크의 속도를 고려하여 1KB 파일을 불러올때 1 KB짜리 클러스트를 열번 불러들이는 것보단 4KB짜리 클러스트를 I/O로 불러들이는 편이 빠르다.
    5. 단 1Byte라도 사용한다면 1개의 클러스터 영역이 사용된다.

하드디스크의 주요 구성 요소

  • 트랙
    1. 디스크의 중심으로 도는 원. 반지름이 커질 수록 원이 커지는 만큼 디스크의 가장자리 영역에 데이터를 많이 보관할 수 있다.
  • 섹터
    1. 각각의 섹터는 571 Byte의 공간을 차지
    2. 그중 59 Byte는 각각의 섹터에서 고유 번호 등을 저장하는 용도로 사용
    3. 나머지 512 Byte가 사용자들이 사용할 수 있는 데이터 영역
  • 실린더
    1. 여러장 겹겹이 있는 플래터 구조를 가지는 하드 디스크에서의 개념으로 수직으로 같은 위치에 있는 섹터들을 실린더라 부른다.


저작자 표시
신고

'Embedded > File System' 카테고리의 다른 글

NTFS MFT까지의 접근  (0) 2013.01.16
파일 시스템 요소들  (0) 2013.01.08
FAT File System의 구조  (0) 2013.01.08
FAT 파일 시스템  (0) 2013.01.04
파티션  (0) 2012.12.31