Search

Dopamine 탈옥(Jailbreak) - Frida 환경 구축 하기(feat. Failed to attach: unexpected early end-of-stream 해결)

Categories
Tags
작성일
2026/02/17
1 more property

Introduction

본 내용은 Dopamine 탈옥 단말기에서 Frida 환경을 구축하는 과정을 담고 있습니다. 이 과정에서 Frida로 앱을 실행할 경우 Failed to attach: unexpected early end-of-stream 에러가 발생되며, 이를 해결하는 과정도 함께 작성했습니다.

1. frida-server 설치

frida-server를 설치하는 방법은 두 가지가 있습니다. Sileo 앱에 소스를 추가하여 설치하거나, frida 저장소에서 .deb 파일을 직접 내려받아 설치하는 방법입니다. Sileo 앱을 통한 설치는 최신 버전만 지원하므로, 원하는 frida 버전을 설치하기 위해 저장소에서 .deb 파일을 내려받아 설치하는 방법으로 설명하겠습니다.

1.1 frida-server 다운로드

frida 저장소 https://github.com/frida/frida/releases 에서 원하는 버전의 frida-server를 설치하면 되는데, 해당 버전 태그에서 설치하려는 iOS 단말기의 아키텍처(frida_[버전]_iphoneos-[아키텍처].deb)에 맞춰 다운로드 하면 됩니다.
저는 frida 16.1.4 버전을 설치하기 위해 https://github.com/frida/frida/releases/tag/16.1.4 에서 제 단말기 환경에 해당하는 frida_16.1.4_iphoneos-arm64.deb 를 다운로드했습니다.

1.2 frida-server 파일 전송

다운로드 받은 firda_[버전]_iphoneos-[아키텍처].deb 파일은 탈옥된 iOS 단말기에 옮겨줍니다.
옮기는 방법은 FTP 프로그램(e.g. FileZilla)도 이용할 수 있지만 간단하게 아래의 scp 명령어를 이용해서 파일을 옮겼습니다.
# scp -P [포트번호] [파일명] [접속계정]@[접속대상]:[저장위치] scp -P 2222 frida_16.1.4_iphoneos-arm64.deb root@localhost:~/
Shell
복사
파일 전송이 완료됐으면 다음과 같이 탈옥 단말기에는 .deb 파일이 전송된 것을 확인할 수 있습니다.

1.3 frida-server 설치

옮겨진 .deb 파일을 iOS 탈옥 단말기 쉘로 이동한 다음 dpkg 명령어를 이용하여 설치해줍니다.
만약, sh: 1: /var/jb/usr/bin/pager: not found 에러가 발생 된다면 아래 명령어를 입력하고 다시 dpkg 명령어를 입력합니다.
apt update apt install less
Shell
복사
# dpkg -i [.deb 파일] dpkg -i frida_16.1.4_iphoneos-arm64.deb
Shell
복사

1.4 설치 확인

설치가 완료됐으면 iOS 탈옥 단말기에서 ps aux | grep frida 명령어를 통해 frida-server가 바인딩하고 있는지 확인합니다.
그리고 로컬 PC에서도 Frida를 사용하기 위해 아래의 명령어를 통해 Frida를 설치합니다.
탈옥 단말기에 설치된 frida 버전에 맞춰 설치해야합니다. 만약 버전이 다른 경우 에러 unable to communicate with remote frida-server; please ensure that major versions match and that the remote Frida has the feature you are trying to use 가 발생합니다.
# 저는 frida-server를 16.1.4 버전을 설치했으므로, # 해당 버전에 맞는 frida-tools와 frida를 설치했습니다. pip install frida-tools==12.3.0 frida==16.1.4
Shell
복사
그 다음 frida-ps -Ua 명령어를 입력해서 단말기에 설치된 앱 목록이 조회되면 frida 설치는 완료된 것입니다.

2. 에러 Failed to attach: unexpected early end-of-stream 해결하기

2.1 에러 발생

탈옥 단말기에 frida-server를 설치한 이후 frida 명령어를 실행하면 Failed to attach: unexpected early end-of-stream 에러가 발생합니다.

2.2 해결 방법

에러의 정확한 원인은 파악하지 못했지만, Dopamine 탈옥 환경을 변경하여 문제를 해결할 수 있었습니다.
기존에 사용중인 탈옥 단말기는 Dopamine 도구를 이용한 탈옥 단말기입니다. 해당 탈옥 단말기 환경을 기존 Dopamine 에서 Dopamine + RootHide 로 변경할 경우 Frida도 정상적으로 가능했습니다.
일반 Dopamine과 Dopamine+RootHide의 차이는 크게 다음과 같습니다.
구분
일반 Dopamine
Dopamine + RootHide
경로
탈옥 데이터가 정해진 경로(/var/jb)에 들어있어, 보안 앱들이 이를 쉽게 찾아내 차단합니다.
탈옥 관련 파일의 경로를 매번 무작위(Randomized)로 바꿔, 탈옥 파일들이 어디 있는지 찾지 못합니다.
트윅 호환성
대부분의 최신 트윅 지원
RootHide 전용으로 변환된 트윅만 가능하며, 일반적인 Rootless 트윅들이 바로 동작하지 않을 수 있습니다. RootHide Patcher 라는 도구를 통해 트윅을 한 번 변환해줘야 하는 번거로움이 있습니다.
이제 기존 Dopamine 탈옥 단말기를 Dopamine + RootHide 로 변경해보겠습니다.

2.2.1 .tipa(Dopamine + RootHide) 다운로드 및 설치

탈옥 단말기에서 Safari 앱으로 https://github.com/roothide/Dopamine2-roothide/releases 로 이동한 후 최신 버전의 Dopamine.tipa 를 다운로드 받습니다.
그 다음 TrollStore 앱을 실행한 뒤, 우측 상단의 + 를 눌러 Install IPA File 를 클릭하고 다운로드 받은 Dopamine.tipa 를 선택합니다.
그럼 아래와 같이 팝업이 나오는데, Install 을 클릭하여 설치해줍니다.

2.2.2 Dopamine(+RootHide) 재 탈옥

홈 화면으로 이동하면 다음과 같이 앱 아이콘에 Root Hide가 표시된 Dopamine 앱이 설치된 것을 확인할 수 있습니다.
이제 해당 앱을 실행한 뒤, 하단의 ‘탈옥’을 눌러 기존 탈옥과 동일하게 탈옥을 수행합니다.
만약, 아래와 같이 ‘Your device currently has another jailbreak activated, please reboot device.’ 라는 에러 메시지가 나올 경우 메시지 내용처럼 디바이스를 재부팅하고 다시 ‘탈옥’ 버튼을 눌러 탈옥을 수행합니다.
탈옥 시 패키지 매니저 선택은 Sileo 앱만을 선택한 후 ‘→ 계속’ 버튼을 클릭합니다.
이후 나오는 비밀번호 설정에 비밀번호는 alpine 으로 설정해줍니다.
만약 단말기가 재부팅 이후에도 홈 화면에 Sileo 앱이 안보일 경우 Dopamine(+RootHide) 앱을 실행하여 다시 ‘탈옥’ 을 수행합니다. 반면에, Sileo 앱이 보이고 실행이 된다면 탈옥은 완료된겁니다.

2.2.3 트윅 재설치

단말기가 기존 Dopamine 에서 Dopamine(+RootHide)로 탈옥이 완료됐으면 기존에 설치된 트윅도 삭제될 수 있습니다.
우선 Frida 환경을 다시 구축하기 위해 트윅 openssh, NewTerm 3 Beta 을 다시 설치해 줍니다.
openssh SSH 접속을 위함.
NewTerm 3 Beta 새로 설정한 root 패스워드를 셋팅하기 위함.
만약, SSH 접속 시 UNIX authentication refused 에러가 발생한 경우,
NewTerm 3 Beta 앱을 실행하여 아래의 명령어를 입력합니다.
sudo passwd root # 명령 입력 후 비밀번호('alpine') 입력
Shell
복사

2.2.4 Frida 설치

앞서 설명한 frida-server 설치 과정 중 firda_[버전]_iphoneos-[아키텍처].deb 파일을 탈옥 단말기로 전송하고 설치를 진행하면 다음과 같이 에러 dpkg: error processing archive … 가 발생합니다.
이때는, Sileo 앱에서 RootHide Patcher 트윅을 설치합니다. 그리고 설치가 완료됐으면, 앱 검색(홈 화면에서 Slide Down)에 Patcher를 검색해서 나오는 앱을 실행합니다.
해당 Patcher 앱을 실행하면 ‘Select .deb file’ 버튼이 나오는데, 해당 버튼을 클릭하고 다운로드 받은 firda_[버전]_iphoneos-[아키텍처].deb 파일을 선택합니다.
그럼 아래와 같이 ‘Convert .deb’ 버튼이 나오는데, 해당 버튼을 클릭합니다.
그리고 완료 표시와 함께 버튼이 나오는데, ‘->Sileo’ 버튼을 클릭하고, Sileo 앱으로 전환되면 ‘받기’ 버튼을 클릭합니다.
그 다음 대기열로 이동하여 설치된 Frida를 마무리 설치 해줍니다.

2.2.5 Frida 실행 확인

이제 마지막으로 Frida 실행을 통해 설치가 완료된 것을 확인해줍니다.
frida -Uf com.apple.Preferences
Shell
복사