Mac 없이 ‘iOS 복호화 (dSym)’ 기능 출시

새롭게 개발한 자체 ‘iOS Symbolicator’로 맥 장비없이 다양한 OS에서 iOS 복호화가 가능합니다.

작성일 2023년 02월 09일

앱을 출시하기 전 보통 Android 같은 경우 프로가드를 이용하여 사용하지 않는 리소스를 제거하고 클래스나 메소드 이름을 짧게 축소하고 난독화 및 최적화하여 APK를 최대한 작게 만듭니다. 여기서 난독화란 소스코드를 알아보기 힘든 형태로 바꾸는 기술을 말하는데요. 난독화된 코드는 리버스 엔지니어링을 어렵게 만들고, 보안에 민감한 앱의 경우 유용하게 사용할 수 있습니다.

만약 개발 중인 프로젝트에서 프로가드를 사용한다면, 소스코드가 난독화된 상황에서 크래시가 발생했을 때 해석이 어려워지는데 이때 생성되는 매핑 파일을 이용하여 난독화된 코드를 해석, 즉 복호화 할 수 있습니다.

하지만 iOS의 복호화(DeSymbolication) 기능은 Mac에서만 구동되도록 Apple이 정책을 유지하고 있습니다. 트래픽이 많은 서비스 같은 경우 여러 대의 맥을 넣어야 되다 보니 제약사항이 많았습니다. 즉 고객사에 on premise(설치형)으로 제공하게 된다면 여러 대의 맥 미니가, SaaS에는 맥과 연동을 해야 하는 번거로움이 존재했죠.

그래서 IMQA 팀은 stack decoder라는 기능을 개발하였습니다. 이 기능을 통해 Mac 장비 없이 iOS에서 난독화한 부분을 복호화 할 수 있게 되었습니다. 그럼 어떻게 바뀌었는지 살펴볼까요?

메모리 주소값으로 표현된 데이터를 정확한 파일의 함수 위치로 복호화하였습니다. 실제 소스의 파일 및 위치까지 정확히 표시된 것을 확인할 수 있습니다.

이전 iOS 같은 경우, 모든 데이터를 복호화(dSymbolication) 하는 게 너무 큰 비용이 들기 때문에 사용자가 코드 관련 페이지에 방문할 때마다 해당 코드를  복호화하였는데요. 당연히 복호화를 하는 연산만큼 대기해야 했죠. 하지만 이제는 iOS에서도 복호화 된 코드를 지연 없이 보실 수 있게 되었답니다!

🙋🏻‍♀️ 더 궁금하신가요?

Q. 앱 버전 별로 관리할 수 있나요?
앱 버전 별로 지원합니다.

Q. 매핑 파일은 자동으로 업로드 되나요?
현재는 자동 업로드되지 않습니다. 매핑 파일 업로드 방법은 사용자 가이드 > 3. 프로젝트 관리 > 프로가드 설정 / dSYM 설정에서 확인하실 수 있습니다.

Q. 상용화된 다른 난독화 솔루션도 지원하나요?
SaaS에서 AOS는 프로가드, iOS에서는 DeSymbolication을 지원합니다. On-premise에서는, 특정 난독화 라이브러리를 쓰시는 경우 상용화 솔루션도 커스터마이징 협의를 통해 지원합니다. SaaS 프로젝트 규모를 보고 협의를 통해 진행할 수 있습니다.


관련 기사보기

어니컴, IMQA에 iOS 실시간 스택 복호화 기능 추가
어니컴(대표 이석호)은 디지털 경험 모니터링 솔루션 IMQA의 iOS 복호화(Symbolicator) 기능을 개발했다고 9일 밝혔다. 해당 기능은 맥(Mac) 장비 없이 서버에서 스택 정보의 메모리 주소를 빠른 속도로 복호화...

Share on

Tags

IMQA 뉴스레터 구독하기

국내외 다양한 기술 소식을 선별하여 매월 전달해드립니다. IMQA 뉴스레터를 통해 기술 이야기를 함께해보세요.

구독하기