ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프리다(Frida) 환경 구축(3/3) - 안드로이드 에뮬레이터에 프리다 서버(Frida Server) 설치
    Mobile/안드로이드(Android) 2020. 2. 18. 15:59

     

    프리다(Frida) 환경 구축(3/3) - 안드로이드 에뮬레이터에 프리다 서버(Frida Server) 설치

     

    본 게시글에서는 녹스(Nox)를 이용한 안드로이드 에뮬레이터에 프리다 서버(Frida Server)를 설치하는 방법에 대해서 알아본다.

    프리다 서버는 운영체제(안드로이드, iOS 등) 또는 아키텍처(64bit, 32bit) 등에 구분하여 설치를 진행해야 한다.

     

    프리다 서버 설치 방법은 다음과 같다.

     

    1. 녹스(Nox)를 통해 안드로이드 에뮬레이터를 실행한다.

     

    2. 안드로이드 에뮬레이터 bit 확인

    안드로이드 에뮬레이터 bit 확인을 위해 로컬 PC에서 adb 명령어를 이용한다.

    아래 명령어를 통해 확인하면, 안드로이드 에뮬레이터는 32bit(x86)임을 알 수 있다.

     

    (py3) >nox_adb shell
    root@shamu:/ # getprop ro.product.cpu.abi

     

     

    3. 프리다 서버 설치를 진행한다.

    이전 게시글에서 로컬 PC에 설치한 프리다 버전은 12.8.11 이고, 안드로이드 에뮬레이터의 아키텍처는 32bit이다.

    해당 정보에 맞게 프리다 서버 설치를 진행한다.

     

    1) 프리다 서버 다운로드를 위해 다운로드 사이트에 접속한다.

    - 프리다 다운로드 사이트 : https://frida.re/

     

    Frida • A world-class dynamic instrumentation framework

    Inject JavaScript to explore native apps on Windows, macOS, GNU/Linux, iOS, Android, and QNX

    frida.re

     

    2) 상단의 [docs] - 좌측의 [Android] 메뉴 클릭 후, 내용 중간의 'releases page' 클릭한다.

     

     

    3) 각자 설치 환경에 맞는 프리다 서버를 다운로드한다.

    본 게시글에서는 12.8.11 버전의 프리다 서버와 32bit에 부합하는 프리다 서버를 다운로드하였다.

     

     

    4) 다운로드 받은 파일을 압축해제 한다.

     

     

    5) adb 명령어를 이용하여 안드로이드 에뮬레이터로 프리다 서버 파일을 전송한다.

    아래 명령어를 이용하여 프리다 서버 파일을 안드로이드 에뮬레이터로 전송한다.

    파일을 전송할 경로는 /data/local/tmp로 지정하였다.

     

    (py3) >nox_adb push frida-server-12.8.11-android-x86 /data/local/tmp

     

     

    6) 정상적으로 파일이 전송되었는지 adb shell 명령어를 이용하여 확인한다.

    아래 명령어를 이용하여 확인한다.

     

    (py3) C:\>nox_adb shell
    root@shamu:/ # cd /data/local/tmp
    root@shamu:/data/local/tmp # ls
    frida-server-12.8.11-android-x86

     

     

    4. 프리다 서버를 실행한다.

    프리다 서버를 실행하기 전에, 안드로이드 에뮬레이터로 전송한 프리다 서버 파일을 실행권한이 존재하지 않으므로, 우선적으로 권한을 부여한다.

     

    root@shamu:/data/local/tmp # ls -al
    -rw-rw-rw- root     root     26364708 2020-02-18 15:32 frida-server-12.8.11-andr
    oid-x86
    root@shamu:/data/local/tmp # chmod 777 frida-server-12.8.11-android-x86
    root@shamu:/data/local/tmp # ls -al
    -rwxrwxrwx root     root     26364708 2020-02-18 15:32 frida-server-12.8.11-andr
    oid-x86

     

     

    실행권한이 부여되었으면, 이제 실행을 시킨다.

    아래 명령어를 이용하여 백그라운드에서 프리다 서버를 실행시킨다.

     

    root@shamu:/data/local/tmp # ./frida-server-12.8.11-android-x86 &

     

     

    정상적으로 실행이 되었는지 ps 명령어를 확인한다.

    root@shamu:/data/local/tmp # ps | grep frida

     

    확인 결과, 3623 PID를 가진 프리다 서버가 정상적으로 실행 되었음을 알 수 있다.

     

     

    5. 로컬 PC에서 프리다 서버로 접속을 수행한다.

    로컬 PC에 설치된 프리다를 통해 안드로이드 에뮬레이터에 설치된 프리다 서버에 접속을 시도한다.

    정상적으로 접속 후 명령어가 정상적으로 실행되면, 안드로이드 에뮬레이터에서 실행중인 프로그램 목록을 확인할 수 있다.

     

    C:\Users\BH>activate py3
    (py3) C:\Users\BH>frida-ps -U

     

    만약 안드로이드 에뮬레이터 내부에서 실행중인 프로그램이 정상적으로 확인이 된다면, 설치가 정상적으로 된 것이다. 

     

    (※ -U 옵션은 USB 장치를 확인하여, 안드로이드 에뮬레이터를 인식한다는 뜻이다.
    만약 정상적으로 되지 않는다면, 로컬 PC에 USB로 연결되어있는 물리적인 안드로이드 단말기가 있는지 확인이 필요하다.

    USB로 연결되어 있는 물리적인 안드로이드 단말기가 존재한다면, USB 연결을 끊고, 다시 진행한다.
    또는 다수 연결이 되어 있는 상태라면, 다른 옵션을 이용해서 연결해야 한다.)

     


    댓글

Designed by Tistory.