참조: https://mp.weixin.qq.com/s/bNKxQaVrPaXsZ5BPbsXy7w
(Zhou Zhi 씨의 공식 계정에서)
개요
Safari에는 프런트 엔드 디버거가 내장되어 있습니다.iPhone
이 LAN 또는 USB를 통해 MacBook에 연결되고 Safari 원격 디버깅이 활성화된 후 프런트 엔드 디버거는 기본적으로 MobileSafari 및 Xcode에서 컴파일되고 실행되는 앱에 유효합니다.
시스템에 내장된 앱이나 AppStore에서 다운로드한 앱은 JS 콘솔에서 관찰되지 않습니다.
탈옥한 휴대폰에서는 동적 패치를 통해 WebView 디버깅 기능을 활성화할 수 있습니다.
https://github.com/ChiChou/GlobalWebInspect(Zhou
Zhi 씨가 개발)
설치 튜토리얼
다운로드 주소:
https://github.com/ChiChou/GlobalWebInspect/releases
아이폰 다운로드 deb 파일
Filza로 보내고 Filza를 사용하여 설치
디버깅 활성화
참고: https://cloud.tencent.com/developer/article/1680133
Mac의 Safari에서 개발 메뉴 열기 Safari를 실행
하고 Safari > 환경설정을 선택한 다음 고급 패널을 클릭하고 메뉴 막대에서 개발 메뉴 표시를 선택합니다.
iPhone에서 Safari 디버깅 모드 켜기
iPhone을 켜고 설정 > Safari > 고급 > Web Inspector > 활성화로 이동합니다.
그런 다음 MacBook에서 wkwebivew를 포함하는 응용 프로그램의 웹 페이지를 볼 수 있습니다.
원칙
WebView 관련 구성 요소는 webinspectord 서비스 프로세스와 통신합니다.
애플리케이션의 디지털 서명에 다음 자격 중 하나가 포함되어 있으면 원격 디버깅이 활성화됩니다.
- com.apple.security.get-task-allow
- com.apple.private.webinspector.allow-remote-inspection
- com.apple.private.webinspector.allow-carrier-remote-inspection
- com.apple.webinspector.allow
예를 들어, 시스템과 함께 제공되는 Safari 브라우저에는 com.apple.private.webinspector.allow-remote-inspection이 있고 Xcode를 통해 실행되는 모든 실제 장치 디버깅 응용 프로그램에는 com.apple.security.get-task-allow가 있습니다. .
해당 자격을 감지하기 위해 webinspectord는 SecTaskCopyValueForEntitlement 기능을 호출합니다.
이 기능을 후킹하고 변조하면 모든 앱의 원격 디버깅을 실현할 수 있습니다. 이 기능은 플러그인을 통해 달성할 수 있습니다.
디버깅 기술
JS와 같은 웹 페이지 파일
저장 파일 탐색 시 Command+S 누르기