在现有的软件水印工作中,水印通常与载体程序间不存在逻辑上的关联性,因此,攻击者可在载体程序正常运行的情况下移除水印代码,继而非法获得软件的所有权。为有效解决这一问题,提出了一种基于自修改的动态耦合软件水印方法,该方法将水印的触发条件与载体程序的控制流进行结合,增强水印与载体程序的逻辑关联性,并引入自修改代码保护机制对水印触发条件、动态加解密和关联路径分支进行保护。该方法极大地提高了攻击水印的难度,显著增加了攻击者的计算开销。通过安全性分析表明,该方法能够有效抵御逆向工程和分析。