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


160

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

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

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

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

여러 사본 : google.com/…
John Rasch


코드를 난독 처리하기위한 대체 솔루션 은 Agile.net .NET 난독 화 를 참조하십시오 . 특히 코드 가상화 기능을 확인하십시오.
sutton bernard

여기 SO에서 ArmDot에서 Xenocode까지의 난독 화기 목록을 참조하십시오 : stackoverflow.com/a/60054/1480104
Artem Razin

답변:


43

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

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

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

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

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


127
완전히 동의하지 않습니다. 서명은 난독 처리를 대체 할 수 없습니다. 서명은 다시 코드를 해킹하는 것을 목표로합니다. 그러나 아이디어, 알고리즘 등 난독 화를 숨길 수있는 유일한 방법입니다.
Shrike

24
서명이 난독 화를 대체 할 수 있다고 생각하지 않으며 해킹하기가 훨씬 어렵습니다. 난독 화는 당신의 아이디어를 숨기지 못합니다-어쨌든 그들이 그것을 복사하고 싶다면, 난독 화는 훨씬 더 어렵지 않을 것입니다. 특히 알고리즘이 모든 연산자이기 때문에 난독 화는 그에 많은 영향을 미치지 않습니다. 일반적으로 추출하기 가장 쉬운 것 중 하나입니다.
Keith

6
폐기 할 수있는 리소스가 많은 팀에 대해 말하면 난독 화는 가치가 없지만, 난독 화는 리플렉터를 사용하여 어셈블리를 열고 소스 코드를 저장하는 것 이상을 원하는 "평균"개발자로부터 보호하기에 좋습니다. 프로젝트 및 조정으로. 난독 화는 그 자리에 있으며 그것을 완전히 배제하는 것은 잘못된 태도입니다. 방어 층입니다.
면도기

5
디 컴파일 할 때 소스는 지저분한 상태이지만 논리적으로 여전히 동일한 경로를 따릅니다. 컴파일러 'magic'부두는 없습니다. 최근에 저장소를 잃어 버렸고 소스 코드를 복구하기 위해 리플렉터를 사용했기 때문에 알고 있습니다. 난독 화는 빌드 프로세스의 일부가 아닌 경우 "유지"하기 만하면됩니다. 오버 헤드가 추가되지만 계산 집약적 인 앱을 모두 작성하고 있습니까? 아니요. 약한 공격자에게는 약한 방어 계층입니다.
면도기

8
얼마나 끔찍한 대답입니까? 실제로 최근에 디 컴파일을 시도 했습니까? 디 컴파일러는 입수했습니다 더 나은 , 더 악화되지. 반사기는 물론 원래의 소스 품질에 가깝습니다.
BlueRaja-대니 Pflughoeft

50

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

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

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

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


14
브라보 유다! 앞서 나가는 유일한 방법은 이미 작성한 코드에 집착하지 않고 새롭고 더 나은 코드를 개발하는 것입니다. 당신은 시간과 노력, 심지어 돈과 관련이없는 것에 투자하게됩니다. 난독 화는 그만한 가치가 없습니다.
David Rutten

180
그렇기 때문에이 평판 시스템이 마음에 들지 않으며 19 표를 얻었으며 아수를 제공하지 않았습니다. 사용자는 난독 처리에 대한 귀하의 의견을 요구하지 않고, 난독 화 기술에 대해 더 많이 알고 싶어합니다.
backslash17

32
기존의 여러 난 독자를 사용한 경험에 대한 정보를 제공했습니다. 그리고 내 의견은 그 경험에서 비롯된 것입니다.
유다 가브리엘 히 망고

6
"Frankly, 난독 화가 큰 해킹이라고 확신합니다." 이것보다 더 잘 넣을 수 없었습니다.
Andrei Rînea

15
코드를 보호하는 데 필요한 가장 유효한 요구는 값 비싼 전문 앱을 소수의 사용자 만 내부적으로 사용할 회사에 판매하는 것입니다. 유혹은 내부 해킹 및 수정을 자체 목적으로 허용하거나 유지 관리 계약을 피하거나 시험판을 해킹하여 필요한 제품을 얻는 것입니다.
브래디 모리츠

44

나는 지금 '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 에 따라 "손상된"것으로보고되었습니다 .


8
dotfuscator가 얼마나 인용했는지 게시 할 수 있습니까?
Anthony Johnston

6
@Anthony 최근에 2011 년 초에 라이센스를 구입했습니다. 견적은 최소 1 대의 빌드 머신 + 1 개의 개발자 라이센스에 대해 $ 2475 USD입니다. 12 개월의 업그레이드 및 지원이 포함됩니다.
Yoshi

2
이 게시물을 만들 때 .NET Reactor를 사용하지 않았지만 이제 System.Reflection.Obfuscation 속성을 사용하여 코드의 일부를 난독 처리에서 제외 할 수 있습니다. 모든 메소드 또는 모든 직렬화 가능 유형을 제외하는 것과 같은 작업을 수행 할 수있는 일부 설정도 있습니다.
benteight

5
DotFuscator는 나에게 $ 4999를 인용했는데, 이는 10 % 할인으로 인해 $ 4500로 줄었습니다. 이것은 1 개의 개발 라이센스를위한 것입니다! 토론에서 $ 2500로 줄었지만 여전히 너무 비싸다.
Oliver

3
.NET Reactor에는 이제 특정 클래스, 메소드 또는 속성을 난독 처리에서 제외 할 수있는 제외 규칙 편집기가 있습니다. 또한 "병합 만"확인란을 사용하여 특정 dll을 난독 처리에서 제외 할 수 있습니다
avitenberg


18

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


6
Smartassembly는 매우 쓸모가 없습니다. 크래커는 응용 프로그램을 DumbAssembly에 넣고 마우스 클릭으로 모든 "보호"를 제거합니다. woodmann.com/collaborative/tools/index.php/Dumbassembly
Elmue

2
현재 Google 안전 브라우징은 woodmann 사이트를 안전하지 않은 것으로 표시합니다. 또한 woodmann의 사이트에는 이전에 맬웨어 감염이 발생한 사람에 대한 전체 기사가 있으므로 Google이 신뢰하지 않는 사이트를 탐색하고 싶지 않습니다.
Brian

10

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


6
Smartassembly는 매우 쓸모가 없습니다. 크래커는 응용 프로그램을 DumbAssembly에 넣고 마우스 클릭으로 모든 "보호"를 제거합니다. woodmann.com/collaborative/tools/index.php/Dumbassembly
Elmue

3
현재 Google 안전 브라우징은 woodmann 사이트를 안전하지 않은 것으로 표시합니다. 또한 woodmann의 사이트에는 이전에 맬웨어 감염이 발생한 사람에 대한 전체 기사가 있으므로 Google이 신뢰하지 않는 사이트를 탐색하고 싶지 않습니다.
Brian

9

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

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


.Net Reactor가 맹세하는 많은 친구가 있습니다. 제품 웹 사이트에는 없지만 제품에 유용한 Google 그룹이 있습니다. groups.google.com/group/net-reactor-users?hl=ko
Bittercoder

2
Eziriz의 경우 +1 나는 그것으로 훌륭한 결과를 얻었습니다. IMO는 지금 최고입니다.
드루이드

4
.NET 반응기가 짜증납니다. 컴퓨터를 변경하고 라이센스 파일과 관련하여 전자 메일을 두 번 보냈는데 응답이 없습니다. .NET Reactor 라이센스가 하드웨어로 잠겨 있음을 알 수 있습니다.
OrElse

2
정상입니다. 그들이 당신을 믿는다 고 어떻게 생각하십니까? 컴퓨터를 실제로 변경했으며 컴퓨터에서 친구의 라이센스를 실행하려고하지 않는다는 것을 어떻게 알 수 있습니까? 그것은 하드웨어 잠금 장치입니다! 여러 대의 컴퓨터에서 사용할 수 있다면 하드웨어 잠금은 쓸모가 없습니다.
Elmue

(PS. 우리는이 SO 반응을 바탕으로 Reactor를 크게 선택했습니다.)
Chris

7

짧은 대답은 당신이 할 수 없다는 것입니다.

누군가가 코드를 읽기 어렵게 만드는 다양한 도구가 있습니다. 그 중 일부는 다른 답변에서 지적되었습니다.

그러나 이러한 모든 작업은 읽기가 더 어려워 지므로 필요한 노력의 양이 증가합니다. 종종 이것은 독자를 방해하기에 충분하지만, 코드를 파 헤치려는 사람은 항상 그렇게 할 수 있습니다.


51
if (efforts.Required> codeFromScratch.Costs) DoNoReverseEngineer ();
Nicolas Dorier

41
@NicolasDorier,Operator '>' cannot be applied to operands of type 'System.TimeSpan' and 'decimal'
Saeb Amini

21
@Saeb는 TimeSpan에서 돈 (십진법)으로 캐스팅하는 것이 대부분의 비즈니스에 관한 것이라고 확신합니다.
hultqvist

6

원격 기능을 지원하는 asp.net 및 winform 인터페이스가있는 다중 계층 앱이 있습니다. 모든 종류의 예기치 않은 방법으로 문제가 될 수 있고 내 의견으로는 가치가없는 로더를 생성하는 암호화 유형을 제외하고는 난독 화기를 사용하는 데 아무런 문제가 없었습니다. 실제로 내 조언은 "전염병과 같은 암호화 로더 유형 난독 화를 피하십시오"의 라인을 따라야 할 것입니다. :)

내 경험에 따르면 모든 obfuscator는 asp.net 및 원격을 포함하여 .net의 모든 측면에서 잘 작동합니다. 설정에 친숙해지고 코드의 어느 영역에서 얼마나 멀리 밀어 넣을 수 있는지 알아야합니다. 그리고 당신이 얻는 것에 대해 리버스 엔지니어링을 시도하고 그것이 다양한 설정에서 어떻게 작동하는지보십시오.

우리는 상업적인 앱에서 수년에 걸쳐 사용했으며 가격이 맞기 때문에 9rays.net의 Spices obfuscator에 정착했습니다. 가격이 맞기 때문에 일을하고 더 이상 몇 년 동안 지원이 필요하지 않았지만 정직해야합니다. remoting 및 asp.net에서 올바르게 작동하게하려면 어떤 난독 화기를 사용하는 것이 중요하지 않다고 생각하고 문제와 학습 곡선이 모두 동일합니다.

다른 사람들이 당신이 실제로하고있는 모든 것을 언급했듯이 자물쇠와 같습니다. 그렇지 않으면 정직한 사람들을 멀리하고 단순히 앱을 다시 컴파일하는 것을 어렵게 만듭니다.

라이센싱은 대개 대부분의 사람들에게 핵심 영역이며, 어쨌든 라이센싱을 위해 디지털 서명 인증서 시스템을 사용해야합니다. 현명한 시스템이 없다면 라이센싱 시스템을 망가 뜨린 사람들은 처음부터 구매하지 않을 것입니다.

이것을 너무 멀리 가져 가서 고객과 비즈니스에 부정적인 영향을 미치고, 간단하고 합리적인 일을하고 걱정하지 마십시오.


5

지난 이틀 동안 저는 Dotfuscator Community Edition advanced (Visual Studio와 함께 제공되는 기본 CE를 등록한 후 무료 다운로드)를 실험했습니다.

더 많은 사람들이 난독 화를 기본 옵션으로 사용하지 않는 이유는 위험에 비해 심각한 번거 로움 때문이라고 생각합니다. 소규모 테스트 프로젝트에서는 난독 화 된 코드를 많은 노력으로 실행할 수 있습니다. ClickOnce를 통한 간단한 프로젝트 배포는 번거롭지 만 마법사로 매니페스트에 수동으로 서명 한 후 달성 할 수 있습니다. 유일한 문제는 오류가 발생했을 때 스택 추적이 난독 화되고 CE에 해독기 또는 정화기가 패키지되어 있지 않다는 것입니다.

Virtual Earth 통합, 많은 웹 서비스 호출 및 IOC 컨테이너 및 많은 반영을 통해 Excel 기반 VSTO 기반의 실제 프로젝트를 난독 화하려고했습니다. 불가능 했어

난독 화가 실제로 중요한 요구 사항 인 경우, 처음부터이를 염두에두고 응용 프로그램을 설계하고 진행하면서 난독 화 된 빌드를 테스트해야합니다. 그렇지 않으면 상당히 복잡한 프로젝트라면 심각한 고통을 겪게 될 것입니다.


5

Crypto Obfuscator는 모든 문제와 시나리오를 해결합니다. 그것은 :

  1. 규칙에 따라 난독 화에서 유형 / 구성원을 자동으로 제외합니다. 직렬화 된 유형 / 필드가 그 중 하나입니다.
  2. MSBUild를 사용하여 빌드 프로세스에 통합 될 수 있습니다.
  3. ASP.Net 프로젝트를 지원합니다.

3
@logicnp는 fypto를 썼습니다.
CAD bloke

암호화가 더 이상 지원되지 않는 것 같습니다.
Carl

나는 여러 가지 시도했다 "암호화은"매우 공격적이고 도움이 보였지만, De4dot I의 난독 DLL을 실행할 때하는 ... 원래의 코드를 가지고 죄송 파티를 망쳐 ...
데이브 가안

4

나는 최근에 하나의 자유 난 독자 출력을 다른 자유 난 독자, 즉 Dotfuscator CE와 CodePlex의 새로운 Babel 난 독자에 파이핑하려고 시도했습니다. 자세한 내용은 내 블로그에 .

직렬화와 관련하여 해당 코드를 다른 DLL로 옮기고 프로젝트에 포함 시켰습니다. 어쨌든 XML에없는 비밀이 없기 때문에 난독 화가 필요하지 않았습니다. 해당 클래스에 심각한 코드가있는 경우 주 어셈블리에서 부분 클래스를 사용하면 해당 코드가 포함됩니다.


-1, "yo dawg, 난 당신이 난 독자를 좋아한다고 들었 기 때문에 난 독자의 출력에 대해 난 독자를 실행했습니다 ... 더 알고 싶으십니까? gimme page hits". 그러나 두 번째 단락은 매우 좋은 제안입니다.
ANeves

3

귀하의 플랫폼에 가장 저렴하고 잘 알려진 것을 사용하고 그것을 하루에 호출해야합니다. VM opcode 스트림은 네이티브 opcode 스트림이 수행하는 두 가지 가장 큰 문제인 기능 / 방법 식별 및 레지스터 앨리어싱으로 인해 어려움을 겪기 때문에 고급 언어의 난독 화는 어려운 문제입니다.

바이트 코드 반전에 대해 알아야 할 것은 이미 보안 테스터가 X86 코드를 검토하고 그 취약점을 발견하는 것이 표준 관행이라는 것입니다. 원시 X86에서는 함수 호출 전체에서 로컬 변수를 추적 할뿐 아니라 유효한 함수도 찾을 수 없습니다. MSFT가 도움이되는 정보를 MSFT가 유용하게 제공하는 Microsoft 코드를 검토하지 않는 한, 기본 코드 리버서는 기능과 변수 이름에 액세스 할 수있는 환경이 거의 없습니다.

"Dotfuscation"은 주로 함수와 변수 이름을 스크램블하여 작동합니다. 리플렉터가 문자 그대로 소스 코드를 포기하는 디버그 수준 정보로 코드를 게시하는 것보다이 작업을 수행하는 것이 좋습니다. 그러나이 이상의 일을하면 수익이 줄어들 것입니다.



3

"Dotfuscator Community Edition"을 사용할 수 있습니다. 기본적으로 Visual Studio 2008 Professional에서 제공됩니다. 당신은 그것에 대해 읽을 수 있습니다 :

http://msdn.microsoft.com/en-us/library/ms227240%28VS.80%29.aspx
http://www.preemptive.com/dotfuscator.html

제품의 "전문"버전은 비용이 많이 들지만 더 좋습니다.

코드를 난독 처리해야합니까? 일반적으로 보안 목적으로 사용되지 않는 한 응용 프로그램을 디 컴파일하는 데 거의 문제가 없습니다. 사람들이 당신의 코드를 "훔치는"것에 대해 걱정한다면, 그렇게하지 마십시오; 코드를 보는 대다수의 사람들은 학습 목적으로 사용됩니다. 어쨌든 .NET에는 완전히 효과적인 난독 화 전략이 없습니다. 충분한 기술을 가진 사람은 항상 응용 프로그램을 디 컴파일 / 변경할 수 있습니다.


이것을 위해 +1. 나는 거의 모든 무료 .NET 난독 화기를 시도했지만 Dotfuscator는 내 ASP.NET 응용 프로그램에서 MSIL의 상당 부분을 실제로 난독 화하는 유일한 사람이었습니다.
세일

@Saille, 무료 Dotfuscator-Community Edition을 사용해 보셨습니까? 방금 영업 채팅을했는데 프로 에디션 비용이 2000 EUR라고합니다. :(
Houman

Dotfuscator는 쓸모가 없습니다.
user626528

3

반응기를 피하십시오. 그것은 완전히 쓸모가 없습니다 (그리고 나는 라이센스를 지불했습니다). Xenocode는 내가 만난 최고의 라이센스였으며 라이센스도 구입했습니다. 지원은 매우 좋았지 만 방금 일한만큼 많이 필요하지 않았습니다. 나는 내가 찾을 수있는 모든 난독 화기를 테스트했으며 내 결론은 xenocode가 가장 강력하고 멀리 떨어져 있고 최고의 작업을 수행했다는 것입니다 (또한 .NET exe를 다른 곳에서는 볼 수없는 기본 exe에 게시 할 수도 있습니다).

반응기와 이종 코드에는 두 가지 주요 차이점이 있습니다. 첫 번째는 Xenocode가 실제로 작동한다는 것입니다. 두 번째는 어셈블리의 실행 속도가 다르지 않다는 것입니다. 원자로는 약 600 만 배 더 느렸다. 또한 원자로는 한 사람의 작업이라는 인상을 받았습니다.


.NET Reactor에는 많은 옵션이 있습니다. 이들 중 일부는 런타임 보호와 관련되어 있으며 응용 프로그램 속도가 약간 느려지지만 이는 추가 보안 가격입니다. 그러나 다른 옵션없이 .NET Reactor 난독 화를 사용하면 속도가 느려질 지 진지하게 의심합니다.
avitenberg


2

.Net 1 이후 동일한 응용 프로그램에서 코드를 난독 화하고 있으며 유지 관리 측면에서 큰 골칫거리였습니다. 앞에서 언급했듯이 직렬화 문제를 피할 수는 있지만 실수를 저지르고 난독 처리를 원하지 않는 것을 난독 처리하는 것은 정말 쉽습니다. 빌드를 쉽게 깨뜨 리거나 난독 화 패턴을 변경하여 오래된 파일을 열 수 없습니다. 또한 무엇이 잘못되었고 어디에서 발생했는지 파악하기가 어려울 수 있습니다.

우리의 선택은 Xenocode였으며, 오늘 다시 선택하기를 원했기 때문에 코드를 난독 처리하지 않거나 Dotfuscator를 사용하는 것을 선호합니다.



1

Windows 클라이언트에서 SmartAssembly를 사용하고 있습니다. 잘 작동합니다.

여분의 문제도 추가합니다. 로그 파일 / 예외에서 클래스 이름을 인쇄하면 난독 처리해야합니다. 물론 이름으로 클래스를 만들 수는 없습니다. 따라서 고객을 살펴보고 난독 화로 인해 어떤 문제가 발생할 수 있는지 확인하는 것이 좋습니다.




1

최신 rpoject에서 난독 화 / 자원 보호를 사용해야했고 Crypto Obfuscator가 훌륭하고 사용하기 쉬운 도구라는 것을 알았습니다 . 직렬화 문제는이 도구의 설정 문제 일뿐입니다.


@logicnp,이 글에서이 제품을 보증하는 두 번째 글입니다. 이 제품의 개발자와 관계가있는 경우 공개하십시오.
H2ONaCl

미안하지만 de4dot 는 그것을 혼란스럽게 할 수 있습니다. ConfuserEx 사용하는 것이 좋습니다 .
newbieguy

1

Obfuscar라는 훌륭한 오픈 소스 버전이 있습니다. 잘 작동하는 것 같습니다. 유형, 속성, 필드, 메소드는 제외 할 수 있습니다. 원본은 https://code.google.com/p/obfuscar/ 이지만 더 이상 업데이트되지 않는 것 같습니다.


나는 이것을 오늘 보았습니다-내 의견의 날짜! -그리고 가기에는 약간 지저분합니다. 또한 .pfx 파일을 사용하여 어셈블리를 다시 서명하려고 시도하면서 시간의 가장 중요한 부분을 잃었습니다. 이해할 수없고 문서화되지 않은 오류가 발생했습니다. .snk 만 사용하여 서명 할 수있는 것 같습니다.
SteveCinq



0

SmartAssembly는 훌륭합니다. 저는 대부분의 프로젝트에 사용되었습니다.


-1

Eziriz 데모 버전을 사용해 보았습니다. ... 좋아했습니다. 그러나 소프트웨어를 가져 오지 않았습니다.


이것이 어떻게 커뮤니티의 위키 답변이 될 수 있습니까?
ΦXocę 웃 Пepeúpa ツ

-1

난독 처리는 실제 보호가 아닙니다.

.NET Exe 파일이 있으면 더 나은 솔루션이 있습니다.

나는 Themida를 사용 하고 잘 작동한다고 말할 수 있습니다.

Themida의 유일한 단점은 .NET Dll을 보호 할 수 없다는 것입니다. (Exe 및 DLL의 C ++ 코드도 보호합니다)

Themida는 여기에 언급 난독보다 훨씬 저렴입니다 및 최고입니다 안티 불법 복제 방지 시장에서. 가상 머신을 생성하여 코드의 중요한 부분을 실행하고 크래커가 설정 한 조작 또는 중단 점을 감지하는 여러 스레드를 실행합니다. .NET Exe를 Reflector가 더 이상 .NET 어셈블리로 인식하지 못하는 것으로 변환합니다.

그들의 웹 사이트에서 자세한 설명을 읽으십시오 : http://www.oreans.com/themida_features.php


-2

나는 Rummage라는 제품을 사용해 보았지만 제어를 제공하는 데 좋은 일을합니다 ... Eziriz가 제공하는 많은 것이 없지만 Rummage의 가격이 너무 좋습니다 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.