2012-03-12 4 views
-1

일련의 10-30 글자/숫자를 디스크에 원시 형식으로 쓰는 프로그램을 만들려고합니다 (OS에서 읽을 파일이 아닙니다) . 아마도 내 시도를 명확하게하기 위해 16 진수 편집기에서 디스크를 열면 10-30 자의 문자/숫자가 표시되지만 Windows 탐색기와 같은 파일 관리자는 데이터를 볼 수 없습니다 (데이터가 파일이 아니기 때문에) .파일 시스템을 손상시키지 않고 디스크에 원시 데이터 "서명"쓰기

나의 목표는 일련의 문자로 디스크에 "서명"하고 내 프로그램에서 "서명"을 읽고 쓸 수있게하는 것입니다. 나는 NTFS가 다른 파일 시스템처럼 NTFS 플래그로 파티션을 서명한다는 것을 이해하고 중요한 부분에 내 서명을 쓰지 않도록주의해야합니다.

저수준으로 디스크에 쓸 수있는 C++/C 라이브러리가 있습니까? 그리고 서명을 쓰기 시작할 안전한 부분을 어떻게 알 수 있습니까? 이를 좁히려면 NTFS, FAT, FAT32, FAT16 및 exFAT 파일 시스템에 기록하고 Windows에서 실행할 수 있어야합니다. 모든 링크 또는 참조가 크게 감사드립니다!

편집 : 일부 연구 후에 USB 드라이브는 해킹 트릭을 적용하지 않고 하나의 파티션 만 허용하므로 사용자가 더 이상 문제를 해결할 수 없습니다. 이것은 불행히도 "파티션 아이디어"를 배제합니다.

+3

"서명"을 덮어 쓰지 않도록 파일 시스템을 어떻게 막을 계획입니까? –

+0

실례지만 내 걱정은하지 않겠습니까? 디스크의 "처음/시작"에이 파일을 쓴다면 모든 새 파일이 "아래에"추가됩니다. – user99545

+2

파일 시스템은 디스크로 원하는 모든 것을 할 수 있습니다. 그것이 당신이 가지고있는 이유입니다. 사실, 디스크의 "시작/시작"은 일반적으로 파일 시스템이 가장 많이 활성화 된 장소입니다. 가장 기본적인 데이터 구조는 일반적으로 여기에 저장됩니다. –

답변

0

이것은 매우 위험합니다. 그러나 zero-fill 프로그램은 똑같은 일을하므로 C++로 하드 드라이브를 지우는 방법을 Google에서 수행 할 수 있습니다.

어려운 부분은 당신이 사용하지 않고 사용하지 않을 장소를 찾는 것입니다.

1

일반적으로 생각하는 것이 좋지 않지만 클러스터를 "나쁜"것으로 표시 한 다음 자신의 용도로 사용하는 것이 좋습니다. 그와

문제 : NTFS 불량 클러스터가 $BadClus 같은 이름의 파일에 저장됩니다에가 나쁜 표시

  1. 이 (비 사소한이지만, 사용자 코드에 액세스 할 수 없습니다 (그리고 내가 아니에요 심지어 장치 드라이버에서 액세스 할 수 있는지 확인하십시오.)
  2. 불량 클러스터/섹터를 검색하고 복구를 시도하는 프로그램이 다양합니다. 전혀 작동하면 효과가 있다는 것을 알게되고 다시 사용하게됩니다.
  3. 사람들이 t 어쨌든 특정 컴퓨터에 특정 소프트웨어 설치를 묶는 것과 같은 이런 일은 어리석은 짓입니다.
  4. 모든 "불량"섹터를 스캔하여 서명이 있는지 확인해야합니다.
+0

(4)는 실제로 major입니다. 진정한 불량 섹터를 읽으려고하면 종종 오랜 시간이 걸릴 것입니다. 디스크는 포기하기 전에 꽤 재 시도합니다. 그 동안 디스크는 일반적으로 다른 I/O를 수행하지 않습니다. – MSalters

+0

@MSalters : 충분합니다. 편집 됨. –

2

첫째, 의견 제시, 당신은이이 일을하려고하는 이유 에서보고, 정말 좋은 생각이 있는지 확인해야한다고 말했다한다. 사용자가 자신의 컴퓨터를 사용하는 데 필요한 일반적인 UI를 우회하려고하는 대부분의 앱은 다양한 방식으로 "나쁨"상태입니다.

즉, 항상 시스템에 있고 디스크의 블록 크기에 여유가있는 잘 알려진 파일을 찾고 슬랙에 쓸 수 있습니다. 나는 대부분의 파일 시스템이 불필요한 데이터를 신경 쓰지 않을 것이라고 생각한다. 파일이 재배치 될 경우 (디스크 레벨에서 전체 블록을 복사하는 것이 더 효율적이다.

그냥 생각해보십시오. 모르겠지만 그것이 실현 될지 모르지만, 처럼 보일 수 있습니다. 이론적으로 작동합니다.