코드 모핑

Code morphing

코드 모핑은 소프트웨어 애플리케이션을 리버스 엔지니어링, 분석, 수정 및 균열로부터 보호하기 위해 소프트웨어를 난독화하는 데 사용되는 접근법입니다.이 테크놀로지는 Java 및 에서 컴파일된 등 중간 수준의 코드를 보호합니다.이진 객체 코드가 아닌 NET 언어(Oxygene, C#, Visual Basic 등)코드 모핑은 동일한 최종 결과를 유지하면서 보호된 코드를 여러 프로세서명령어 또는 작은 명령어 스니펫으로 분할하여 다른 명령어로 대체합니다.따라서 보호자는 중간 수준에서 [1]코드를 난독화합니다.

코드 모핑은 수백 개의 고유한 코드 변환 패턴을 포함하는 다단계 기술입니다.또한 이 기술은 일부 중간 계층 명령을 가상 시스템 명령(: p-code)으로 변환합니다.코드 모핑은 보호된 코드의 실행 로직을 나타낼 수 있는 런타임 추적으로부터 보호되지 않습니다.

다른 코드 프로텍터와 달리 이 방법에서는 코드 복호화 개념이 없습니다.보호된 코드 블록은 항상 실행 가능 상태이며 변환된 코드로 실행(해석)됩니다.원래의 중간 코드는 어느 정도 존재하지 않지만 해독을 통해 원래의 코드 흐름을 명확하게 파악할 수 있습니다.

코드 모핑은 또한 x86 명령 집합 아키텍처를 구현하기 위해 CruseEfficeon과 같은 Transmeta 프로세서에서 사용되는 적시 컴파일 기술을 참조하기 위해 사용됩니다.

코드 모핑은 복사 방지 코드 삭제가 다른 경우보다 더 어려워지도록 프로그램이 복사 방지 또는 다른 검사를 난독화하는 데 자주 사용됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "The Transmeta Code Morphing™ Software: using speculation, recovery, and adaptive retranslation to address real-life challenges". CGO '03: Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization – via ACM.