4/29/2010

Eazfuscator.NET Obfuscator

Obfuscation(난독화)에 관련된 기본 지식은 위키서광렬님의 블로그를 참조하자.

.NET Framework에서는 C#, VB.NET등과 같은 Managed .NET code로 쓰여진 코드는 .NET 언어 Compiler에 의해  CIL(Common Intermediate Language, = MSIL)로 만들어지고 JIT(Just-In-Time Compiler)에 의해서 Native Code로 변환되고 CLR(Common Language Runtime)위에서 구동된다. 이러한 이유로 .NET Framework가 설치된 Device에서는 CIL 덕분에 어떤 프로그래밍 언어(단, Managed Code)로 작성된 프로그램이든 실행이 된다. 하지만 소스 보안 측면에서 보면 CIL만 있다면 손쉽게 소스코드를 열어볼 수 있음을 의미한다. (맞겠지...??)

Managed Code로 작성된 프로그램은 .NET Reflector(Reflector를 정복하기 위해서는 남정현님의 블로그[또는 데브피아]를 참조하자. - 최신버전 설명서는 아닌듯!?)를 통해 원본 소스와 거의 비슷하게, 심지어 다른 언어로까지 변환이 된다.

소스 보안을 위해 보통 obfuscator를 사용하곤 하는데 최근 알게된 소프트웨어를 소개할까 한다. GNU GPL 라이선스(무료라는 얘기!)를 가진 Eazfuscator.NET 이다.
Eazfuscator.NET를 사용하면 Reflector를 통해서는 원본 소스를 판단할 수 없게 된다.


사용법을 알아보자.

  1.  Eazfuscator.NET을 설치
  2.  Visual Studio 2008의 Tools Menu에 Add-in 된 것 확인.
  3.  Tool > Eazfuscator.NET Assistant 실행.(그림 1, 2)
  4.  Solution Explorer에서 Obfuscation하길 원하는 Project를(Solution이 아님) 끌어다 녹색바탕에 드래그 앤 드랍.
  5.  Obfuscation이 진행. 그리고 완료.
  6.  Obfuscation이 끝나면VS 2008에서 해당 Project가 변경되었으니 다시 로드할꺼냐고 묻는다. Reload버튼을 눌러주자.
  7.  Release Mode로 두고 Project Build. -끝-


 



그림1. Add-in된 Eazfuscator.NET









 그림 2. Eazfuscator.NET가 실행된 모습






Eazfuscator.NET을 사용한 결과는 아래와 같다.

Before Obfuscation

 After Obfuscation

댓글 없음:

댓글 쓰기