Frida 란 ?
Ole가 개발한 DBI 프레임워크다. 윈도우, 맥OS, GNU/Linux, IOS, Android 및 QNX 에서 자바스크립트를 네이티브 앱에 삽입 함으로서 프로세스를 모니터/디버깅하는데 사용할 수 있는 툴킷이다.
주요기능
- AppMon과 Needle 등의 도구에서 프리다를 기반으로 사용
- 함수 후킹 (특정 함수에 연결하여 반환 값 변경, 함수 재작성 등)
- 애플리케이션 디버깅 가능
- 힙 메모리 내 객체 인스턴스 검색 및 사용
- 실시간 트래픽 스니핑 또는 암호 해독
- 탈옥 또는 루팅되지 않은 단말기에서도 사용 가능
프리다 환경 구축
- 녹스 앱플레이서(Nox) 또는 실제 디바이스
- 아나콘다(파이썬)
- 프리다
- 프리다 서버
1. 녹스 앱 플레이어 설치 및 환경 설정
1) "바로 설치" 클릭 수 기본 값으로 설치 진행
2) 녹스 앱플레이서 시스템 설정
-> 루트 권한을 사용하기 위해 "ROOT 켜기"
-> 실제 단말기에선 루팅 작업으로 루트 권한을 얻는 것과 동일
3) 녹스 ADB 환경변수 설정
-> ADB 란 안드로이드 디버그 브릿지의 약자
-> 안드로이드 기기와 통신할 수 있는 다목적 명령줄 도구
-> 보통 "C:\Program Files\Nox\bin" 경로에 존재
-> 시스템 환경 변수 편집 > 환경 변수 > 시스템 변수 Path > 새로 만들기
4) 녹스 ADB 실행
$ nox_adb
5) 녹스 ADB 안드로이드 연결
$ nox_adb shell
2. 아나콘다(파이썬) 환경 구축
1) 기본 값으로 설치를 진행하다가 "Advanced Option"에서 Add Anaconda to the system PATH environment variable"을 체크
2) 설치 된 아나콘다의 콘다 버전 과 파이썬 버전 확인
-> $ conda --verion
-> $ python --version
3) 아나콘다(파이썬) 독립된 환경 구축
-> 파이썬 3.8.12 버전 환경 구축
$conda create -n [환경 이름] python = [파이썬 버전] -y
$conda create -n py3 python=3.8.12 -y
4)아나콘다(파이썬) 독립된 환경 구축
->구축한 환경 실행
$activate [환경 이름]
$activate py3
3. 프리다 및 프리다 서버 설치
1)앞서 구축한 파이썬 3.8.12 환경에 설치 진행
$pip install frida==15.1.10
$pip install frida-tools
$frida --version
2)프리다 서버 설치
->안드로이드 비트 확인
->로컬에서 설치한 프리다와 안드로이드가 통신하기 위해 프리다 서버 필요
->프리다 서버를 안드로이드 기기에 설치하기 전 안드로이드 비트 확인
$nox_adb shell
#getprop ro.product.cpu.abi
3)프리다 서버 다운
안드로이드 비트와 동일한 프리다 서버 다운
frida-server-15.1.12-android.x86.xz 다운
4)프리다 서버 압축 풀기 후 안드로이드 내부로 서버 옮기기
$nox_adb push [프리다 서버] /data/local/tmp
$nox_adb shell
#cd /data/local/tmp
5)안드로이드 프리다 서버 백그라운드로 실행
#chmod 755 [프리다 서버]
#./[프리다 서버] &
6) 프리다 통신 확인
-> 안드로이드에서 실행 중인 프로세스 목록 확인
-> frida-ps -U
'모바일 해킹 > frida' 카테고리의 다른 글
fridalab challenge writeup! - 3번, 4번 (0) | 2021.12.05 |
---|---|
fridalab challenge writeup! - 1번, 2번 (0) | 2021.12.05 |
frida 기본 문법 (0) | 2021.12.05 |
frida 기초 (0) | 2021.11.28 |