Skip to the content.

HxD

간단한 앱들은 HxD를 이용해 탈옥 관련 경로와 파일명, cydia 프로토콜 확인을 수정하면 탈옥 우회가 가능합니다.

그러나 별도 바이너리 파일이나 이중 삼중으로 체크하는 보안 솔루션이라 불리는 코드 적용은 이를 비효율적인 상황으로 만듭니다.

IDA 같은 프로그램을 이용해 구조를 분석하고 탈옥 체크를 우회하는 방법이 존재하지만, 가야할 길은 매우 험난합니다.

기존 적용 방식과 유사하다면 쉽게 같은 방식으로 탈옥 체크를 우회할 수 있지만, 그렇지 않다면 2~3일은 족히 걸립니다.

Cycript

다행이 이런 난관이 있을 때, Cycript라는 엄청난 Method Swizzling 툴이 도움을 줍니다.

메인 기능을 프리로딩 화면으로 가렸다면, 매우 어렵겠지만, 기능 사용이 가능한 화면 위에 탈옥 탐지 메시지가 출력된다면, Cycript를 사용해 볼만 합니다.

몇 년전에 Cycript을 사용했을 경우에는 [UIApp.keyWindow.subviews[1] removeFromSuperview]를 이용해 Alertcontroller/Alertview를 제거했습니다.

또는 [UIApp.windows[2] setHidden:YES]를 사용한 적도 있습니다.

그런데 최근에는 [UIApp.keyWindow setHidden:YES] 로 Alertview를 치울 수 있었습니다.

여러 이유가 있겠지만, 메인 뷰와 탈옥 탐지 뷰가 분리되어 있는지 그렇지 않은지에 대한 차이로 생각됩니다.

탈옥 탐지를 같은 뷰에서 하게되면 뷰가 달라질 경우 같은 코드를 사용해야 하지만, 다른 뷰에서 기능을 사용할 때 마다 체크하도록 한다면 현재의 형태가 이해가 됩니다.

네이티브 앱이라면, 뷰의 전환이나 특정 기능을 위한 이벤트가 발생할 때마다 탈옥 체크를 할 수 있습니다.

최초 탈옥 체크 뿐만 아니라 중간 탈옥 체크, 창이 비활성화 되었다가 다시 활성화 될 때 탈옥 체크를 하는 것은 최근에 보편화 되었습니다.

단말기 저장 정보 내 중요정보

솔루션이 적용되었다면, 플랫폼 변조, 탈옥 우회 시도(위변조), 난독화는 메인 점검 항목으로 생각하지 않아도 됩니다.

단말기 내 중요 정보가 저장되어 있거나 서버 통신간의 개발 보안 적용이 미흡한 것을 중점적으로 확인합니다.

순정에서 탈옥 후 단말기 내 저장된 주요 정보를 확인하는 식으로 점검하는데, 애플 sinning 이 되지 않으면 순정으로 갈 수 없습니다.

Cydia eraser 라는 어플이 있어서 순정으로 다시 돌아갈 수 있다고 하는데, 사용 후 기록해야겠습니다.

Cydia eraser

Cydia eraser는 Cydia에서 검색을 통해 쉽게 설치 가능합니다.

iPhone 4s 9.3.5 에서 매우 잘 동작하며, 순정 -> 탈옥 -> 순정 -> 탈옥 연속 시도에 문제가 없었습니다.

그러나 아쉽게도 iPhone 5 10.3.3 과 iPhone 6 10.3.3 에서는 실행되지 않습니다.

추후 업데이트되면 가능할 수도 있겠지만, 현재는 순정과 탈옥폰을 오가며 테스트 할 때, iPhone 4s 9.3.5 를 추천합니다.