我所说的水印是指:以某种方式集成到.exe / .dll文件中的字节数组,可供搜索。许多反盗版/反反向工程程序都包含一个称为“水印”的系统作为一个特征。例如VMProtect。
这是怎么回事?如果有人要破解和/或复制受保护的二进制文件,究竟是什么阻止了他删除水印。这个想法是,作为你的软件的创建者,你可以下载你自己程序的盗版副本,然后你就可以知道到底是谁泄露/上传了这个副本。究竟是什么阻止了攻击者只扫描水印并将其删除?
这个问题的第二部分:据说一个水印被(或应该被)多次包含在二进制文件中不同的随机位置。显然,它们不是完全随机的。因为这将以与损坏硬盘驱动器相同的方式损坏二进制文件。程序不能仅仅用水印覆盖二进制代码,这是肯定的。保护程序如何在二进制文件的不同(和随机)位置包含水印?这些位置是如何选择的?
第三部分:假设我有一个带水印的二进制文件。保护程序稍后将如何扫描水印。它是如何再次找到水印的?
另外,如何在水印中包含信息(一个小字符串,用于标识副本的原始所有者)?信息以某种方式加密到水印中了吗?
发布于 2011-07-23 09:29:32
我不知道你的目标是什么但是:
数字水印(
)正如您所描述的那样,将一些独特的字节序列放入二进制水印中,字节序列mst要小心插入,以免使二进制文件不可用(取决于二进制文件的类型-即.NET或.jar或原生.EXE等)
https://stackoverflow.com/questions/6797653
复制相似问题