본문으로 바로가기

Frida Server/Client 설치 방법 - Android(AOS)

 

가. 설치 프로그램 설명

1. 아나콘다(Anaconda)

- 오픈소스 라이브러리를 모아둔 개발 플랫폼이다.

- 아나콘다를 사용하면 파이썬을 버전별로 설치해서 사용할 수 있는 가상환경을 사용할 수 있다.

- 프리다는 사용하는 JS파일, 모바일 디바이스에 따라 버전별로 여러 개 설치해야 하므로 아나콘다 가상환경을 이용하면 편리하다.

 

2. 프리다(FRIDA)

- 프리다는 앱이 실행 중인 상태에서 코드 명령어를 삽입해 프로세스를 추적, 분석, 디버깅할 수 있는 도구이다.

- PC에는 프리다 클라이언트, 모바일 디바이스에는 프리다 서버를 설치한다.

 

나. 프로그램 설치 및 환경 구축

1. 아나콘다(Anaconda) 설치 방법

- 아래의 링크에 접속해 설치 파일을 다운로드하고 설치한다.

https://www.anaconda.com/products/distribution

 

Free Download | Anaconda

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

 

- "Add Anaconda to the system PATH environment variable", "Register Anaconda3 as my default Python 3.9" 체크한다.

- 아래의 명령어를 입력하여 아나콘다와 파이썬이 제대로 설치되어 있는지 확인한다.(오류 발생 시 제대로 설치가 되지 않은 것)

 

- 파이썬 가상환경을 생성한다.

# 명령어 형식
conda create -n [이름] python=[파이썬버전] -y

# 명령어 예시
conda create -n ios_py3 python=3.9 -y

 

※ 이름을 변경하고 싶거나 삭제하고 싶은 경우에는 아래의 명령어를 사용하도록 한다.

# 가상환경(env) 설치 목록 출력 명령어
conda env list

# 가상환경(env) 이름 변경 명령어
conda rename -n [이전이름] [변경이름]

# 가상환경(env) 삭제 명령어
방법1) conda env remove -n [이름]
방법2) conda remove -n [이름] --all

 

2. 프리다 클라이언트 설치 방법

- 가상환경 실행 및 프리다 서버를 설치한다.

# 가상환경 실행 명령어 형식
conda activate [가상환경 이름]


# 프리다 클라이언트 설치 명령어
pip install frida-tools

# 특정버전 설치 명령어
pip install frida==12.6.11
pip install frida-tools

 

- 가상환경에 프리다 클라이언트가 제대로 설치 되었는지 확인한다.

프리다 버전확인 명령어: frida --version

 

3. 프리다 서버 설치 방법

- 아래의 링크에 접속하여 자신의 프리다 클라이언트와 동일한 *버전을 다운로드한다.

*클라이언트와 서버의 버전에 차이가 크면 오류가 발생하지만 차이가 크지 않다면 꼭 동일하지 않아도 된다.

- frida-server-x.x.x-android-x86_64.xz 이름의 파일을 다운로드한다.

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

 

- 다운로드한 프리다 서버 파일을 디바이스의 "/data/local/tmp" 경로로 옮긴다.

# 명령어 양식
adb push [파일 경로] [디바이스 경로]

# 명령어 예시
adb push frida-server-12.6.11-android-x86_64.xz /data/local/tmp

 

- adb로 프리다 서버 파일의 권한을 777로 변경한 뒤 프리다 서버를 실행한다.

# 디바이스 접속
adb shell

# 프리다 서버 권한 설정
chmod 777 /data/local/tmp/frida-server-12.6.11-android-x86_64.xz

# 프리다 서버 파일 압축 해제
xz -d /data/local/tmp/frida-server-12.6.11-android-x86_64.xz

# 프리다 서버 백그라운드로 실행
./data/local/tmp frida-server-12.6.11-android-x86_64 &

 

4. 프리다 클라이언트 실행

- PC의 프리다 클라이언트 명령어를 실행하여 결과가 잘 출력되는지 확인한다.

# 디바이스에 설치된 앱 리스트 출력 명령어
frida-ps -Uai

 

※ 만약 클라이언트 실행 중 아래와 같은 에러가 발생한다면 디바이스에 설치된 프리다 서버의 bit(비트)가 맞지 않거나 잘못된 유형의 파일을 실행하여 발생한 것이다.

Failed to enumerate applications: unable to inject library into process without libc

 

※ 버전이 높은 프리다 서버를 사용하면 한글이 제대로 나온다.

 

  그외 발생한 오류는 아래의 게시글을 참고하여 해결하길 바란다.

[Mobile App 취약점 진단 · 모의해킹] - 프리다(Frida) 관련 오류 해결방법 정리 - iOS

 

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

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

hagsig.tistory.com