Share via


난독 처리의 목적

난독 처리의 목적은 혼란을 야기하는 것입니다. 혼란이 더할수록 다각적인 지적 개념을 이해하기가 어려워집니다. 난독 처리는 실행 논리를 바꾸는 것이 아니라 단지 이해할 수 없게 실행 논리의 표현만을 바꾸는 것입니다. 식별 가능한 프로그램 명령에 성능이 뛰어난 난독 처리기를 사용하면 사람이 알아볼 수 없게 명령이 변형될 뿐만 아니라 디컴파일러 기능이 중단됩니다. 실행 논리는 유지되지만 의미 구조가 바뀌어 결정적인 의미가 상실됩니다. 즉, 의미가 모호하기 때문에 C# 또는 VB와 같은 "프로그래밍 언어"로 명령을 리버스 엔지니어링하려는 시도가 실패할 가능성이 큽니다. 강력한 난독 처리 기능을 사용하면 디컴파일 결과가 무수히 발생할 수 있으며 그 중 일부는 재컴파일될 때 잘못된 논리를 생성할 수도 있습니다. 디컴파일러는 컴퓨터 프로그램일 뿐이므로 올바른 의미를 알면 이를 다시 컴파일할 수 있다는 가능성을 인식하지 못합니다. 사람이 직접 수행하기 어려운 디컴파일 알고리즘을 자동화하기 위해 디컴파일러를 작성하여 사용하지만 관련 지식이 부족한 사람은 디컴파일러를 혼란시키는 난독 처리기 때문에 오히려 더 어려움을 겪을 수 있습니다.

초기의 난독 처리기는 기본적으로 코드에 있는 식별자를 읽을 수 없는 이름으로 바꾸는 것이었으며 해싱 기법을 사용하거나 문자 집합을 읽을 수 없는 문자 또는 인쇄할 수 없는 문자로 지정하는 방식을 사용하기도 했습니다. 이 방법은 외관상으로는 효과적으로 보이지만 원래대로 되돌릴 수 있으므로 보호 효과가 거의 없습니다. PreEmptive의 난독 처리 도구는 다른 사람의 지적 재산에 대한 리버스 엔지니어링을 거의 불가능하게 만들고 아무 효과가 없게 만드는 벷Ⅶ?조장”이라는 독창적인 방법을 사용하므로 기존의 이름 바꾸기 방식보다 훨씬 뛰어납니다.

© 2002-2007 PreEmptive Solutions. All rights reserved.