프리다(Frida) 관련 오류 해결방법 정리

2023. 2. 5. 12:41·Mobile App 취약점 진단 · 모의해킹/iOS App 취약점 진단 · 모의해킹
728x90
반응형

iOS App진단을 위해서는 프리다(Frida) 설치 및 실행은 필수이다. 하지만 각종 에러가 발생하며 프리다가 동작하지 않는 경우가 아주 많다. 아래는 필자가 격은 오류 및 해결방법을 정리한 것이니 참고하길 바란다.

 

오류 1 - 프리다 서버 오류.

프리다 설치 후 기기와의 연결(통신) 시 아래와 같은 오류가 발생하며 연결이 안 될 때가 있다.

오류원인 1). 기기에 설치된 프리다 버전이 기기의 iOS 버전과 맞지 않아 오류발생.

오류원인 2). PC에 설치한 프리다와 기기에 설치된 프리다 버전이 맞지 않아 오류 발생.

>frida-ps -U

Waiting for USB device to appear...

 

 

오류 1 해결방법 - 환경에 맞는 iOS 프리다 트윅 수동 설치.

자신의 환경에 맞는 버전의 프리다를 수동으로 설치하여 주면 해결된다.

 

아래의 사이트에 접속하여 자신의 기기에 맞는 버전을 다운로드한다.

https://github.com/frida/frida/releases

 

Releases · frida/frida

Clone this repo to build Frida. Contribute to frida/frida development by creating an account on GitHub.

github.com

 

자신의 기기에 맞는 버전 선택 > "Assets" 클릭 > "frida_[버전]_iphoneos-arm.deb" 다운로드

※ iphone 6는 12.8.2 버전을 추천한다.

 

3uTools, FTP 등을 이용하여 다운로드한 파일을 기기로 옮김 > 기기에 설치된 탐색기앱(Filza)을 이용하여 옮긴 파일을 설치

 

설치도중 아래와 같이 "터미널에서 열수 없습니다"라는 에러가 발생한 경우, SSH 연결을 통해 명령어로 설치해주어야 한다.

 

3u Tools 등의 툴을 이용해 SSH로 기기에 접속 > dpkg -i [파일명] 명령어를 이용해 설치.

 

 

오류 2 - 프리다 연결 오류.

프리다 서버로 인해 발생하는 오류는 위의 과정을 통해 해결하였으나, 이번엔 아래와 같은 오류가 발생하며 기기와의 연결이 안 되는 경우가 있다.

오류원인 1). PC에 설치된 프리다 버전과 기기에 설치된 프리다 버전과 맞지 않아 오류 발생.

오류원인 2). PC에 설치된 프리다 버전이 기기의 iOS버전에 비해 너무 높아 오류 발생.

>frida-ps -U

Failed to enumerate processes: this feature requires an iOS Developer Disk Image to be mounted; run Xcode briefly or use ideviceimagemounter to mount one manually

 

 

오류 2 해결방법 - 환경에 맞는 PC 프리다 버전 수동 설치.

기존에 설치된 프리다 삭제 후, 자신의 환경에 맞는 프리다를 설치하면 해결된다.

 

1. 설치된 프리다 삭제

pip uninstall frida

pip uninstall frida-tools

※ 삭제가 제대로 되지 않는 경우 conda 가상머신을 새로 만들어 새로운 환경에서 시작하는 것을 추천한다.

 

2. 프리다 수동 설치

pip install frida==12.8.20
pip install frida-tools==2.2.0

※ 진단기기가 iphone 6일 경우 frida 12.8.20, frida-tools 2.2.0 버전을 추천한다.

 

 

오류 3 - 프리다 실행 오류

프리다 설치 후 실행 시키면 아래와 같은 에러가 발생할 때가 있다.

>frida --version

***
Failed to load the Frida native extension: DLL load failed while importing _frida: 지정된 모듈을 찾을 수 없습니다.
Please ensure that the extension was compiled for Python 3.x.
***

Traceback (most recent call last):
  File "C:\Users\userid\AppData\Local\Programs\Python\Python310\Scripts\frida-script.py", line 33, in <module>
    sys.exit(load_entry_point('frida-tools==2.2.0', 'console_scripts', 'frida')())
  File "C:\Users\userid\AppData\Local\Programs\Python\Python310\lib\site-packages\frida_tools\repl.py", line 24, in main
    import frida
  File "C:\Users\userid\AppData\Local\Programs\Python\Python310\lib\site-packages\frida\__init__.py", line 24, in <module>
    raise ex
  File "C:\Users\userid\AppData\Local\Programs\Python\Python310\lib\site-packages\frida\__init__.py", line 7, in <module>
    import _frida
ImportError: DLL load failed while importing _frida: 지정된 모듈을 찾을 수 없습니다.

 

 

오류 3 해결방법 - 파이썬 설치경로를 C:\Python으로 변경.

이 오류는 프리다가 파이썬(Python)의 경로를 찾지 못해 발생한 문제이다. 파이썬을 C:\Python에 재설치해주면 해결된다.

 

1. PC에 설치된 프리다 삭제

pip uninstall frida

pip uninstall frida-tools

 

2. PC에 설치된 파이썬 삭제

제어판 > 프로그램 및 기능 > Python [버전] 삭제

 

3. 파이썬 재설치

"Add Python 3.7 to PATH" 선택 > "Customize installation" 클릭 > 설치경로를 "C:\Python"으로 지정 > "Install" 클릭

※ 위에서 변경한 설정 외 선택사항은 모두 기본(default) 설정으로 한다.

 

4. 프리다 설치

pip install frida-tools

 

위의 해결방법을 모두 따라 했을 경우, 아래와 같이 제대로 실행되는 것을 확인할 수 있다.

 

 

오류4 - 시디아에서의 프리다 설치 오류.

시디아(Cydia)에서 프리다를 설치할때 아래와 같은 오류가 발생하는 경우가 있다.

오류원인 1). 기기의 iOS버전이 낮아 시디아를 통해 프리다 설치 불가.

Running Debian Packager

dpkg-deb --control subprocess returned error exit status 2
Sub-process /usr/libexec/cydia/cydo returned an error code(1)

 

 

오류 4 해결방법 - iOS 프리다 트윅 수동 설치.

기기의 iOS 버전에 맞는 하위버전의 프리다를 수동설치하면 정상적으로 설치된다.

본문의 최상단에 있는 오류1 해결방법을 참고하여 기기에 프리다 트윅을 수동 설치한다.

 

 

오류 5 - 한글깨짐 현상.

프리다로 기기에서 동작중인 앱을 확인할 때 한글로 된 앱들은 제대로 출력이안되는 경우가 있다.

오류원인 1). 기기에 설치된 프리다 서버의 버전이 낮아 한글지원이 안되는 경우 한글이 깨짐.

※ 12.8.20 버전의 프리다서버에서는 위와같이 한글이 제대로 출력 안됨.

 

오류 5 해결방법 - 높은 버전의 프리다 서버 설치.

"오류 1 해결방법"에서의 프리다서버 수동 설치 방법을 이용해 15버전 이상의 프리다서버를 기기에 설치하면 한글이 제대로 출력됨을 확인 할 수 있음.

 

 

오류 6 - pasteboard-monitoring.js 실행 오류.

pasteboard-monitoring.js 사용을 위해 frida -U -l 명령어 사용 중 아래와 같은 오류가 발생하는 경우가 있다.

오류 원인 1). pasteboard-monitoring.js 소스코드 내에 변수 a가 선언되어 있지 않아 오류 발생.

> frida -U -l pasteboard-monitoring.js DVIA-v2

ReferenceError: 'a' is not defined
    at <anonymous> (C:\pasteboard-monitoring.js:19)
    at apply (native)
    at <anonymous> (frida/runtime/core.js:59)

 

 

오류 6 해결방법.

아래와 같이 pasteboard-monitoring.js 파일의 소스코드를 수정.

//17 line 주석처리
//a = "";

 

 

오류 7 - frida -U -l 명령어 디바이스 연결 오류.

외부 스크립트 사용을 위해 frida -U -l 명령어 사용 중 아래와 같은 오류가 발생하는 경우가 있다.

오류 원인 1). 디바이스의 iOS버전과 프리다 버전이 맞지않아 발생하는 문제.

Failed to attach: need Gadget to attach on jailed iOS; its default location is: C:\Users\ID\AppData\Local\Microsoft\Windows\INetCache\frida\gadget-ios.dylib

 

 

오류 7 해결방법.

본문 상단에 있는 오류2 해결방법을 참고하여 해결.

 

 

오류 8 - Failed to spawn 오류

오류 원인. 디바이스의 frida-server가 동작하지 않거나 깨져서 발생하는 문제.

오류 내용
Failed to spawn: need Gadget to attach on jailed Android; its default location is: C:\Users\...\AppData\Local\Microsoft\Windows\INetCache\frida\gadget-android-arm64.so

 

오류 8 해결방법.

디바이스에 설치된 frida server를 실행, 실행했는데도 동일한 문제가 발생할 경우 재설치

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Mobile App 취약점 진단 · 모의해킹 > iOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글

[iOS 취약점 진단] 06강 - 부채널을 통한 데이터 유출(App Screenshot)  (0) 2023.02.12
[iOS 취약점 진단] 06강 - 부채널을 통한 데이터 유출(Device Logs)  (0) 2023.02.12
아이폰 기기 별 강제 재부팅 방법  (0) 2023.01.27
[iOS 취약점 진단] 05강 - 저장소 내에 중요 정보 평문 저장(YapDatabase)  (0) 2023.01.23
[iOS 취약점 진단] 05강 - 저장소 내에 중요 정보 평문 저장(Couchbase Lite)  (0) 2023.01.23
'Mobile App 취약점 진단 · 모의해킹/iOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글
  • [iOS 취약점 진단] 06강 - 부채널을 통한 데이터 유출(App Screenshot)
  • [iOS 취약점 진단] 06강 - 부채널을 통한 데이터 유출(Device Logs)
  • 아이폰 기기 별 강제 재부팅 방법
  • [iOS 취약점 진단] 05강 - 저장소 내에 중요 정보 평문 저장(YapDatabase)
학식(hagsig)
학식(hagsig)
정보보안을 배우고자 하는 모든 이들의 식당입니다. 모의해킹, 취약점 진단, 서버, 네트워크, 프로그래밍 등등 다양한 분야를 배우실 수 있습니다.
  • 학식(hagsig)
    학식 - 정보보안 전문 블로그
    학식(hagsig)
  • 전체
    오늘
    어제
  • 공지사항

    • 게시된 정보를 악용하여 발생하는 모든 책임은 사용자에게 있⋯
    • 무단 전재 및 재배포를 금지합니다.
    • 분류 전체보기 (301)
      • 교육정보 (15)
        • IT국비지원 (12)
        • 기업면접코칭 (3)
      • 인프라 취약점 진단 · 모의해킹 (24)
        • 윈도우 서버 진단 · 모의해킹 (22)
        • 리눅스 서버 진단 · 모의해킹 (2)
      • Mobile App 취약점 진단 · 모의해킹 (98)
        • AOS App 취약점 진단 · 모의해킹 (40)
        • iOS App 취약점 진단 · 모의해킹 (58)
      • 웹 취약점 진단 · 모의해킹 (3)
      • 클라우드 취약점 진단 · 모의해킹 (5)
        • AWS 취약점 진단 · 모의해킹 (0)
        • 컨테이너 보안 (5)
      • CS App 취약점 진단 · 모의해킹 (8)
      • AI 취약점진단 · 모의해킹 (8)
      • 산업 제어 시스템 진단 · 모의해킹 (0)
      • 침해 사고 대응 (15)
      • 디지털 포렌식 (2)
      • 자체개발 프로그램 (1)
        • TLS Security Checker (1)
      • IT 자격증 (26)
        • AWS 자격증 (11)
      • 프로그램 사용방법 (14)
      • 리눅스 (1)
      • 파이썬 (12)
      • 오류 해결 (2)
      • 잡학 지식 (41)
      • 코로나19 (12)
      • 학식 일상 (11)
        • 사진 (1)
        • 음악 (6)
        • 가게 정보 (3)
      • 제품 리뷰 (2)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
학식(hagsig)
프리다(Frida) 관련 오류 해결방법 정리
상단으로

티스토리툴바