Par filigrane, je veux dire: Un tableau d'octets qui est en quelque sorte intégré dans un fichier .exe/.dll, qui peut être recherché. De nombreux programmes anti-piratage/anti-reverse engineering intègrent un système appelé "filigranes" en tant qu'auteur. Par exemple VMProtect.Comment fonctionne le "watermarking" dans les applications?
Comment ça marche? Si quelqu'un devait craquer et/ou copier le fichier binaire protégé, ce qui l'empêche exactement de retirer le filigrane. L'idée est que vous, en tant que créateur de votre logiciel, pouvez télécharger une copie piratée de votre propre programme, alors vous pouvez voir qui a fui/téléchargé cette copie. Qu'est-ce qui empêche exactement un attaquant de simplement scanner les filigranes et de les supprimer ??
Deuxième partie de cette question: On dit qu'un filigrane est (ou devrait être) inclus plusieurs fois à différentes positions aléatoires dans le binaire. Évidemment, ils ne sont pas complètement aléatoires. Parce que cela endommagerait le binaire de la même manière qu'un disque dur défectueux. Le programme ne peut pas remplacer le code dans le fichier binaire avec le filigrane, c'est certain. Comment le programme de protection peut-il inclure un filigrane dans différents emplacements (et aléatoires) du binaire? Comment ces emplacements sont-ils choisis?
Troisième partie: En supposant que j'ai un binaire filigrané. Comment le programme de protection recherchera-t-il ultérieurement les filigranes? Comment retrouve-t-il les filigranes?
Comment peut-il y avoir des informations incluses avec le filigrane (une petite chaîne, identifiant le propriétaire original de la copie)? L'information est-elle en quelque sorte cryptée dans le filigrane?