다음을 통해 공유


제어 흐름 난독 처리

이 과정에는 유효한 실행 논리를 생성하는 분기 구문, 조건부 구문, 반복 구문이 모두 사용되지만 디컴파일을 시도하면 비결정적인 의미가 생성됩니다. 제어 흐름 난독 처리는 크래커가 분석하기 매우 어려운 복잡한 논리를 만듭니다. 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. All rights reserved.