防止分析是指将程序中的代码或者数据通过各种技术手段(如变形、移位等)变换为更加复杂和不直观的等价代码。虽然在程序执行结果上是相同的,但是这样做将大大提高分析者对代码的阅读和理解难度。这种技术手段的最终思想都是:用计算机在速度和存储量上的优势使代码变得复杂,拖延分析者对程序代码的理解时间,迫使分析者无法正确理解程序代码的真正用意,也就无从改变程序的运行流程甚至破解程序。
防止分析技术主要包括代码混淆、软件水印、原生代码保护、资源保护、加壳、资源和代码加密等。