🪄
Notice : 본 과정은 개발 및 컴퓨터 활용에 관련된 지식을 어느 정도 보유하고 있어야 원활한 이해 및 학습 진행이 가능합니다.

Frida 를 이용한 후킹 등 실습을 위해 Frida 설치를 진행합니다.

frida-tools 설치를 진행하기에 앞서 python을 이용할 수 있도록 환경 구성이 필요한데 여기서는 uv를 설치한 뒤 python 을 활용하는 구성형태로 진행합니다.

windows 환경 또는 mac이나 linux 환경에서 설하기 위해 다음 github를 방문 하여 설치하는 방법 및 명령어를 참고하여 설치를 진행합니다.

GitHub - astral-sh/uv: An extremely fast Python package and project manager, written in Rust.
An extremely fast Python package and project manager, written in Rust. - astral-sh/uv

Step 01) 안내 된 명령어를 활용하여 uv 설치를 진행합니다.

# Windows 에서 UV 설치를 진행하는 경우
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS 이나 Linux 에서 UV 설치를 진행하는 경우
curl -LsSf https://astral.sh/uv/install.sh | sh
# pip 나 pipx 등 python 환경이 이미 설치되어 있는 경우
pip install uv
🪄
PC에 설치되어 있는 백신 종류에 따라 스크립트 동작에 의해 악성코드로 분류되어 설치 진행이 정상적으로 되지 않을 수 있습니다. 이 경우에는 Anaconda 를 이용해 Python 을 설치한 뒤 pip 명령어 등을 이용해 진행해도 되며, 아니면 일시적으로 백신을 비활성화 하여 진행을 하면 됩니다.

Step 02) 위와 같이 설치 완료 메시지가 나타나면 명령 프롬프트 또는 PowerShell 등 실행 중인 동작 환경에 따른 Path 변수 설정을 진행해 주거나 새로 창을 띄웁니다.

Step 03) 정상적인 설치 및 동작 확인을 위하여 uv --help 명령어를 이용해 다음과 같이 정상적으로 명령어 안내가 출력 되는지 확인합니다.

Step 04) 앞으로 frida 및 frida와 관련된 python 스크립트를 다루기 위해 frida 라는 폴더를 생성하고 uv 명령어를 이용해 python 설치 및 환경을 세팅해줍니다.

# frida 와 관련된 내용을 다룰 디렉토리(폴더) 생성
D:\> mkdir frida

# 생성된 frida 경로로 이동
D:\> cd frida

# uv init 명령어를 이용해 uv 환경 프로젝트로 초기화
D:\frida> uv init

# uv venv 명령어를 이용해 python 등 가상 환경 구성
D:\frida> uv venv

# uv pip install 명령어를 이용해 가상 python 환경에 frida-tools 설치
D:\frida> uv pip install frida-tools

Step 05) 정상적인 설치 및 동작 확인을 위하여 uv run frida --helpuv run frida --version 명령어를 이용해 다음과 같이 정상적으로 명령어 안내가 출력 되는지 확인합니다.

Step 06) 녹스(Nox) 환경에 Frida Server 를 설치하기 위해 Nox 에뮬레이션 환경을 가동합니다.

Step 07) adb 명령어를 이용해 devices 연결 목록이 나오는지 확인합니다.

🪄
nox 환경이 아닌 실제 mobile 환경에서 진행 및 테스트 한다면 adb 명령어를 사용하시고, nox를 대상에서 한다면 nox_adb 명령어를 이용하는 것이 진행에 어려움이 덜어질 수 있습니다.

Step 08) getprop 명령어를 활용해 대상 기기(nox)의 cpu abi정보를 확인합니다.

Step 09) frida github 에 방문하여 Releases 링크를 선택합니다.

Step 10) Show all OOO assets 링크를 눌러 숨겨진 목록을 펼칩니다.

Step 11) frida-server-{version}-android-{cpu.abi}.xz 파일을 내려받아 생성했던 frida 폴더에 압축을 해제합니다.

Step 12) 아래 명령어를 통해 모바일 기기(nox 등) 환경의 /data/local/tmp 경로에 frida server 파일을 전송하고 권한을 부여합니다.

# nox 가 아닌 환경
adb push .\frida-server-{version}-android-{cpu.abi} /data/local/tmp
adb shell chmod 777 /data/local/tmp/frida-server-{version}-android-{cpu.abi}

# nox 를 이용하는 환경
nox_adb push .\frida-server-{version}-android-{cpu.abi} /data/local/tmp
nox_adb shell chmod 777 /data/local/tmp/frida-server-{version}-android-{cpu.abi}

Step 13) 다음의 명령어를 입력하여 frida server 를 구동합니다.

adb shell # Nox 의 경우 nox_adb 명령어로 대체
cd /data/local/tmp
nohup ./frida-server-{version}-android-x86_64 &
🪄
nohup 명령어는 기기와의 연결이 끊겼을 경우 프로세스도 종료되는 경우를 방지하고자 사용한 명령어입니다.

Step 14) frida-ps -Uai 명령어를 이용해 설치되어 있는 애플리케이션 목록을 확인하고 그 목록에 ANDITER 가 존재하는지 확인하여 frida 이용 환경이 적절히 구성되어있는지 최종 점검을 수행합니다.