디지털 기술의 발전으로 상상할 수 없는 수준의 소프트웨어 복제 및 불법 재생의 위협도 증가합니다. 따라서 불법 복제 비율은 비례하여 증가하고 있습니다. 이 시나리오는 분명히 소프트웨어 제조업체에 대한 위협을 배치하고 수많은 소프트웨어 보호 기술의 개발로 이어졌습니다. 수많은 소프트웨어 보호 기술이 개발되었으며 이러한 소프트웨어 보호 기술 중 하나는 코드 난독 화입니다. 코드 난독 화는 코드의 원래 알고리즘,데이터 구조 또는 논리를 숨기거나 코드(소프트웨어 작성자의 지적 재산으로 간주 됨)를 무단 리버스 엔지니어링 프로세스로부터 강화하거나 보호하는 메커니즘입니다. 일반적으로 코드 난독 화에는 프로그램의 구현 세부 정보를 적으로부터 숨기는 것이 포함됩니다. 프로그램을 의미 상 동등한(동일한 계산 효과)프로그램으로 변환하는 것은 공격자가 이해하기가 훨씬 어렵습니다. 현재 코드 난독 화 기술 중 어느 것도 리버스 엔지니어링 공격에 저항하기 위해 모든 난독 화 효과 기준을 충족시키지 못합니다. 따라서 연구자뿐만 아니라 소프트웨어 산업은 정기적으로 자신의 지적 재산권을 통해 새롭고 더 나은 난독 화 기술을 적용하기 위해 최선을 노력하고 있습니다. 그러나 불행히도 소프트웨어 코드는 안전하지 않습니다. 이 백서에서는 소프트웨어의 고유 한 기능을 변경하지 않고 소프트웨어의 민감한 코드 조각을 보호하는 데 도움이되는 몇 가지 난독 화 방법을 제시합니다. 제안 된 난독 화 기술은 변환 최적화 이론을 고려하여 어셈블리 수준 코드에서 구현됩니다. 어셈블리 코드는 디 컴파일 된 코드와 비교하여 실행 파일을 디스어셈블 한 후 데이터를 분석 할 수있는 데이터 종속성 및 편의성을 나타냅니다.