混淆是一种可以用于对移动代码和软件知识产权进行保护的程序变换技术,本文首先介绍了混淆的原理和研究现状,然后对基于模糊谓词的混淆方法进行了研究,给出一种基于Java的构建模糊谓词的方案,该方案针对每一个程序分支点,读取链表结构,重新编码成模糊谓词的原始输出,通过背包加密系统将该输出映射成相应的判断条件,增加了模糊谓词的复杂性、抵抗攻击者动态分析的能力以及反编译的难度.