透かしとは、次のことを意味します。検索可能な.exe/.dllファイルに何らかの形で統合されているバイト配列。多くの著作権侵害対策/リバースエンジニアリング対策プログラムには、機能として「透かし」と呼ばれるシステムが含まれています。たとえば、VMProtect。
これはどのように作動しますか?誰かが保護されたバイナリをクラックおよび/またはコピーした場合、透かしを削除することを正確に妨げるものは何ですか。アイデアは、ソフトウェアの作成者として、自分のプログラムの海賊版をダウンロードして、誰がこのコピーを正確にリーク/アップロードしたかを確認できるということです。攻撃者が透かしをスキャンして削除することを正確に防ぐのは何ですか?
この質問の2番目の部分:透かしは、バイナリのさまざまなランダムな位置に何度も含まれている(または含まれている必要がある)と言われています。明らかに、それらは完全にランダムではありません。欠陥のあるハードドライブと同じようにバイナリが損傷するためです。プログラムは、バイナリのコードを透かしで上書きすることはできません。確かにそうです。保護プログラムは、バイナリのさまざまな(そしてランダムな)場所に透かしをどのように含めることができますか?これらの場所はどのように選択されますか?
3番目の部分:透かし入りのバイナリがあると仮定します。保護プログラムは後で透かしをどのようにスキャンしますか。透かしを再び見つけるにはどうすればよいですか?
また、透かしに含まれる情報(コピーの元の所有者を識別する小さな文字列)をどのように含めることができますか?情報は何らかの形で透かしに暗号化されていますか?