Как работает «водяные знаки» в приложениях? - PullRequest
4 голосов
/ 23 июля 2011

Под водяным знаком я имею в виду: байтовый массив, который каким-то образом интегрирован в файл .exe / .dll, который можно искать.Многие программы по борьбе с пиратством / анти-реверс-инжинирингом включают в себя систему, называемую «водяные знаки», в качестве функции.Например VMProtect.

Как это работает?Если кто-то должен был взломать и / или скопировать защищенный двоичный файл, что именно мешает ему просто удалить водяной знак.Идея состоит в том, что вы, как создатель вашего программного обеспечения, можете загрузить пиратскую копию своей собственной программы, и тогда вы сможете увидеть, кто именно слил / загрузил эту копию.Что именно мешает злоумышленнику просто отсканировать водяные знаки и удалить их ??

Вторая часть этого вопроса: говорят, что водяной знак включается (или должен включаться) много раз в разные случайные позиции вдвоичный файл.Очевидно, они не полностью случайны.Потому что это повредит двоичный файл так же, как и неисправный жесткий диск.Программа не может просто перезаписать код в двоичном коде водяным знаком, это точно.Как программа защиты может включать водяной знак в разных (и случайных) местах двоичного файла?Как выбираются эти местоположения?

Третья часть: Предположим, у меня есть двоичный файл с водяными знаками.Как бы защитная программа потом сканировала водяные знаки.Как он снова находит водяные знаки?

Кроме того, как может быть информация, содержащаяся в водяном знаке (небольшая строка, идентифицирующая первоначального владельца копии)?Зашифрована ли информация каким-либо образом в водяной знак?

1 Ответ

1 голос
/ 23 июля 2011

Я не знаю, какова ваша цель, но:

  • водяные знаки, как вы описываете, помещая некоторую уникальную последовательность байтов в двоичный файл
  • , последовательность байтов должна быть вставлена ​​аккуратно, какне делать двоичный файл непригодным для использования (зависит от типа двоичного файла - т.е. .NET или .jar или нативного .EXE и т.эта конкретная система водяных знаков (например, вы можете использовать какой-то http://en.wikipedia.org/wiki/Steganography)
  • , все это очень затрудняет удаление водяных знаков при взломе программного обеспечения
  • программа защиты может сканировать водяные знаки, потому что этознает алгоритм и ключи, используемые для водяных знаков
  • Вы можете включить в водяные знаки все, что угодно (в зависимости от алгоритма) ... программное обеспечение водяных знаков должно каким-то образом зашифровать его, прежде чем помещать в водяной знак (оно может даже просто поставитьхэш в двоичный файл вместо реальной информации и все еще сможет идентифицировать ее)
...