10.1.2 软件水印

10.1.2 软件水印

软件水印根据水印被加载的时刻不同,可以分为静态软件水印和动态软件水印。静态水印嵌入在程序的源代码或数据中,不受程序是否运行的影响。

动态水印隐藏在程序的执行状态中,需要输入特定的序列才能触发水印的生成。静态水印又可以进一步分为静态数据水印和静态代码水印。区别于静态水印,动态水印则保存在程序的执行状态中,而不是程序源代码本身。这种水印可用于证明程序是否经过了迷乱变换处理。

动态水印主要有三类:Easter Egg水印、数据结构水印和执行状态水印。其中,每种情况都需要有预先输入,然后根据输入,程序会运行到某种状态,这些状态就代表水印。