模糊处理的目的

模糊处理旨在引起混淆。随着混淆的加重,人脑进行多方面智力思维的能力会逐渐降低。请注意,这种规则并不改变前向(可执行的)逻辑,而只是将其表示为不可理解的形式。当一个编写出色的模糊处理工具对可读的程序指令进行处理之后,可能产生的一个副作用是,输出结果不仅使人看了不知所云,而且它还会使反编译器无从下手。尽管保留了前向(可执行的)逻辑,但反向语义却呈现出非确定性。其结果是,通过反向工程将指令翻译为“编程语言”(如 C# 或 VB)的任何尝试都很可能失败,因为转换结果含混不清。深度模糊处理能产生无数种可能的反编译结果,如果将其中的一些进行重新编译,则可能会产生错误的逻辑。反编译器只是一种计算机器,它无法知道哪种可能的结果经过重新编译后在语义上是有效的。人类编写和使用反编译器是为了自动执行人类难以胜任的反编译算法。所以,可以这样说,如果连反编译器都对模糊处理程序奈何不得,能力更逊一筹的人类自然就更加束手无策了。

原始的模糊处理程序实质上是将在代码中找到的标识符重命名为不可读的内容。它们可能使用哈希技术,或者对字符集进行算术偏移,将字符变为不可读字符或不可输出字符。这些技术虽然表面上很有效,可是很显然,它们是可逆的技术,因此很难起到保护作用。PreEmptive 的模糊处理工具远远超过了这种原始的重命名方法,它使用很多其他颇具独创性的方法来“引起混淆”,使得几乎不可能对他人的知识产权进行反向工程处理(而且代价太大,得不偿失)。

© 2002-2007 PreEmptive Solutions. 保留所有权利。