안녕하세요. LINE에서 클라이언트 보호 솔루션인 AIR ARMOR 개발을 담당하고 있는 정상민입니다. 이전 글, 'iOS 코드 서명에 대해서'에서는 심민영 님이 iOS 앱의 무결성과 서명자를 검증할 수 있는 iOS 코드 서명에 대해서 설명했는데요. 이번 글에서는 앱의 위변조 및 도용 방지를 위해서 자체 개발 중인 난독화 도구를 소개하려고 합니다. 예제 소스 코드를 이용해 컴파일러 동작의 각 단계를 확인하면서 난독화가 어떻게 수행되는지 살펴보겠습니다.
오크(ORK)란?
실행 파일 보호 기술인 패커의 한계
LLVM 컴파일러 인프라
LLVM 컴파일러 인프라 기반 난독화 도구, 오크
Clang의 컴파일 과정
전처리(preprocessor)
구문 분석(parsing)
LLVM IR(Intermediate Representation)
최적화(optimizer)
컴파일러 백엔드(com