다음을 통해 공유


독립 실행형 GUI 빠른 시작

이 절에서는 Dotfuscator의 독립 실행형 GUI를 사용하는 방법을 보여 줍니다. Dotfuscator의 사용자 인터페이스에 대한 자세한 내용은 GUI 참조를 참조하십시오.

1단계 – Dotfuscator GUI 시작

  • 시작 | 프로그램 | PreEmptive Solutions | Dotfuscator Professional Edition 4.0 | Dotfuscator를 클릭합니다.
  • Dotfuscator Professional 정보 대화 상자가 나타납니다. 아무 키나 눌러 계속하거나 5초 동안 기다립니다.

2단계 – 기본 프로젝트 만들기

  • "새 프로젝트 만들기"를 선택하고 확인을 클릭합니다. 입력 탭이 선택된 상태로 Dotfuscator 주 프로젝트 창이 나타납니다.
  • 여기서 난독 처리할 어셈블리를 선택합니다.
  • 찾아보기를 클릭합니다.
  • 다음을 찾습니다.
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\bin\Debug 
  • 그런 다음 GettingStarted.exe를 선택합니다.
  • 열기를 클릭합니다. 실행 파일의 경로가 입력 파일 아래의 목록 상자에 나타납니다.
  • 파일 | 프로젝트 저장을 선택하여 프로젝트를 저장합니다.
  • 프로젝트 저장 대화 상자에서 다음으로 이동합니다.
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\
  • 파일 이름 필드에 "Dotfuscator.xml"을 입력하고 저장을 클릭합니다.

3단계 – 프로젝트 빌드

  • 빌드 탭을 클릭합니다. 대상 디렉터리가 기본값 ${configdir}\Dotfuscated로 채워집니다. 참고: ${configdir}는 Dotfuscator 구성 파일의 경로를 포함하는 변수입니다.
  • 이제 프로젝트를 난독 처리할 수 있습니다. 빌드를 클릭합니다. Dotfuscator에서 난독 처리된 버전의 HelloWorld 응용 프로그램을 빌드하는 동안 몇 분 정도 기다립니다. 난독 처리된 어셈블리가 다음 위치에 저장됩니다.
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\Dotfuscated

이제 출력 탭으로 이동하고 난독 처리된 기호를 찾아보거나 Dotfuscator가 출력 디렉터리에 만든 이름 바꾸기 맵 파일(map.xml)을 찾거나 원하는 경우 난독 처리된 응용 프로그램을 실행할 수 있습니다. 설치와 동시에 구성 작업도 거의 없이 응용 프로그램이 난독 처리되었습니다.

여기에 약간의 구성을 추가하면 Dotfuscator의 보다 강력한 기능을 사용할 수 있습니다.

4단계 – 프로젝트 구성

  • 옵션 탭을 클릭합니다.
  • "빌드 진행률" 속성을 "자세한 정보 표시"로 설정합니다. 이렇게 하면 실행하는 동안 Dotfuscator가 진행률에 대한 추가 정보를 빌드 탭의 아래쪽에 표시합니다.
  • "디버깅 기호 내보내기"를 "예"로 설정합니다. 이 속성을 설정하면 Dotfuscator가 각 출력 어셈블리에 대해 기호 파일을 PDB 형식으로 만들게 됩니다. 그런 다음 디버거가 이러한 파일을 사용하여 디버깅 세션에 유용한 정보를 제공할 수 있습니다. 대개 줄 번호, 소스 파일 이름 및 지역 변수 이름과 같은 정보가 포함됩니다. PDB 파일은 출력 어셈블리와 함께 출력 디렉터리에 저장됩니다.
  • 벪見?바꾸기 사용 안 함? 벫┥?흐름 사용 안 함? 벞?悶?암호화 사용 안 함?및 벫┛?사용 안 함?값을 벦틈臼?로 설정합니다. Dotfuscator가 어셈블리에 적용할 변환에 대한 세밀한 제어를 할 수 있습니다. 다음 단계에서 구성하고 사용할 기능입니다.
  • 이름 바꾸기 탭을 클릭합니다. 이름 바꾸기는 메서드와 필드의 이름을 이해할 수 없는 이름으로 바꿔 코드를 모호하게 만듭니다. 이 기능은 기본적으로 설정되므로 이름 바꾸기 프로세스에서 제외할 항목은 선택해야 합니다. 이 응용 프로그램의 경우 아무것도 제외할 필요가 없습니다.
  • 이름 바꾸기 옵션 하위 탭을 클릭합니다. "향상된 Overload Induction 사용"을 선택합니다. 이 기능을 사용하면 메서드 및 필드 이름 바꾸기로 최대 15%의 추가 중복을 허용할 수 있습니다. C# 및 VB 등의 소스 언어에서는 메서드 반환 형식 또는 필드 형식에 대한 오버로드가 허용되지 않는 것이 일반적이므로 이러한 기능은 디컴파일러에 더욱 방해가 됩니다.
  • "맵 출력 파일" 텍스트 상자가 기본값인 ${configdir}\Dotfuscated\Map.xml로 지정되어 있는 것을 확인합니다.
  • 응용 프로그램에 대한 이름 바꾸기 정보와 통계를 포함하는 유용한 보고서를 가져오려면 "HTML로 출력"을 선택합니다. 이 보고서는 맵 파일과 같은 디렉터리에 출력됩니다. 기본 위치는 ${configdir}\Dotfuscated\Map.html입니다.
  • 제어 흐름 탭을 클릭합니다. 제어 흐름 난독 처리에는 유효한 실행 논리를 생성하는 분기 구문, 조건부 구문, 반복 구문(예: if, for, while)이 모두 사용되지만 디컴파일을 시도하면 비결정적인 의미가 생성됩니다. 즉, 코드는 전과 같이 실행되지만 디컴파일러는 원래 코드를 다시 생성할 수 없습니다.
  • 문자열 암호화 탭을 클릭합니다. 문자열 암호화는 응용 프로그램에서 문자열을 스크램블합니다. 예를 들어, 등록 및 확인 프로세스를 건너뛰려는 경우에는 사용자에게 일련 번호를 묻는 프로그램 문자열을 검색할 수 있습니다. 해당 문자열을 찾으면 그 문자열 근처에서 명령을 찾아 논리를 변경할 수 있습니다. 문자열을 암호화하면 이러한 검색에서 해당 문자열이 공백으로 나타나므로 문자열을 찾기가 훨씬 더 어려워집니다.
  • 문자열 암호화는 포함 기반이므로 입력 어셈블리의 모든 메서드를 포함하려면 왼쪽 창에 표시된 트리의 루트에서 어셈블리의 확인란을 표시해야 합니다.
  • 제거 탭을 클릭합니다. 제거 기능을 사용하면 Dotfuscator가 사용하지 않는 형식, 메서드 및 필드를 검색하여 제거합니다. 이 기능을 통해 최종 응용 프로그램에서 상당한 공간을 절약할 수 있습니다.
  • 제거 기능이 작동하려면 Dotfuscator가 응용 프로그램의 진입점을 알아야 합니다. 이 경우 진입점은 표준 "Main" 메서드이고 Dotfuscator에서 추가 구성 없이 이를 확인할 수 있습니다.

5단계 – 프로젝트 다시 빌드

  • 빌드를 클릭하면 프로젝트를 다시 난독 처리할 수 있게 됩니다. 전과 같이, 난독 처리된 어셈블리는 다음 위치에 저장됩니다.
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\dotfuscated

6단계 – 출력 찾아보기

  • 출력 탭을 클릭합니다. 이제 Dotfuscator에서 코드가 난독 처리된 방식을 보여 주는 트리를 탐색할 수 있습니다.
  • 루트 트리와 모든 하위 트리를 확장합니다. 다이아몬드 모양의 파랑 아이콘은 이름이 바뀐 메서드와 필드를 나타냅니다. 이러한 각 아이콘의 부모에 대해서는 원래 이름이 표시됩니다. Dotfuscator에서 각 메서드의 용도를 판독하지 못하도록 각 메서드와 필드의 이름을 바꿨습니다. 이렇게 되면 코드를 리버스 엔지니어링하는 프로세스에 큰 영향을 줄 수 있습니다.

  • 현재 강조 표시된 SaySomething 및 set_Name 메서드와 Name 속성을 확인합니다. Dotfuscator가 이 응용 프로그램에서 이러한 항목이 사용되지 않음을 확인했습니다. 따라서 Dotfuscator의 잘라내기 기능을 통해 이러한 항목이 제거될 수 있으므로 응용 프로그램이 더욱 간단해집니다.

다음 단계

GUI를 사용하여 난독 처리했으므로 이제 명령줄 인터페이스를 사용하여 같은 작업을 수행하는 방법을 확인할 수 있습니다. 또는 난독 처리된 출력 어셈블리를 검사를 자세하게 수행하여 난독 처리가 얼마나 효과적이었는지 확인할 수 있습니다.

© 2002-2007 PreEmptive Solutions. All rights reserved.