バイナリー形式で保存したファイルが
作成したアプリから保存されたオリジナルのモノか
エクスプローラ等でコピーされたモノかを、判断する方法は無いでしょうか?
ないと思います。
NTFSであれば、ファイルの所有者がわかるかもしれませんが、アプリケーションを使用するユーザがコピーした場合、所有者は同じになるのでやはり判別は不可能です。
にしのさま いつも有難うございます
以前、DOSのゲームで起動時にオリジナルのフロッピーが必要で
コピーしたものでは、起動できないのが有ったと思うのですが、、、
同じようなチェック方法が有ればと、考えましたが
やはり無理ですか。
フロッピーであればできますよ。
不良セクタを作っておき、そこを読み込んでエラーかどうかを判断するだけです。
不良セクタは、通常のコピーではコピーできませんから。
ほかにも、単なる不良セクタでなく、不安定なセクタを作り、たとえば、
$AA $AA $AA...
というデータを書き込んだ後、そのセクタに重なるような場所に
$CC $CC $CC...
と書き込み、また最初に書き込んだ場所を読み込んだときに、
$AA $AA $AA ...
であればコピー。違う値ならオリジナル、という判別をするものもあります。
ハードディスクでも、理論的には可能でも、実現は難しいです。ハードディスクごと配布するのであれば実現できると思いますが、コスト的に難しいでしょう。
なるほど、そんな手が有るんですね
今回は、フロッピーでと言うわけでは無いのですが
参考になりました。
ところで、不良セクターや不安定なセクターを故意に作る方法って
どうするのでしょうか?
面白そうなので、実際にフロッピーを使ってやってみたいので
具体的な方法を、お願いします。
不良セクタの作り方は意外に簡単です。
・フォーマット中にディスクを抜く
だけでできます。
フォーマット中(シーク中)に、フロッピーのヘッドが動く音が聞こえるので、終わり近くになったらディスクを抜けばできあがりです。
生の(フォーマット前の)ディスクで試してみてください。最後の方のセクタを読み込むと、エラーになるのが不良セクタありです。
不安定なセクタは難しいですよ。自前でフォーマットツールを用意しなければなりません。
通常は、
1track:[DATA部][GAP][DATA部][GAP]...
となっています。これを、
1track:[DATA部]
[DATA部][GAP][DATA部][GAP]...
というように、重ねて作ります。
昔の8bit機でなら、気軽にできたんですけどねぇ。
# そのころは2DDでした
簡単と言えば簡単ですね(方法としては少々無茶な感じですが)
ちなみに、HDドライブの場合は、フォーマット中に電源を落とすとか、、、
質問が変な方向に行きそうなので、解決にします。
有難うございました。
ツイート | ![]() |