16GB microSDHC 카드를 가지고 있는데, 사진을 찍을 때 갑자기 더 이상 카드에 액세스 할 수 없거나 카드를 인식 할 수 없다는 것을 알 수 있습니다. 나는 일어 났을 때 그녀와 함께했다. 우리는 즉시 전화를 끄고 카드 등을 포맷하려고하지 않았습니다.
SD-CardReader와 Ubuntu를 사용하면 장치가 여전히 인식 될 수 있으며 완전한 16GB는 dd를 통해 오류없이 읽을 수 있습니다. 하나, dd 덤프의 99 %는 그냥 제로 바이트였습니다. 카드에는 이전에 수 GB의 데이터가 포함되어있었습니다. 아주 작은 부분에만 여전히 데이터가 포함되어 있었으며 이러한 조각은 16GB에 흩어져있었습니다.
예를 들어, 카드에는 원래 FAT32 파일 시스템이 포함되어있었습니다. 그러나 이제 부팅 섹터와 파티션 테이블이 제로가되었습니다. 첫 번째 FAT 복사본과 대부분의 데이터가 삭제되었습니다. 흥미롭게도 2 차 FAT 복사본은 손상되지 않았으며 루트 디렉토리였습니다. 나는 dd-dump에서 3 개의 부분적인 JPG를 발견했다. 흥미로운 점은 이들 JPG의 Exif- 데이터가 카드가 추락하기 직전에 찍혔다는 것을 암시한다.
그래서 내 질문은 다음과 같습니다 :
- 디바이스를 인식하고 해석하는 Linux USB 대용량 스토리지 드라이버에 의존하는 dd를 사용하는 대신 플래시 카드 정보의 더 낮은 레벨까지 액세스 할 수있는 다른 방법이 있습니다 (즉, 진정으로 칩 내용을 읽는 대신 usb_storage가 보는 것? 어떤 형태의 FTL, JFFS 등?)?
- 데이터가 정말로 지워졌습니까 아니면 어딘가에 “더러운”태그가 붙어 있습니까? 전화기가 실제로 16GB의 메모리를 몇 초 내에 덮어 쓰는 것은 물리적으로 불가능합니다. 그래서 실제 데이터를 읽을 수있는 방법이 있을까요? 아니면 일반적으로 카드를 해체하고 특수 하드웨어를 통해 NAND (?) 장치에 직접 액세스하면 가능합니까?
나는 모든 포인터를 고맙게 생각할 것입니다 – 내 친구는 실제로 컴퓨터 옆에있는 컴퓨터를 사용하지 않기 때문에 사진을 더 안전한 곳으로 복사하는 것을 결코 고민하지 않았습니다. 따라서 수백 개의 친구 및 가족 사진이 손실됩니다. – /
답변
SD 카드에 원시 NAND 데이터를 제공하라는 표준 또는 “내장”방식은 없습니다.
이것은 추측이지만 SD 카드의 마이크로 컨트롤러는 마모 균등화를 위해 일종의 물리적 블록 주소 대 논리 블록 주소 매핑을 구현할 수 있습니다. 이 PBA 대 LBA 테이블은 실제로 실제 데이터처럼 NAND에 저장되며 상대적으로 작으며 여유 블록을 추적하고 실제로 초 단위로 덮어 쓸 수 있습니다.
플래시 카드의 더 낮은 수준의 정보에도 액세스 할 수있는 다른 방법이 있습니까?
낸드를 솔더링하거나 솔더 외부 와이어를 솔더링하는 경우, 어떤 유형의 낸드인지 알아 내고 PC에 인터페이스를 제공하여 원시 컨텐츠를 덤프 할 수 있습니다. 데이터 포맷이 SD 카드의 마이크로 컨트롤러에 고유 한 것이기 때문에 어려운 리버스 엔지니어링 작업에 직면 해 있습니다. 어디서 정보를 찾을 지 상상할 수도 없습니다.
찾을 수 있습니다. 이 재미 있지만, 아마도별로 유용하지는 않습니다. SD 카드에는 SD 마이크로 컨트롤러의 펌웨어를 업데이트하는 데 사용되는 SCSI “공급 업체별 명령”과 동일한 기능이있는 것으로 보입니다. 따라서 이론적으로 읽기 / 쓰기 요청에 다르게 반응하는 사용자 정의 또는 수정 된 SD 마이크로 컨트롤러 펌웨어를 업로드 할 수 있습니다. 여전히, 당신은 위에서 설명한 것과 같은 지점에 도달 할 것입니다. 나는 실제로 존재하는 SD 마이크로 컨트롤러 맞춤형 펌웨어 나 프로젝트를 모른다.