하드 디스크 용량은 어떻게 위조됩니까?


90

나는 마법의 중국 드라이브 에 대해 읽고 있었다 . 이것은 어떻게 이루어 집니까? 이 게시물은 '루프 모드'에 대해 이야기하고 의견은 다른 컨트롤러가 OS에 놓 이도록 제안합니다.

나는이 장치 중 하나를 구입하여 시도해 보았지만 광고 된대로 작동했습니다 (만료되면 데이터 덮어 쓰기). 포맷 할 때 '진정한'용량을 표시하기 시작했습니다.

이것이 어떻게 달성됩니까?



14
"자기 하드 디스크가 아닌 플래시 드라이브의 스토리지 용량을 가짜로 만드는 것"이기 때문에 "플래시 메모리 용량은 어떻게 가짜입니까?"
Joseph Earl

나는 그 중국의 마술 드라이브 중 하나를 원하지만, 하나를 얻기 위해 중국에 오지 않습니다!, 큰 괴짜 개그 선물을 만들 것입니다.
Moab

+1. 나는이 질문을 "질문 과제"보기에서 "차트 상단으로 올라 가기"전에 본 적이 없다.
jprete

난 경우에이 거대한 너트 볼트와 '하드 디스크'에 대한 호기심이 왔을 때 .. 감사합니다 ㅎ :) 나는 응답의 종류를 기대하지 않은
로한하기 Monga

답변:


59

FAT32 에는 여유 공간이있는 마스터 테이블이 있습니다. 해당 마스터 테이블을 16 진 편집하여 여유 공간을 표시 할 수 있습니다. 지금은 3.7GB 크기의 플로피 디스크를 사용했습니다.


4
예, FAT를 조작 할 수는 있지만 마이크로 컨트롤러를 사용하여 OS에 거짓말을하는 방법도 있습니다. Windows는 실제로 실제보다 훨씬 큰 디스크를 잘못 식별하여 디스크를 반복적으로 포맷합니다. 일반적으로 OS가 실제로 유효한 마스터 테이블을 만들 수있는 방식으로 플래시 칩을 루프하는 일종의 내장 알고리즘이 있습니다.
TheCompWiz

내가 마스터 테이블과 컨트롤러와 주변 혼란 찌를 시작으로,이 :) 따라 더 많은 질문을 기대
로한하기 Monga

2
마스터 테이블을 찾을 수있는 위치 또는 편집 방법에 대해 자세히 설명 하시겠습니까?
Ivo Flipse

2
나는 이것에 대한 몇 가지 문서를보고 싶다. 나는 이것을 프로그래밍으로 복제하려고 시도했고 크기를 파악하는 데 OS를 속일 수 없었다. 내가 뭘하려 보려면 여기이 스레드를 참조 stackoverflow.com/questions/7482920/...
cromestant

Norton Commander와 hexedit을 사용하여보고 된 파티션 크기를 변경하는 잡지가 있습니다. 잡지를 잃어버린 것이 너무 나쁩니다.
Barfieldmv

19

하드웨어는 수정되지 않습니다. 파일 테이블은 단순히 OS를 속이기 위해 수정됩니다. 포맷하는 동안 파일 테이블이 지워지고 실제 용량 판독 값이 복원됩니다.

평판이 좋지 않은 판매자에게 가면 이런 종류의 저렴한 가짜 플래시 드라이브 또는 중국의 하드 드라이브에 항상 걸릴 수 있습니다.


11
작년에 나는 Ebay에 중국에서 64Gb 메모리 스틱을 £ 15에 샀다. 가격에 용량을 사용할 수 없다는 것을 알고 있었을 것입니다. 실제로 그것은 레이블에 새겨 져있는 가짜 "6"과 함께 4Gb였습니다. 파일 시스템이 스크램블되는 방식은 4Gb 이상이 장치에 복사 될 때까지 새로운 파일이 기존 파일의 일부를 덮어 쓰기 시작하기 전에는 아무런 문제가 없다는 것을 의미 했습니다. 나는 적어도 4Gb 스틱으로 사용할 수 있도록 물건을 다시 포맷 할 수 없었습니다.
FumbleFingers

7
@FumbleFingers, 예. 판매자가 칩 정보를 망쳐 놓는 것이 일반적이므로 직접 포맷 할 수는 없지만 다음과 같이해야합니다. 1. ChipGenius 소프트웨어 + 대량 생산 도구를 사용하여 칩 정보를 수정하십시오. 2. 저수준 서식 도구를 사용하여 실제 형식을 수행하십시오. 다음은 가이드입니다 : agnipulse.com/2010/04/how-i-fixed-a-fake-64gb-usb-drive
KoKo

감사! 어쩌면 나는 결국 좌절감을 느끼지 못했을 때 약간의 가치를 얻을 수 있습니다.
FumbleFingers

6

메시지를 볼 때까지 다른 컨트롤러라고 확신했습니다. 수정 된 컨트롤러를 사용하면 OS에 원하는 것을 말할 수 있습니다. 그러나 형식이이 동작을 수정하면 파일 시스템 수준에서도 일종의 속임수가 발생했음을 의미합니다. 두 가지 옵션이 있습니다.

  • 이것은 파일 시스템 수정 (여전히 나에게 더 가능성이있는 것처럼 보입니다)에 의존하기 때문에 포맷 후에 단순히 작동하지 않는 컨트롤러 수정입니다.

  • 하드웨어 수정없이이를 수행하는 다른 방법이 있습니다 (예 : 사용 가능한 블록 링크 된 목록을 원형으로 수정). 이것이 가능한지 결정하기 위해 FAT32의 세부 사항에 익숙하지 않습니다. 그렇지 않으면 먼저 ...).

편집 : FAT32를 사용하고 있다고 가정하는 것은 순진합니다. 아마도 이러한 순환 여유 공간 관리 속임수를 실수로 허용하는 다른 파일 시스템이 사용됩니다 (해당 파일 시스템도 OS에서 지원하는 한) 사용자에게는 사실상 보이지 않습니다). 이것은 그러한 장치를 보는 것이 훨씬 흥미 롭습니다 ...


2
그것은 파일 시스템 일입니다. 확실합니다. 이 드라이브는 물리적으로 수정되지 않습니다.
crasic

4
나는 그러나 그런 작은 물건을 살 것입니다 .. 테스트 목적 :)
Greenleader

1
사용자 정의 컨트롤러 또는 수정 된 컨트롤러를 사용하려는 경우 저렴한 컨트롤러를 대량 구매할 경우 가격을 절감 할 수 있습니다. 따라서 파일 시스템 수준에서 순수하게 수행되는 것 같습니다. dd를 사용한 원시 쓰기는 하드웨어 교체 / 수정에 비해 빠르고 저렴하며 쉽습니다.
kaerast

6

다음은 키를 사용하여 1,000,000,000,000 바이트 (1TB) 디스크를 만드는 방법입니다 (Linux 사용).

  1. 가짜 포맷 된 1TB 디스크를 만듭니다.

    mkdosfs -C  temp_file 1000000000
    
  2. 실제로 발생했는지 확인

    ls -lh temp_file
    
  3. DoK를 연결하고 마운트 방법을 확인하십시오.

    mount
    
  4. 장치 이름을 찾으십시오 /dev/sdb1 (여기서 실수를 한 경우 시스템에 연결된 다른 디스크를 망칠 수 있으므로 조심하십시오!).

  5. 마운트 해제 :

    sudo umount /dev/sdb1
    
  6. FAT 테이블의 크기를 찾으십시오.

    ls -s temp_file
    

(첫 번째 숫자는 킬로바이트 단위의 크기입니다)

  1. DoK로 복사

    echo "head -c [size_from_above]K temp_file > /dev/sdb1" | sudo sh
    
  2. 친구를 놀라게하십시오! 다음과 같이 놀기 위해 로컬로 마운트 할 수 있습니다.

    mkdir test
    sudo mount temp_file test -o loop
    

5

아주 간단합니다

플래시 칩 컨트롤러에는 몇 가지 설정이 포함되어 있습니다. 제품 ID, 공급 업체 ID 및 플래시 칩 수 및 크기

작은 칩이있는 구형 장치를 사용하여 잘못된 수의 플래시 칩으로 펌웨어를 덮어 쓰면 총 드라이브 용량이 설치된 플래시 수보다 커집니다.

주소 라인의 양이 변경되지 않았기 때문에 칩은 항상 기록됩니다. 예를 들어, 처음 128MB가 기록되고 다음 칩이 선택된 다음 다른 128MB가 기록됩니다.

칩이 하나만 있기 때문에 선택 라인이 연결되지 않고 두 번째 플래시 칩 데이터가 첫 번째 칩 데이터를 덮어 씁니다.

컨트롤러는 연결되지 않은 칩을 포함하여 모든 칩의 크기를 OS에보고하기 때문에 OS는 행복하게 잘못된 크기로 포맷합니다.


3
여기서 문제는 하드웨어에서이 방법으로 수행하면 최신 데이터가 드라이브의 시작 부분 근처에서 FAT32 파일 할당 테이블과 루트 디렉토리를 덮어 쓰므로 다시 포맷 할 때까지 드라이브를 사용할 수 없게된다는 것입니다. 이것이 일어나지 않는다는 사실은 그것이 작동하게 만드는 파일 시스템 핵임을 암시합니다.
Mokubai

p, 독창적이지만, 이것은 매우 빨리 잡힐 것입니다.
Rohan Monga

1

이를 수행하는 두 가지 방법이 있습니다.

  1. 파티션 : 파티션을 수동으로 수정하고 생성하기위한 여러 도구가 있습니다. 예를 들어, 실제 사용 가능한 실린더를 더 선택할 수 있습니다. 그렇게하는 것이 사소한 일입니다. 전의. 파티션 마법과 fdisk조차도 그렇게 할 수 있다고 생각합니다.

  2. 장치 펌웨어 : 다른 방법은 장치의 펌웨어를 수정하는 것입니다. 대부분의 장치 (모두는 아님)는 펌웨어에 해당 정보 (플러그 앤 플레이 및 기타 정보)가 포함되어 있습니다.

예를 들어, 일반적인 트릭은 용량이 적은 장치에 더 많은 용량의 하드 디스크 펌웨어를 사용하고 공간을 "증가시키는"것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.