该过程对可产生有效前向(可执行的)逻辑的分支、条件和循环构造进行综合,但其结果在反编译时将产生非确定性的语义结果。控制流模糊处理能产生令解密者极难分析的通心粉逻辑。请看由 Dotfuscator Professional Edition 处理过的以下示例:
模糊处理之前的原始源代码 ?2001, Microsoft Corporation (WordCount.cs C# 示例代码的片段) |
---|
public int CompareTo(Object o) { int n = occurrences ((WordOccurrence)o).occurrences; if (n == 0) { n = String.Compare(word, ((WordOccurrence)o).word); } return(n); } |
在 Dotfuscator Professional Edition 控制流模糊处理之后, 经反向工程处理得到的 源代码 |
---|
public virtual int _a(Object A_0) { int local0; int local1; local0 = this.a (c) A_0.a; if (local0 != 0) goto i0; goto i1; while (true) { return local1; i0: local1 = local0; } i1: local0 = System.String.Compare(this.b, (c) A_0.b); goto i0; } |
© 2002-2007 PreEmptive Solutions. 保留所有权利。