자신이 개발한 닷넷 프로그램을 배포 할 때, 디컴파일러 프로그램(예: 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 등 난해하게 변경 되었습니다.

난독한 프로그램 실행시 아무 문제 없이 잘 실행 되는 것을 확인 하실 수 있습니다.

+ Recent posts