하드 드라이브의 마지막 1000개 섹터를 읽는 방법

하드 드라이브의 마지막 1000개 섹터를 읽는 방법

다음은 관련성이 있다고 생각되는 짧은 스레드의 구체적인 질문입니다.

  1. 저는 Western Digital(my book studio) 외장 드라이브를 가지고 있습니다. (2009년경에 구입한 이전 버전에는 USB 및 FIREWIRE 포트가 있습니다)

  2. 그 드라이브에는 중요한 백업이 많이 있습니다.

  3. 드라이브가 암호화되었습니다.

  4. 드라이브를 분리하는 동안 문제가 발생하여 액세스할 수 없게 되었습니다.

  5. 드라이브는 여전히 양호하고 불량 섹터는 없습니다.

  6. 다양한 도구를 사용하여 파일을 복구하고 dd 명령을 사용하여 완전한 이미지도 만들었습니다.

  7. 문제는 복구된 파일이 여전히 암호화되어 있다는 것입니다.

  8. 제가 조사한 결과, 이 WD 드라이브는 드라이브의 마지막 섹터에 저장된 하드코드된 암호화 키를 사용하고 암호화하는 동안 선택한 비밀번호는 액세스하는 데 사용되는 sha256 해시를 생성하는 데만 사용된다는 사실을 알아냈습니다. 실제 복호화 키.

  9. 이 드라이브에 대한 (아주 좋은) 기사에서:https://eprint.iacr.org/2015/1002.pdf내 특정 칩셋의 경우 암호화 키가 하드 드라이브의 마지막 블록에서 "SInE"로 시작한다는 것을 발견했습니다.

  10. 제 질문은 전체 키를 얻기 위해 하드 디스크 블록을 어떻게 읽을 수 있느냐는 것입니다. dd가 이걸 할 수 있나요? 불량 섹터가 없는 2테라 바이트 드라이브입니다. 위에 게시된 기사에 따르면 WD 하드웨어는 이러한 섹터에 대한 액세스를 차단하지만 WD 케이스에서 드라이브를 꺼내 SATA 포트에 직접 연결하면 액세스할 수 있습니다.

  11. 내가 시도한 것: "안전"할 드라이브의 디스크 이미지가 이미 있었기 때문에 드라이브에서 직접 파일을 복구하려고 시도했지만 복구 소프트웨어는 정밀 스캔을 수행할 때 오래된(삭제된) 파일도 검색합니다. 그리고 더 적은 양의 물건을 복원하는 것 같습니다. 그래서 dd를 사용하여 전체 드라이브에 0을 쓴 다음(복구 가능한 "삭제된" 파일이 없도록 하기 위해) 드라이브를 원래 Western Digital 케이스에 다시 넣고 다시 포맷하여 동일한 암호화된 드라이브를 생성했습니다(동일한 드라이브 사용). 비밀번호를 원본으로 사용) 그런 다음 dd를 사용하여 내가 만든 이미지를 "복원"했습니다. 그런 다음 mac diskutil 응급 처치를 실행했습니다(이것은 mac 파일이며 원본 형식은 HFS+입니다). 드라이브가 그 안에 있는 파일이 여전히 암호화되어 있다는 것을 어떻게든 인식했으면 좋겠습니다. 쓸모 없는.

복구된 파일을 별도의 디스크에 저장했지만 해당 파일을 디코딩/복구할 수 있는 소프트웨어를 찾을 수 없습니다. 수동으로 디코딩하려고 하면 항상 암호 해독 키가 잘못되었다는 메시지가 나타납니다. 이전에 말했듯이 내 비밀번호는 실제 키가 아니며 드라이브에 액세스하는 데 사용되는 하드코드된 키일 뿐입니다.

DD는 2TB 드라이브를 사용한 "실험"에 매우 느립니다. 시도하려는 모든 테스트는 32시간 이상 소요되므로, 그렇지 않은 경우를 제외하고 드라이브의 마지막 섹터로 "점프"할 수 있는 방법이 필요합니다. 거기에 몇 개의 섹터가 있는지, 몇 개의 섹터로 점프해야 하는지, 또는 DD가 필요한 원시 ASCII 블록을 읽는 데 적합한 도구인지 여부도 알고 있습니다.

도와주셔서 감사합니다. 거의 20일 동안 이 일을 해왔습니다.

매우 감사합니다.

PS 저는 Linux(Ubuntu 20.04)와 Mac 컴퓨터를 가지고 있으므로 Windows가 아닌 솔루션을 찾고 있습니다. 감사해요

답변1

tail -c 512000 /dev/sdX드라이브의 마지막 512000바이트를 읽고 표준 출력에 기록합니다.

perl -0777 -ne 'print $& if /SInE.*/s'부품이 처음 나타나는 부분부터 시작하여 부품을 추출하는 파이프입니다 SInE.

아니면 perl스스로 끝점을 찾으세요.

perl -e '
  seek STDIN, -512000, 2 or die "seek: $!";
  $/ = undef;
  $_ = <STDIN>;
  print $& if /SInE.*/s' < /dev/sdX

답변2

물론, dd skip={Number of 1kB input blocks to skip} bs=1024 if=yourdiskimage of=imageofendofdrive입력에서 지정된 킬로바이트 수만큼 앞으로 이동합니다.

하지만: 드라이브 이미지가 전혀 암호화되지 않습니다. 당신은 해결책이 필요하지 않은 문제를 해결하려고 합니다!

당신이 스스로 말했듯이 :

내가 시도한 것: "안전"할 드라이브의 디스크 이미지가 이미 있었기 때문에 드라이브에서 직접 파일을 복구하려고 시도했지만 복구 소프트웨어는 정밀 스캔을 수행할 때 오래된(삭제된) 파일도 검색합니다. 그리고 더 적은 양의 물건을 복원하는 것 같습니다. 그래서 dd를 사용하여 전체 드라이브에 0을 쓴 다음(복구 가능한 "삭제된" 파일이 없도록 하기 위해) 드라이브를 원래 Western Digital 케이스에 다시 넣고 다시 포맷하여 동일한 암호화된 드라이브를 생성했습니다(동일한 드라이브 사용). 비밀번호를 원본으로 사용) 그런 다음 dd를 사용하여 내가 만든 이미지를 "복원"했습니다. 그런 다음 mac diskutil 응급 처치를 실행했습니다(이것은 mac 파일이며 원본 형식은 HFS+입니다). 드라이브가 그 안에 있는 파일이 여전히 암호화되어 있다는 것을 어떻게든 인식했으면 좋겠습니다. 쓸모 없는.

파일 존재와 관련된 데이터는 전혀 암호화되지 않습니다. 그렇지 않으면 복구 소프트웨어가 해당 데이터를 찾을 수 없습니다.어느 문서. 드라이브는 사용 중인 파일 시스템을 "이해"하지 않으며 디스크에 쓰는 바이트를 직접 처리합니다.

파일을 복구할 수 있지만 해당 내용이 실제로 암호화되어 있는 경우, 그 위에 또 다른 암호화 계층을 추가해야 합니다. 파일 시스템 드라이버 계층 내에 위치하며 전체 디스크가 아닌 개별 파일을 암호화하는 것입니다.

관련 정보