2009-10-06 6 views
1

dotfuscator를 사용하여 소스 코드를 보호했으며 공용 메서드와 클래스 이름을 유지하기 위해 이름 바꾸기를 사용하지 않도록 설정했으나 반사체를 사용하여 암호화 후에 어셈블리를 많이 변경하지 않은 것을 확인했습니다 . 나는 여전히 소스 코드를 볼 수있다. 어떤 정보입니까?dotfuscator에서 이름 바꾸기 사용 안함

답변

0

dotfuscator는 코드를 흐리게 처리하기 만하면 눈을 완전히 감추지 않습니다.

Reflector에서 메서드 본문을 실제로 숨기려면 Clisecure을 사용하는 것이 좋습니다. Clisecure는 모든 메서드 이름을 유지하면서 논리 본문을 사라지게 할 수 있습니다.

논리를 난독 화하는 옵션이 있습니까? 당신은 그것을 사용해야합니다; 그것은 당신의 논리를 이해하기가 더 어렵게 만들 것입니다.

1

어셈블리의 기호 (메서드, 형식 등)의 이름을 바꾸지 않는 이름 바꾸기를 사용하지 않도록 설정하면 난독 화의 많은 유용성이 완화됩니다.

이름 바꾸기를 비활성화하는 대신 공개적으로 액세스 할 수있는 메서드의 이름을 유지하려는 경우 public 메서드를 이름 바꾸기에서 제외하려는 각 어셈블리에 대해 을 설정합니다.

또한 이름을 바꾸면 반사경이 디 컴파일 된 소스를 표시하지 않습니다. 디 컴파일을 중단하려면 Control Flow 난독 화를 활성화해야합니다.

3

Obfuscation 특성을 사용하여 이름 바꾸기 단계에서 제외 할 내용을 미세하게 지정할 수 있습니다. 예를 들어 부동산의 경우 :

[Obfuscation(Feature = "renaming", Exclude = true)] 
public int MyProperty 
{ 
    get { return this.prop; } 
}