본문 바로가기

Apple

[펌] 아이폰 탈옥의 원리




탈옥이란것의 원리입니다 

 

순정은 전원을 켜면

pc의 바이오스 역활을 하는 부트롬이 부트 로더를 찾고, 로더는 커널을 찾고, 커널은 각 구성요소를 찾고 각 구성요소는 하나하나 읽히면서 하드웨어 체크, 소프트웨어 체크를 합니다

모든 체크는 사과화면으로 가려져있으며, 전원을 켜자마자 나오는 사과화면은 이 모든 과정이 끝날때까지 나타나있다가 부팅이 완료되면 락화면이 나옵니다. 탈옥할때는 이 메세지(부트 verbose mode) 가 그대로 노출됩니다.

DFU모드인경우 부트롬은 부트로더를 외부의 시그널에서(30핀) 기다리는데, 이것을 아이튠즈나 탈옥툴이 전송해주는 것입니다. 반탈시 just boot 옵션은  이 과정만 해주는 것입니다. 구형 부트롬(초기 3gs)은 시그널을 순수하게 속아서 받아들이는 반면 신형부트롬(늦은 3gs이후)부터는 매우 깐깐하게 받아들입니다. 아애패드2, 아이폰 4s등의 a5칩탑재 모델은 이게 더욱 어려워져, 과정이 한번 더 꼬여있습니다. a4칩마저 부트로더의 체크를 합니다. 여기까진 아니더라도 최소한 부트롬과 부트로더를 속여야 첫번째 관문을 지나는것입니다. 그후에도 로더 교체와 커널의 수정이 필요합니다.

우선 부트로더 훼이크를 성공하면 로더와 커널을 반탈모드로 수정하고 반탈이 됩니다. 그 후에 애플의 부트롬 업데이트 방식을 모방하여 그대로 개조된 부트롬을 이식하게 됩니다. 그럼 완탈이 되지요. 완탈이 되었다! 라고 발표하는것은 부트롬을 뽑아내서 분석하고(뭐가 바뀌고 뭐가 새로 들어갔는지) 그것을 완탈모드로 개조한것에 성공한 것입니다. 예전엔 이것만 하면 되었지요. 그러나 위에서 말한 모든 요소에 탈옥 체크요소가 들어가있습니다.

부트롬, 로더, 커널만 수정해서 성공하던 2.x, 3.x 버전대와 다르게 ios4부터는 사파리, 진동모드, 음악앱등에 모두 탈옥시 오작동 모드가 적용되어있습니다.

ios5는 새로운 앱인 가판대와 발전된 알람창, siri까지 들어가 있기때문에 더욱 복잡해졌습니다. ios4.3에서의 진동모드 오작동은 유명한 일화입니다.

 

정리하자면 반탈은 두종류입니다. 부트 로더를 깬경우, 커널을 깬경우. 대체로 로더역활을 프로그램이 DFU상태에서 실행하고 커널만 바꿔치기를 합니다. 부트로더가 깨진경우는 리부팅 하더라도 스스로 부팅이 됩니다. safe mode로 부팅이 되지만 각 요소별 탈옥감지 때문에 사파리나 음악앱 등의 오류나, 속도 저하 등이 발생합니다. 커널만 깨진경우가 반탈입니다. 스스로 부팅이 불가능하지만, 부트로더 역활만 외부에서 해준다면 나머지 커널부분을 수정하고, 과거의 경험에 비추어 각 구성요소에서 탈옥을 감지하는 부분을 미리 패치해둡니다. 부트롬을 깨더라도 완탈보다 반탈출시를 먼저 하는것은 이 구성요소 패치가 선행 되어야 완탈도 의미가 있기 때문이지요.

 

그런데 ios5는 좀 다릅니다. 아마 siri에도 탈옥감지가 들어간 모양인데, siri는 복잡하고 거대한 요소입니다. 이것은 음성을 분석하는 요소인데, 이걸 분석한다는것은 새로 만드는것보다 어렵습니다.

(추가 : 시리가 아이패드1에서도 활성화 할 수 있게 되었다네요. 머지않아 3gs, 4 , 패드2에서도 활성화 되려나 봅니다 출처)

기존에 A5칩 탑재 제품의 완탈도 겨우나온상황에서 또다른 숙제가 생긴것입니다. A5칩이 일정한 프로세스마다 탈옥감지를 하는데 이것은 알려진바가 극히 드뭅니다. 현재 반탈이 나온 상황인데, 아직까지는 반탈의 완성도가 꽤 높습니다.

그러나 아이패드2와 4s에게 적용할수는없습니다. 이 제품들은 부트롬을 깨더라도 커널과 a5의 분석, 새로 변경된 구성요소의 분석등이 추가적으로 필요하기 때문입니다. 그러나 3gs 제품중 초기제품은 현상태에서도 완탈이 가능합니다. 부실한 부트롬 감지 때문입니다.

따라서 11월 말에 나올 완탈 예정제품은 3g, 3gs, 4, 패드1 정도이고, 그린포이즌의 발표에 따르면 패드2, 4s는 그보다 더 오래 걸릴수 있습니다.

그래서 부트롬을 깨더라도 11월 말 무렵까진 완탈툴 구경하기가 힘들것같습니다. 반탈이 워낙 잘되니(탈옥에 의한 버그가 별로 없음) 어느정도의 탈옥요구는 일시적으로 잠재웠기 때문입니다.

여기서 한발자국 나가서 생각해보면 ios5.1등의 메이저 업데이트 입니다. 이제 커널과 부트롬 접근이 더더욱 어려워질것입니다. DFU모드를 막고 새 방법을 시도할 수도 있습니다. DFU모드를 막고 icloud 서버를 통해 부트영역을 관리 할 수도 있고, DFU를 대폭 변경하여 인증절차를 삽입할 수도 있습니다. 그러나 3g모델이 아닌 아이팟 터치와 아이패드에 의해 wifi 접속도 열려있을것입니다. 그렇다면 최후의 보루인 itunes 개조에 나서야 합니다. OSX에서는 itunes 분석이 활발하던때가 있었는데 아마 변종의 itunes를 가지고 아이폰에 침투를 시도할것입니다. 그렇다면 또 안정된 완탈로의 길이 험난해지겠죠.

 

현재 반탈의 문제점은 없어보입니다. 표면적인 문제는 siri때문으로 보이나, 기존에 부트롬 회피가 정발 되어보니 잘 안되고있을 가능성도 있습니다.

부트롬 성공도 예전엔 완탈샷 혹은 aname, kernel 정보 스샷등으로 인증하곤 했는데 이번엔 그런게 없습니다-_-

핵심 멤버 몇이 개인사정과 애플입사로 빠진 나머지 탈옥팀이 과연 ios5에 잘 적응할런지 모르겠습니다. 현재 레드스노우 0.9.9b7은 준비 완료이고 b8로 올라갈때 완탈이 나올듯 합니다. 11월 둘째주 부터 기본 탈옥 테스트하고 siri 가 3~4주 걸리는것을 감안하면 늦어도 12월에는 출시할듯하네요. 탈옥팀도 연말연시까지 이짓을 하고싶지 않겠죠. (놀아야하니까)

 

ios5는 훌륭한 mobile os 입니다. 애플은 이 os에 여러 제품을 적용했으며, 좋은 평가를 받고 있습니다. 탈옥이 필요 없을정도의 소비자 만족은 불가능 할것입니다. 그러나 탈옥을 막는 기술을 발전시키는것보다 소비자의 요구를 조금이라도 더 빨리, 더 많이 충족시키는것이 우선이라는것을 애플이 헛된 시간을 낭비하지 않는 길일 것입니다.

출처 : http://gospelofjohn.blog.me/70122370617