[Frida] Nox에 frida 설치하기

Nox Emulator에 frida-server를 설치한다.

실습 환경은 OS X Catalina 환경이지만 Windows에 설치했을 때에도 이상 없이 설치됨을 확인했다.

현재(20.11.14)기준으로 프리다 최신 버전은 14 버전이다. 공식 홈페이지에서 받을 수 있다.

NOX 설치

  • ROOT 켜기
  • ADB 쉘 연결 위한 BusyBox 설치

  • 파일 관리자 실행으로 루트 및 시스템 경로 접근 가능한지 확인

실습 환경에 ADB 설치

Windows : https://4urdev.tistory.com/77

  1. Android SDK Platform Tools 페이지에서 OS에 맞는 ADB를 다운로드
  2. 다운받은 경로를 환경변수(시스템변수 - Path)에 등록
  3. 쉘에서 adb명령어로 설치 확인
    [사진4]
    OSX에서는 adb connect 127.0.0.1:62001을 통해서 연결 가능하다.

  1. nox 설치 경로도 환경변수에 등록하여 nox_adb 실행도 확인

오류, error: more than one device/emulator

에뮬레이터 종료가 정상적으로 이루어지지 않았거나 다른 이유로 여러개의 에뮬레이터가 조회되는 경우이다.

adb devices를 통해서 타겟 디바이스의 목록을 확인하고, adb-kill-server 를 통해서 목록의 디바이스를 모두 종료시킬 수 있다.

그다음 nox_adb shell 을 통해서 연결한다.

또는 adb -s 디바이스명 shell -s 옵션을 통해서 타겟을 직접 지정할 수도 있다.

frida-server 설치

  1. 안드로이드 운영체제 비트 확인(32bit)

    nox_adb shell getprop ro.product.cpu.abi

  2. frida-server 설치

  3. https://github.com/frida/frida/releases에서 운영체제에 맞는 frida-server설치(frida-server-12.11.12-android-x86.xz)

    nox에서 파일관리자 실행 후 드래그&드롭 하면 복사되나 권한오류문제(Permission denied, remote Read-only file system)를 만나기 싫으면 실행권한이 있는 폴더로 파일이동 해야함, 또는 직접 실행권한을 부여해야한다.

    드래그앤드롭시 파일위치

    실행권한이 있는 /data/local/tmp 폴더 생성후(이미 존재할 수도 있음) adb push 파일위치 nox이동위치 nox로 파일복사

    권한부여 chmod 777 frida-server

    ./frida-server & 으로 백그라운드 실행

    ps |grep "frida*" 로 실행 확인

`frida-ps -U` 로 frida-server PID를 확인하여 attach 시킬 수 있다.

fridump 설치

  1. https://github.com/rootbsd/fridump3 에서 download

    • python2의 경우 fridump, python3의 경우 fridump3을 사용한다.
  2. 압축풀고 실행

  3. 패키지명 또는 PID를 통해서 타켓을 지정하고 메모리를 dump 할 수 있다.

    #frida-ps -U | findstr [APP NAME]

    #python fridump3.py -u -s [PACKAGE NAME]

Frida 설치

frida는 bob 트랙별 교육 중 설치하였다. 다음 명령어로 설치한다.

#python -m pip install —upgrade pip

#pip install frida

pip install frida-tools —upgrade

설치가 완료되면 필요에 따라 환경변수에 등록한다.

설치확인

 

 

CrackMe

덤프를 위한 적절한 앱을 찾기 위해 크랙미 실습파일을 구했다.

실습용 예제파일

https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level_01/UnCrackable-Level1.apk

더보기

문자열검색을 통해 Package Name을 찾고 Dump를 수행한다.

error:device not found
solve:

  1. 더보기
    fridump3.py 을 연다.
  2. 더보기
    frida.get_usb_device()를 찾아 frida.get_usb_device(1)로 수정
  1. 메모리 덤프

반응형