Под водяным знаком я имею в виду: байтовый массив, который каким-то образом интегрирован в файл .exe / .dll, который можно искать.Многие программы по борьбе с пиратством / анти-реверс-инжинирингом включают в себя систему, называемую «водяные знаки», в качестве функции.Например VMProtect.
Как это работает?Если кто-то должен был взломать и / или скопировать защищенный двоичный файл, что именно мешает ему просто удалить водяной знак.Идея состоит в том, что вы, как создатель вашего программного обеспечения, можете загрузить пиратскую копию своей собственной программы, и тогда вы сможете увидеть, кто именно слил / загрузил эту копию.Что именно мешает злоумышленнику просто отсканировать водяные знаки и удалить их ??
Вторая часть этого вопроса: говорят, что водяной знак включается (или должен включаться) много раз в разные случайные позиции вдвоичный файл.Очевидно, они не полностью случайны.Потому что это повредит двоичный файл так же, как и неисправный жесткий диск.Программа не может просто перезаписать код в двоичном коде водяным знаком, это точно.Как программа защиты может включать водяной знак в разных (и случайных) местах двоичного файла?Как выбираются эти местоположения?
Третья часть: Предположим, у меня есть двоичный файл с водяными знаками.Как бы защитная программа потом сканировала водяные знаки.Как он снова находит водяные знаки?
Кроме того, как может быть информация, содержащаяся в водяном знаке (небольшая строка, идентифицирующая первоначального владельца копии)?Зашифрована ли информация каким-либо образом в водяной знак?