자신이 개발한 닷넷 프로그램을 배포 할 때, 디컴파일러 프로그램(예: Reflector )으로 인해 소스가 노출 될 수 있습니다.
난독화 기능의 프로그램을 이용해서 네임스페이스, 클래스, 속성, 메서드, 지역 변수 등등 네이밍이 되어 있는 것들의 이름을
난해하게 변경해주면 디컴파일러로 소스를 본다고 하여도 어떠한 기능을 하는지 알 수 없게 만들 수 있습니다.
[이미지 1] 난독화 하기 전 후 모습
Visual Studio 2008 Visual Studio Tools 폴더에 설치되는 Dotfuscator Community Edition 프로그램을 이용하여
난독화를 하는 과정에 대해 설명하겠습니다.
[이미지 2] 프로그램 실행시 뜨는 창
Dotfuscator Community Edition 프로그램을 실행시키면 위의 창의 뜨게 됩니다.
"아니요, 등록하지 않습니다." 버튼을 클릭합니다.
[이미지 3] 프로젝트 형식선택
"새 프로젝트 만들기"를 선택하신 후 확인을 누릅니다.
[이미지 4] 어셈블리를 목록에 추가
입력 탭이 Default로 선택되어 있습니다. "빨간색 부분의 어셈블리를 찾아서 목록에 추가" 버튼을 클릭합니다.
입력 어셈블리 추가 창이 뜨면 찾아보기 버튼을 눌러 난독화할 어셈블리를 지정하고 확인 버튼을 클릭합니다.
[이미지 5] 어셈블리 선택
저는 제가 만든 실행 파일과 함께 필요한 dll들을 선택하였습니다.
[이미지 6] 추가된 모습
어셈블리들이 추가된 모습을 확인 하실 수 있습니다.
[이미지 7] 제외할 특정 항목 선택하기
이름 바꾸기 탭을 클릭하시면 제외 탭에 제외할 특정 항목을 선택 하실 수 있습니다.
실제 ChartFX를 디컴파일러로 소스를 확인 할 경우, 사용자에게 제공되는 부분은 그대로 노출하되 core들은 a1, a2, 32 등등 난해하게 되어 있습니다.
자신이 만든 라이브러리를 개발자에게 공개할 때, core들은 감추고 싶을 때, 이 기능을 사용하면 유용할 것입니다.
[이미지 8] 빌드 완료
빌드 탭으로 이동 후 "빌드" 버튼을 클릭한 후 Dotfuscator 프로젝트를 저장해줍니다.
지정한 곳에 난독화된 어셈블리파일이 생성됩니다.
위의 이미지 처럼 이름을 바꾼 개수와 이름을 바꾼 비율 확인 하실 수 있습니다.
[이미지 9] 빌드한 후의 내부 코드
변경한 어셈블리들의 내부 코드입니다. 네임스페이스명은 사라지고 클래스명들은 a,b,g,h 등 난해하게 변경 되었습니다.
난독한 프로그램 실행시 아무 문제 없이 잘 실행 되는 것을 확인 하실 수 있습니다.
'.Net > Winform' 카테고리의 다른 글
C# ActiveScript 언어 동적으로 실행시키기 (0) | 2012.08.02 |
---|---|
C# 실시간으로 Process 검사 (0) | 2012.07.12 |
C# Keyboard, Mouse Hooking (0) | 2012.06.28 |
C# 지정한 폴더 감시하기 (0) | 2012.06.27 |
RichTextBox 원하는 단어들 원하는 색으로 변경 (0) | 2012.05.11 |