2011-07-28 8 views
4

컴파일 된 웹 사이트에서 SmartAssembly 난독 화 도구를 실험하고있었습니다. 대부분의 코드에서 작동하지만 App_Code의 모든 클래스는 난독 화되지 않습니다. 예 : App_Code에 다음과 같은 클래스가 있습니다.난독 화를 건너 뛰는 SmartAssembly

public class Helper 
{ 
    public Helper() 
    { 
    } 

    public static String GetData() 
    { 
     String text = DateTime.Now.ToString(); 
     return text; 
    } 

    ---Other methods---- 
} 

이 헬퍼 클래스는 건너 뜁니다. Helper 클래스와 그 메소드에서 이름 짓기는하지 않습니다. SmartAssembly를 사용하는 사람이이 점에서 도움이 될 수 있습니까? SmartAssembly보다 비용 효율적인 다른 도구 (무료 또는 유료)가 있습니까?

답변

8
  • 면책 조항 : 나는 그들이 외부에서 사용되는 가정하기 때문에 *

SA (SmartAssembly)가 자동으로 난독 및 가지 치기에서 DLL을 공공 회원을 제외 SmartAssembly에 레드 게이트에 대해 작동합니다. 당신은 난독 라인처럼 보이게하기 위해 saproj 파일을 편집하여이 동작을 재정의 할 수 있습니다

<Obfuscation ExcludePublicMembers="0" Obfuscate="1"> 

이에 상관없이 공개 상태의 모든 회원을 당황하게됩니다.

IIS에서는 특정 이름의 특정 공개 멤버를 찾기 위해 리플렉션을 사용할 수 있으므로 문제가 발생할 수 있습니다. 이 경우 해당 항목을 가지 치기/난독 화에서 제외해야합니다.

난독 화 도구의 경우 SmartAssembly는 매우 강력한 obfuscator (해커가 동의 함)이며 많은 추가 기능이 있습니다 (오류보고, 기능 사용보고 등). 물론 SmartAssembly 이외의 다른 번호가 있습니다. Dotfuscator 또는 심해 Obfuscator. 일부는 다소 좋고 일부는 매우 나쁘다. http://www.red-gate.com/products/dotnet-development/smartassembly/support

+1

감사 :

당신이 더 이상 문제를 가지고있는 경우에는, 우리를 물어 온다. 나는 난독화할 것인지 아닌지를 완전히 통제 할 필요가있다. 예를 들어 모든 공용 멤버에 대해 켤 수 있지만 [WebMethod()] 특성이 적용된 멤버는 제외 할 수 있습니다. 가능한가? – kumar

+1

설정을 사용해 보았습니다. 그것은 작동하지 않았다. 내 예를 시험해 보라. Classlibrary에 코드를 넣고 빌드하고 saproj를 변경하지만 여전히 난독화할 수는 없습니다. 또 다른 한 가지는 항상 saproj 파일을 덮어 쓰는 것입니다. UI의 설정을 제어하는 ​​방법이 있어야합니다. 나는 Crypto Obfuscator를 시도했고, 난독 화와 가격면에서 훨씬 더 좋아 보인다. – kumar

+0

나는 말했다한다 : 그것은, 관련 노드 아래의 확인 예 : <난독 ExcludePublicMembers = "0"당황 = "1" –

2

public 메소드는 기본적으로 (exes에서 DLL로) 난독 화되지 않습니다. 당신은 난독 화를 강요 할 수 있지만 코드 장식을 사용해야합니다. 더 자세한 내용 can be found here.

관련 문제