글을 시작하기에 앞서, 아이폰7(iOS 15.7.1)으로 테스트되었습니다.
이 외 다른 기기와 iOS 버전의 호환성은 글쓴이가 보장할 수 없습니다.
오늘은 iPhone의 폰트를 탈옥 없이 바꿔보도록 하겠다.
다들 알다시피 iOS에서의 폰트 변경은 기능 자체를 제공하지 않고 탈옥을 통해 원하는 폰트로 변경할 수 있다.
하지만 탈옥은 iOS 보안의 허점을 이용해 시스템에 접근하는 것이고 만약 본인이 지금 사용 중인 iPhone 모델과 iOS 버전이 탈옥툴과 일치하지 않는다면 탈옥을 할 수 없다. 이 정도면 폰트 변경 기능 하나 넣어줄 법 한데 말이다.
하지만 오늘 소개할 WDBFontOverwrite는 iOS 16.1.2 이하 버전에서 시스템 폰트를 탈옥 없이 변경할 수 있는 Exploit이다.
WDBFontOverwrite가 무엇인지, 폰트 변경 방법까지 알아보겠다.
# WDBFontOverwrite가 무엇인가
WDBFontOverwrite는 탈옥 없이 iOS 시스템 폰트를 변경하기 위해 CVE-2022-46689 취약점을 이용하는 도구이다.
iOS 16.1.2 이하의 버전에서 작동하며, 폰트를 변경하면 리스프링 후 시스템 폰트가 바뀐다.
기본적으로 WDBFontOverwrite는 DejaVu Sans Condensed, DejaVu Serif, DejaVu Sans Mono, Go Regular, Go Mono, Fira Sans, Segoe UI, Comic Sans MS, Choco Cooky의 폰트를 포함하고 있고, 사용자 지정 폰트까지 적용할 수 있다.
WDBFontOverwrite는 커널의 메모리 하위 시스템이 개인 읽기 전용 메모리 매핑의 COW(기록 중 복사) 중단을 처리하는 단계에서 발생한 취약점을 사용하여 권한이 없는 로컬 사용자에게 읽기 전용 메모리 매핑에 대한 쓰기 권한을 얻을 수 있게 된다. 그리고 폰트를 압축하여 16384 Bytes 중 16383 Bytes를 덮어쓰는 취약점을 사용했다.
이 프로젝트는 소스 코드가 공개된 오픈소스 프로젝트로 공식 Github Repository에서 자세한 내용을 확인하고 다운로드할 수 있다.
# WDBFontOverwrite 설치
WDBFontOverwrite 도구를 설치하는 방법은 탈옥을 많이 해보았거나 인증되지 않은 IPA 파일을 많이 설치해본 사람은 쉬울 수 있다. WDBFontOverwrite 도구는 App Store에 공식적인 앱으로 등록된 게 아니어서 직접 IPA 파일을 사이드로딩 해줘야 하는데 안드로이드의 apk 파일을 설치하는 방식과 비슷하며 iOS에 IPA 파일을 사이드로딩 하기 위해서는 윈도우 또는 맥 OS가 탑재된 PC가 필요하다.
# AltStore 설치
인증되지 않은 IPA 파일을 iPhone에 쉽게 설치해주고 대중적으로 많이 널려진 프로그램은 AltStore가 있다.
먼저 altstore.io 에 들어가서 자기 컴퓨터 OS에 맞게 설치파일을 설치하자. (글쓴이는 Windows 기준으로 설명한다.)
설치 후 AltServer 프로그램을 실행하면 방화벽 안내가 나오는데 허용을 눌러준다. 그리고 iPhone과 PC를 연결한다.
그런 다음 작업표시줄을 보면 아래 그림 1과 같이 마름모 모양의 아이콘이 있는데 클릭해서 Install AltStore에 본인 iPhone을 누른다.
만약 위 그림 2와 같이 iCloud Not Found 에러가 뜨면 Download를 눌러 iCloud를 먼저 설치해 주자.
그림 3처럼 Apple ID에 로그인을 해주어야 하는데 비밀번호는 앱 전용 비밀번호를 사용하는 게 아닌 진짜 우리가 Apple ID에 로그인할 때 쓰는 비밀번호를 넣어줘야 한다. 그러면 아래와 같이 자동으로 설치된다.
# WDBFontOverwrite 설치
PC에 계속 연결해놓은 채로 iPhone에서 https://github.com/ginsudev/WDBFontOverwrite/releases/tag/v1.10.2 에 들어가 최신버전의 ipa 파일을 다운로드한다.
홈화면으로 돌아오면 AltStore 앱이 보일 텐데 눌러도 실행이 안된다. 해당 앱을 승인을 해줘야 실행할 수 있다.
- 설정 -> 일반 -> VPN 및 기기 관리 -> 본인 Apple ID 이메일 주소 클릭 -> '본인 이메일 주소'을(를) 신뢰함 클릭
AltStore 앱을 실행하고 My Apps 탭에서 +를 눌러 다운로드한 ipa 파일을 누르면 그림 5와 같이 WDBFontOverwrite가 설치된다.
WDBFontOverwrite를 실행하고 기본으로 프리셋에 포함된 폰트를 누르고 ACTIONS 메뉴에 있는 Restart SpringBoard를 누르면 스프링보드가 다시 로드되고 폰트가 변경된 걸 볼 수 있다.
근데 이 폰트 변경에도 한계점이 있다. iOS 16.1.2 이하 버전의 취약점 CVE-2022-46689을 이용해 일시적으로 폰트 파일을 덮어쓰는 방식이다 보니 iPhone을 재시작하면 다시 기본 시스템 폰트로 돌아와 버린다. 반탈옥과 비슷하다.
그리고 폰트를 변경하더라도 기본 시스템 폰트인 San Francisco를 쓰지 않는 앱의 폰트는 변경되지 않는다.
또한 AltStore에서 IPA 파일을 14일인가 7일마다 갱신을 해주어야 하는데 이게 PC에 있는 AltServer랑 연결해서 갱신을 해주어야 해서 복잡하기도 하다. 갱신을 안 하면 앱을 사용할 수 없게 된다.
사용자 지정 폰트는 iOS도 MACOSX가 기반이기 때문에 MACOSX가 인식할 수 있는 폰트로 변경을 해주어야 한다. 하지만 글쓴이는 따로 변경하는 방법을 찾지 못했고 사용자 지정 폰트도 다른 개발자들이 변경해놓은 폰트를 사용하여 변경할 수 있었다. 혹시 사용자 지정 폰트를 변환해 적용하신 분이 있다면 댓글을 남겨주길 바란다.
# 글을 마치며
오랜만에 탈옥은 아니지만 탈옥 없이 iPhone을 폰트 하나만 변경 함으로써 조금 꾸며볼 수 있는? 기회가 되었는데 일단은 완전 적용이 아니다 보니 재시작하면 기본 시스템 폰트로 돌아온다는 것이 정말 아쉬울 따름이다.
근데 iPhone 꾸미는 걸 목적으로 삼고 있다면 폰트 하나만 이렇게 귀찮고 복잡하게 변경하는 것보다 탈옥을 하는 게 더 나은 방법이지 않을까 생각한다.
'Tech' 카테고리의 다른 글
아이폰 14 프로, 이전 아이폰 사용자 입장에서의 후기 (0) | 2023.02.08 |
---|---|
에어팟 프로 1세대, 약 9개월 사용기 (0) | 2023.01.24 |
KT 엠모바일 알뜰폰 데이터 쉐어링 해지 (0) | 2023.01.04 |
아이폰7, 2022년에 사용할 수 있을까? (0) | 2022.10.23 |
KT 엠모바일 알뜰폰 4개월 사용한 찐후기 (2) | 2022.10.01 |