6

私はいくつかの画像を配布し、他の人が私のプログラムを使用していない限りそれらを見ることができないようにしたいです。私の意図は、他の画像ビューアがそれ以上読み取れないようにヘッダーを変更するJPGファイルを使用することです。たとえば、JPGの魔法の署名である7〜10バイトを削除できます。後で、私のプログラムはヘッダーを再構築し、JPGファイルを表示します。

質問:「壊れた」JPGファイルを読み取ったり、ヘッダーを復元したり、適切なファイルをディスクに保存したり、「適切な」JPGファイルとして再ロードしたりせずに、その場でこれを行うにはどうすればよいですか。

4

6 に答える 6

16

「壊れた」ファイルをTMemoryStreamにロードし、メモリ内のバイトにパッチを適用し、 TGraphic.LoadFromStream()を使用して固定JPGファイルをロードします。

于 2009-04-10T19:24:46.667 に答える
6

それらを暗号化します。暗号化されたイメージをロードし、メモリで復号化してから、mghieが提案したようにloadfromstreamを実行します。

于 2009-04-10T21:16:54.960 に答える
4

秘密鍵で画像を暗号化し、画像を見たい人に公開鍵を配布してみませんか?カスタムソフトウェアを作成して配布するよりも、公開鍵を配布する方がはるかに簡単です。忘れないで; 画面に表示されているものはすべて画面キャプチャできます。カスタムマングルされたJPEGは、アプリでのみ表示できるという事実は保護されていません。また、忘れないでください。人々はあなたのソフトウェアを壊れた画像で簡単に配布することができます。

于 2009-04-10T22:15:06.380 に答える
2

Mghieの答えはあなたが見つけるのとほぼ同じくらい良いですが、それはあまり効果的ではないでしょう。誰かがあなたの画像を見たいと思っていて、画像形式について何か知っている場合は、16進エディタで開き、マジックヘッダーが削除されたJPEGとして表示されるものを認識している可能性があります。

誰かがあなたの画像を見るのを本当に防ぎたいのなら、あなた自身の画像フォーマットを構築し(実際、それは思ったほど難しくはありません)、メタデータをできるだけ少なくして、それがうまくいくことを願っています。または、それらを暗号化するか、アーカイブに入れて(最良の結果を得るために独自のアーカイブ形式を構築します)、それが機能することを期待ます。

最終的には、エンコードされたものはすべて、表示する前にデコードする必要があります。十分な才能のあるハッカーは、デコードルーチンをたどって、どのように機能するかを理解できます。とにかくユーザーから物事を隠そうとしているのはなぜですか?

于 2009-04-10T20:05:42.840 に答える
1

画像を暗号化されたリソースとしてバイトパッキングすることで、それらをより困難にすることができます。しかし、他のすべてのように、画像を取り出すことができるファイルにアクセスできる場合。それは、どれだけの努力を喜んで使用するかに依存します。

于 2009-04-10T20:12:02.230 に答える
0

必要な安全性に応じて、ファイル拡張子をアプリケーションでのみ開かれる拡張子に難読化するなどの簡単な操作を行うことができます。これは、変更する超秘密の画像ではない場合にのみ機能します。

于 2009-04-12T18:28:49.700 に答える