Share via


난독 처리의 필요성

.NET용으로 작성된 프로그램은 쉽게 리버스 엔지니어링할 수 있습니다. 이 문제는 .NET 디자인의 결함이 아니라 중간 컴파일된 언어의 실상일 뿐입니다. .NET에서는 실행 코드를 제공하기 위해 표현적인 파일 구문, 즉 MSIL(Microsoft Intermediate Language)을 사용합니다. 이진 컴퓨터 코드보다 훨씬 높은 수준의 중간 파일에는 쉽게 알아보고 이해할 수 있는 식별자와 알고리즘이 포함되어 있습니다. 결국 중요한 정보는 숨기면서 이해하기 쉬우면서도 융통성 있고 확장 가능한 요소를 만드는 것은 대단히 어렵습니다.

.NET 디컴파일러를 자유 자재로 사용할 수 있는 사람이라면 누구나 코드를 쉽게 리버스 엔지니어링할 수 있습니다. 따라서 소프트웨어 라이센스 코드, 복사 방지 메커니즘 및 비공개 비즈니스 논리가 합법성 여부를 떠나 모든 사용자에게 더 많이 노출될 수 있습니다. 사용자는 자신이 원하는 소프트웨어 정보를 자세히 알아낼 수 있고, 보안상의 결함을 파악하여 악용하거나 독창적 아이디어를 도용하고 프로그램을 크래킹할 수도 있습니다.

위협적인 상황은 아닐 수도 있지만 .NET 플랫폼의 지적 재산권을 중요하게 여기는 조직에서는 리버스 엔지니어링을 방지하는 데 유용한 솔루션이 있다는 것을 알아야 합니다. 난독 처리는 어셈블리의 기호 이름을 바꾸는 기술일 뿐만 아니라 디컴파일러를 방해하는 방법이기도 합니다. 난독 처리를 적절하게 사용하면 응용 프로그램을 손상시키지 않고 기업의 규모에 따라 디컴파일 방지 수준을 강화할 수 있습니다.

© 2002-2007 PreEmptive Solutions. All rights reserved.