[.net] .NET 난독 화 도구 / 전략 [폐쇄]

내 제품에는 ASP.NET, Windows Forms 앱 및 Windows 서비스와 같은 여러 구성 요소가 있습니다. 코드의 95 % 정도가 VB.NET으로 작성되었습니다.

지적 재산권상의 이유로 코드를 난독 처리해야하며, 지금까지는 5 세 이상인 dotfuscator 버전을 사용하고 있습니다. 새로운 세대 도구로 옮겨야 할 때라고 생각합니다. 내가 찾고있는 것은 새로운 난독 화기를 검색 할 때 고려해야 할 요구 사항 목록입니다.

내가 지금까지 알아야 할 것 :

  • 직렬화 / 역 직렬화 . 현재 솔루션에서는이전에 직렬화 된 데이터를로드 할 수 없다는 고통이 너무 커서도구에클래스 데이터 멤버를 난독 화 하지 말라고 간단히지시합니다.
  • 빌드 프로세스와 통합
  • ASP.NET 작업 . 과거에는 .dll 이름 변경으로 인해이 문제가 발견되었습니다 (종종 페이지 당 하나). 모든 도구가 제대로 처리되지는 않습니다.


답변

.Net 1.1 로의 난독 화가 필수적이었습니다. 코드를 쉽게 컴파일 할 수 없었으며 어셈블리, IL, C # 코드로 이동하여 아주 적은 노력으로 다시 컴파일 할 수있었습니다.

이제 .Net 3.5에서는 확실하지 않습니다. 3.5 어셈블리를 디 컴파일 해보십시오. 당신이 얻는 것은 컴파일에서 먼 길입니다.

3.5 (1.1보다 훨씬 낫다)에서 최적화를 추가하고 익명 유형, 대리자 등이 리플렉션에 의해 처리되는 방식을 추가합니다 (다시 컴파일해야하는 악몽). 람다 식, Linq-syntax 및와 같은 컴파일러 ‘매직’ var및 C # 2 함수 추가yield (이름을 읽을 수없는 새 클래스가 생성됨)를 추가하십시오. 디 컴파일 된 코드는 컴파일 할 수 없을 정도로 멀다.

많은 시간을 가진 전문 팀은 여전히 ​​다시 역 엔지니어링 할 수 있지만, 난독 화 된 코드에서도 마찬가지입니다. 그들이 가져온 코드는 유지 관리가 불가능하고 버그가 많을 가능성이 높습니다.

어셈블리에 키 서명을하는 것이 좋습니다 (해커가 모두 다시 컴파일해야하는 어셈블리를 다시 컴파일 할 수 있는지 여부). 난독 화가 가치가 있다고 생각하지 않습니다.


답변

우리는 많은 난독 화를 시도했습니다. 원격을 사용하는 대형 클라이언트 / 서버 앱에서는 작동하지 않습니다. 문제는 클라이언트와 서버가 일부 dll을 공유하고 처리 할 수있는 난독 화기를 찾지 못했다는 것입니다.

우리는 DotFuscator Pro, SmartAssembly, XenoCode, Salamander 및 이름이 나를 탈출하는 몇 가지 작은 시간 응용 프로그램을 시도했습니다.

솔직히 나는 난독 화가 큰 해킹이라고 확신합니다.

그것이 해결하는 문제조차도 전적으로 실제적인 문제는 아닙니다. 실제로 보호해야 할 유일한 것은 연결 문자열, 활성화 코드, 보안에 민감한 것입니다. 다른 회사가 전체 코드베이스를 리버스 엔지니어링하고 그로부터 경쟁 제품을 만들 겠다는 넌센스는 현실이 아니라 편집증 관리자의 악몽에서 비롯된 것입니다.


답변

나는 지금 ‘Knee Deep’이며 좋은 해결책을 찾으려고 노력하고 있습니다. 지금까지의 인상은 다음과 같습니다.

Xenocode-.net 2.0 어셈블리를 난독 처리하는 데 사용했던 Xenocode2005의 이전 라이센스가 있습니다. XP에서 잘 작동했으며 적절한 솔루션이었습니다. 내 현재 프로젝트는 .net 3.5이며 Vista에 있습니다. 지원에 따르면 이동을 제안했지만 2005 버전은 Vista (크래시)에서도 작동하지 않으므로 지금은 저렴한 가격으로 ‘PostBuild2008’을 구매해야합니다 $ 1900 중 이것은 좋은 도구 일지 모르지만 알아낼 수는 없습니다. 너무 비싼.

Reactor.Net- 훨씬 매력적인 가격대이며 독립형 Executeable에서 잘 작동했습니다. 라이센싱 모듈도 훌륭했고 많은 노력을 아끼지 않았을 것입니다. 불행히도, 그것은 핵심 기능이 누락되어 있으며 난독 화에서 물건을 제외시키는 기능입니다. 따라서 필요한 결과를 얻을 수 없습니다 (여러 어셈블리를 병합하고 일부를 난독 처리하고 다른 것을 폐색하지 않음).

SmartAssembly- 나는 이것을 위해 Eval을 다운로드했으며 완벽하게 작동했습니다. 원하는 모든 것을 얻을 수 있었고 인터페이스는 일류였습니다. 가격대는 여전히 약간 무겁습니다.

Dotfuscator Pro- 웹 사이트에서 가격을 찾을 수 없습니다. 현재 견적을 받기 위해 토론 중입니다. 불길한 소리.

Confuser- 이름에서 알 수 있듯이 ppl을 혼란스럽게 만드는 오픈 소스 프로젝트입니다.

참고 : ConfuserEx는 GitHub 리포지토리의 이슈 # 498 에 따라 “손상된”것으로보고되었습니다 .


답변

무료 제품을 찾고 있다면 Visual Studio 또는 Eazfuscator.NET 과 함께 제공되는 DotObfuscator Community Edition을 사용해보십시오 .


2012 년 6 월 29 일부터 Eazfuscator.NET은 이제 상용입니다. 사용 가능한 마지막 무료 버전은 3.3입니다.


답변

나는 smartassembly를 사용하고 있습니다. 기본적으로 dll을 선택하면 난독 화됩니다. 잘 작동하는 것 같고 지금까지 아무런 문제가 없었습니다. 사용하기 매우 쉽습니다.


답변

나는 시장에서 거의 모든 난 독자를 시험해 보았고 SmartAssembly는 내 의견으로는 최고입니다.


답변

SmartAssembly도 사용하고 있습니다. Ezrinz .Net Reactor가 .net 응용 프로그램에서 훨씬 나아졌습니다. 모노를 난독 화하고 지원하며 어셈블리를 병합하며 평가판을 만들거나 라이센스를 특정 컴퓨터에 연결하는 매우 유용한 라이센싱 모듈도 있습니다 (매우 구현하기 쉽습니다). 가격도 매우 경쟁력이 있으며 필요할 때 빠른 속도로 지원해야합니다.
에지 리즈

나는 분명히 제품을 좋아하고 회사와 관련이없는 고객입니다.