프리다 환경 구축

옥영진·2020년 8월 22일
0

Frida

목록 보기
1/11
post-custom-banner

프리다는 Ole가 개발한 DBI(Dynamic Binary Instrumentation)로, 실행중인 앱에 코드를 삽입하여 프로세스를 추적 및 분석, 디버깅을 할 수 있는 도구이다.

프리다 로컬 설치(PC)

프리다를 설치하기 전에 녹스 앱플레이어와 아나콘다가 설치되어 있다고 가정하겠다.
아나콘다 설치 후 python 3.7 최신 버전으로 가상 환경을 구축한다. 구축 후 activate 명령어로 해당 가상 환경을 활성화 하여 가상 환경에 frida를 설치한다.

conda create -n py3 python=3.7
conda activate py3
pip install frida-tools
frida --version

프리다 버전을 확인하면 12.11.10 이라는 것을 알 수 있다. 프리다 서버를 설치하려면 설치된 프리다 버전을 알아두어야 한다.

프리다 서버 설치(안드로이드)

ADB(Android Debug Bridge) 라는 프로그램을 통해 안드로이드 기기와 통신할 수 있다. 하지만 녹스 앱플레이어에서 제공하는 nox_adb 라는 프로그램을 대신 실행하여 녹스 앱플레이어에서 실행 중인 가상 안드로이드와 통신할 것이다. 실행 전에 환경 변수에 nox_adb 프로그램 경로를 추가한다.

아래 명령어로 녹스 앱플레이어에서 실행 중인 안드로이드와 연결되어 있는지 확인한다.

nox_adb devices

연결된 안드로이드 디바이스 목록이 출력되었고, 아래 명령어로 해당 디바이스 쉘로 접속할 것이다.

nox_adb shell

쉘에 접속 후, 아래 명령어를 통해 안드로이드가 몇 비트인지 확인한다.

getprop ro.product.cpu.abi

위 캡처화면처럼 x86 (32비트) 안드로이드라는 것을 알 수 있다.

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

링크를 통해 frida-server-12.11.10-android-x86.xz 파일을 다운로드 받고 압축을 푼다. 압축을 풀고 나온 파일을 adb push 명령어로 녹스 안드로이드 앱에 업로드한다.

nox_adb push [프리다 서버 파일] [업로드 될 디렉토리]

해당 디렉토리에 프리다 서버가 업로드되었음을 확인했으니, 실행 권한을 부여하여 실행을 해보자. 실행할 때 끝에 & 문자를 붙이면 백그라운드로 실행하겠다는 의미이다.

실행 후 프리다와 통신하는지 확인하기 위해 새로운 cmd 창을 열어 이전에 생성했던 py3 가상 환경을 활성화 한 후, 아래 명령어를 실행한다. 해당 명령어는 안드로이드에서 실행 중인 프로세스 목록을 나열하는 것이다. 프로세스 목록이 나열되면 안드로이드에서 실행 중인 프리다 서버와 정상적으로 통신하고 있다는 의미이다.

frida-ps -U

profile
안녕하세요 함께 공부합시다
post-custom-banner

0개의 댓글