5

透かしとは、次のことを意味します。検索可能な.exe/.dllファイルに何らかの形で統合されているバイト配列。多くの著作権侵害対策/リバースエンジニアリング対策プログラムには、機能として「透かし」と呼ばれるシステムが含まれています。たとえば、VMProtect。

これはどのように作動しますか?誰かが保護されたバイナリをクラックおよび/またはコピーした場合、透かしを削除することを正確に妨げるものは何ですか。アイデアは、ソフトウェアの作成者として、自分のプログラムの海賊版をダウンロードして、誰がこのコピーを正確にリーク/アップロードしたかを確認できるということです。攻撃者が透かしをスキャンして削除することを正確に防ぐのは何ですか?

この質問の2番目の部分:透かしは、バイナリのさまざまなランダムな位置に何度も含まれている(または含まれている必要がある)と言われています。明らかに、それらは完全にランダムではありません。欠陥のあるハードドライブと同じようにバイナリが損傷するためです。プログラムは、バイナリのコードを透かしで上書きすることはできません。確かにそうです。保護プログラムは、バイナリのさまざまな(そしてランダムな)場所に透かしをどのように含めることができますか?これらの場所はどのように選択されますか?

3番目の部分:透かし入りのバイナリがあると仮定します。保護プログラムは後で透かしをどのようにスキャンしますか。透かしを再び見つけるにはどうすればよいですか?

また、透かしに含まれる情報(コピーの元の所有者を識別する小さな文字列)をどのように含めることができますか?情報は何らかの形で透かしに暗号化されていますか?

4

1 に答える 1

1

私はあなたの目標が何であるかわかりませんが:

  • 透かしは、いくつかの一意のバイトシーケンスをバイナリに入れることを説明するとおりです
  • バイトシーケンスは、バイナリを使用できなくしないように注意深く挿入する必要があります(バイナリのタイプ(つまり、.NET、.jar、ネイティブ.EXEなど)によって異なります)。
  • バイトシーケンスは、この特定の透かしシステムに精通していない人にとっては識別しにくいものでなければなりません(たとえば、ある種のhttp://en.wikipedia.org/wiki/Steganographyを使用できます) 。
  • これらすべてが、ソフトウェアをクラックするときに透かしを削除することを非常に困難にします
  • 保護プログラムは、透かしに使用されるアルゴリズムとキーを知っているため、透かしをスキャンできます。
  • 透かしには何でも含めることができます(アルゴリズムによって異なります)...透かしソフトウェアは、透かしに入れる前に何らかの方法で暗号化する必要があります(実際の情報の代わりにハッシュをバイナリに入れても、それでも可能です)それを特定する)
于 2011-07-23T01:29:32.247 に答える