1. 개요
Android 핸드폰을 점검하며 View 조작과 앱을 사용한 루팅 우회, 간단한 파일 바꾸기,, 간단한 Smali파일 변조 등 여러 가지 방법으로 점검을 해보았을 것입니다.
하지만 알기만 한다면 Android 및 iOS에서 가장 많은 활용도를 보여주는 도구는 단연 Frida일 것입니다.
물론 제가 다 아는 것은 아니지만 아는 부분에 관해 풀어놓아 작은 도움이나마 되기 위해 시작해 보겠습니다.
2. 준비
Frida, Frida-server, 약간의 java혹은 C언어 다루는 능력? 다른 언어라도 쓸 수 있다면 형태를 맞추어 사용하셔도 무방합니다. Pyrhon 2.7 버전과 ADB툴도 필요합니다.
3. 방법
우선 Frida와 Frida-server를 다운로드하여주셔야 합니다.
여기에서 주의할 점은 Frida버전과 Frida-server버전 그리고 32bit 혹은 64bit를 맞추어 다운로드해야 합니다.
후선 Frida는 CMD창에서 pip install frida 명령으로 최신 버전을 다운로드할 수 있습니다.
저는 먼저 다운로드하여 놓았기 때문에 저렇게 뜨지만 처음 받는 화면은 조금 다를 겁니다.
여기에서 주의해야 할 부분은 아래 부분의 버전입니다. 보시는 바와 같이 버전은 12.7.16입니다. 이를 생각하고 이제 frida-server를 받아야 합니다..
https://github.com/frida/frida/releases
위의 링크로 들어가면 frida와 frida에 관련된 여러 툴을 보실 수 있습니다. 여기에서 주의해야 할 부분은 본인이 사용하고 있는 디바이스가 32bit 혹은 64bit인지와 설치할 운영체제가 어떤 것 인지입니다. 또한 arm을 사용하는지 여부를 통해 본인의 OS에 깔린 Frida와 버전을 맞추어 깔아 주시면 됩니다.
정리 : frida 버전, OS 종류, 단말기 비트, arm 여부
Ctrl+F를 누르고 frida-server를 찾아주시면 목록으로 쉽게 오실 수 있습니다. 위의 frida버전과 사용하는 단말기인 NOX와 대조하여 저에게 필요한 것은 frida-server-12.7.16-android-arm.xz로 확인하였습니다.
이제 파일을 다운로드하여 주시고 압축을 풀어 줍니다.
위와 같이 다운로드하여 압축을 풀었지만 사용하세 편하도록 frida-server만 남기고 이름을 변경해 주었습니다.
Android는 리눅스 환경이고 이를 실행시켜주기 위해 frida의 확장자가 없어도 상관이 없으므로 이름을 변경하여 사용하게 편하게 만들어 주었습니다.
이제 ADB를 통해 /data/local/tmp로 옮겨 주어야 합니다.
(ADB 연결 방법은 일전에 알려주었으니 생략하도록 하겠습니다.)
새로운 CMD를 열고 frida-server의 위치로 가서 ADB를 통해 넣어주시거나 아니면 frida-server가 위치한 폴더에서 (shift + 우클릭)을 하면 목록에 powershell창 열기 혹은 명령어 창 열기가 생기는데 이것을 눌러 바로 CMD혹은 powershell을 열 수도 있습니다.
adb push <frida-server의 위치+/frida-server> /data/local/tmp
(예 : adb push C:\frida-server /data/local/tmp)
위의 명령어로 frida-server를 단말기 내부로 옮겨줍니다. (NOX에 ADB가 붙지 않는다면 개발자 모드를 열고 USB 디버깅을 허가하여 주시면 됩니다. 또한 기존 실제 단말기가 위와 같이 했는데도 안 된다 하면 핸드폰 연결 종류를 충전이 아닌 사진 전송이나 파일 전송으로 바꾸어 주면 연결이 가능합니다.)
frida-server를 옮긴 폴더로 가서 chmod로 권한을 변경하여주고 ./frida-server &으로 frida-server를 실행해줍니다.
이제 frida를 사용할 준비가 끝났습니다.
frida가 잘 붙었는지와 frida-server가 정상적으로 작동하는지 확인하는 방법은 OS에서 frida-ps -U로 현재 단말기에서 구동 중인 process를 확인해보면 확인 가능합니다.
위와 같이 process가 확인이 된다면 frida를 사용할 준비가 된 것입니다.
frida의 활용은 앞으로 글을 통해 알려드리도록 하겠습니다.
'Android' 카테고리의 다른 글
XposedInstaller/Just trust me를 활용한 SSL Pinning 우회 (0) | 2019.12.24 |
---|---|
인증서 설치를 통한 SSL Pinning 우회 (0) | 2019.12.23 |
Smali 파일 변조 (루팅 탐지코드 변조) (0) | 2019.10.19 |
Smali 파일 변조 (SU 탐지 우회) (0) | 2019.10.14 |
안드로이드 진단 환경 구성 (0) | 2019.09.22 |