Knowledge Center
디컴파일
AppSealing prevents money leakage in a real-money mobile-gaming platform Learn More
디컴파일

디컴파일하는 것은 실행 가능(실행 준비 완료)한 프로그램 코드(목적 코드라고도 함)를 보다 높은 수준의 프로그래밍 언어 형식으로 변환하여 더 읽기 쉬운 형식으로 만드는 것을 의미합니다. 디컴파일은 컴파일러의 기능과 반대되는 리버스 엔지니어링 유형입니다. 이를 수행하는 도구를 디컴파일러라고 합니다. 프로그램을 이해하거나, 보관 또는 업데이트를 목적으로 소스 코드를 복구하거나, 바이러스를 찾고, 프로그램을 디버깅 하고, 더 이상 사용되지 않는 코드를 번역하는 등, 다양한 이유로 디컴파일은 시도 됩니다. 완전 자동화된 디컴파일은 불가능합니다. 어떠한 디컴파일러도 개발자가 작성한 소스 코드와 정확히 일치하는 코드를 얻을 수는 없습니다. 

디컴파일은 때때로 저작권 소유자의 허가 없이 재사용 또는 모드 제작을 위한 용도로 소스 코드를 재현하기 위해 비윤리적으로 사용됩니다. APK 파일을 디컴파일하는 것은 어려운 일이 아닙니다. DEX 파일을 JAR 파일로 변환 후, JAR 파일을 다시 JAVA 소스 코드로 변환하면, 앱의 소스 코드를 확보할 수 있습니다. 코드를 복잡하게 만들거나, 난독화하는 보호 수단을 통해서 디컴파일에 대응할 수 있도록 프로그램을 개발할 수 있습니다. 여기에는 디버깅 방지 기술, 디버거 제한, 트레이서 감시, 최적화 및 바이너리 제거 등을 포함합니다.