목차
- 리버싱 APKTool 도구 설치 예제 이전 포스팅 링크 및 설명
- 리버싱 APKTool 활용 앱 리패키징 예제 이전 포스팅 링크 및 설명
- 리버싱 앱 디컴파일 예제 이전 포스팅 링크 및 설명
- 리버싱 Frida 파이썬 PC 클라이언트 패키지 설치 예제(pip3)
- 리버싱 Frida 안드로이드 휴대폰에 맞는 서버 다운로드 및 설치 예제
리버싱 APKTool 도구 설치 예제 이전 포스팅 링크 및 설명
안녕하세요. 오늘은 리버스 엔지니어링 도구 중 가장 많이 사용되는 Frida를 설치하는 방법에 대해 알아보도록 하겠습니다. Frida는 무료 라이센스 리버스 엔지니어링 도구로서 핸드폰이나 호스트에 서버 프로그램을 설치하고 클라이언트 프로그램을 통해 원격 연결하는 리모트 리버스 엔지니어링 도구입니다. 오늘 포스팅 주제를 알아보기에 앞서 먼저 이전 포스팅 내용을 확인해보겠습니다. 이전 포스팅에서는 Frida 외에 안드로이드 APK 파일을 분석할 수 있는 APKTool 도구 설치 방법을 알아보았습니다. 안드로이드 앱을 리버스 엔지니어링 분석해야한다면 아래의 포스팅을 확인하여 학습해주세요.
2020.07.07 - [Reverse Engineering] - Linux Apktool 설치(Apktool Install)
리버싱 APKTool 활용 앱 리패키징 예제 이전 포스팅 링크 및 설명
다음으로 이전 포스팅에서는 APKTool 을 이용하여 이미 빌드 후 서명된 릴리즈 앱을 역공학하여 리패키징 하는 방법에 대해 알아보았습니다. 리패키징이란 말 그대로 다시 포장한다는 의미입니다. 안드로이드 앱은 컴파일 후 여러 환경 설정 파일과 실행 파일들을 합치는 과정이 필요합니다. 이런 과정을 패키징이라고하며 이 패키징된 파일을 개발자의 고유한 키로 서명을 합니다. 이 서명 값을 통해 개발자가 최초 배포한 앱과 지금 내가 설치하려는 앱이 동일한 형상인지 확인할 수 있습니다. APKTool로 리패키징 하는 방법이 궁금하시다면 아래의 포스팅을 참고하여 학습해주세요.
2020.07.07 - [Reverse Engineering] - Linux ApkTool 리패키징(APK, RePackaging)
리버싱 앱 디컴파일 예제 이전 포스팅 링크 및 설명
마지막으로 이전 포스팅에서는 안드로이드 앱을 리버스 엔지니어링 하는 방법에 대해 알아보았습니다. 리버스 엔지니어링이란 이미 컴파일되어 실행할 수 있는 형태의 파일을 다시 뜯어보아 고급언어 수준의 형태로 되돌린 후 비즈니스 로직을 분석하는 것을 의미합니다. 즉, 화이트 해커들이 수행하는 일이기도 합니다. 모의해킹이라고도 하며 보안 회사에서 주로 자주 사용하는 방법입니다. 주로 APKTool 혹은 Jd-Gui 등의 도구를 이용하여 안드로이드 어셈블리 수준 코드인 Smali 코드를 분석합니다. 해당 리버스 엔지니어링 방법이 궁금하시다면 아래의 포스팅을 참고해주세요.
2020.07.07 - [Reverse Engineering] - Linux APK 디컴파일(Decompile, APK tool)
리버싱 Frida 파이썬 PC 클라이언트 패키지 설치 예제(pip3)
아래는 리버싱 분석을 위한 Frida 파이썬 PC 클라이언트 모듈 패키지를 설치하는 예제입니다. pip3 명령을 통해 Frida 클라이언트 모듈 설치가 가능합니다. 본 포스팅은 리눅스 우분투 환경에서 수행하였으며 아래의 리눅스 쉘 명령을 통해 Frida 클라이언트 모듈을 설치해주세요. 윈도우에서도 동일하게 pip3 명령으로 설치가 가능합니다.
$ pip3 install frida-tools
...
Defaulting to user installation because normal site-packages is not writeable
Collecting frida-tools
Downloading frida-tools-12.3.0.tar.gz (200 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 200.5/200.5 kB 6.2 MB/s eta 0:00:00
Installing build dependencies ... done
...
$ frida --version
16.2.1
리버싱 Frida 안드로이드 휴대폰에 맞는 서버 다운로드 및 설치 예제
위의 예제를 통해 Frida 파이썬 클라이언트 모듈을 설치하였다면 이제 실제 핸드폰에서 실행시킬 Frida 서버 프로그램을 다운로드 받아야합니다. 안드로이드는 Linux 운영체제이기 때문에 현재 휴대폰 아키텍처에 맞는 프로그램을 다운로드해야합니다. 아래의 경로와 명령어를 참고하여 Frida 서버 프로그램을 다운로드한 후 핸드폰에 옮겨주세요.
1. 서버 프로그램 다운로드 주소
https://github.com/frida/frida/releases/tag/16.2.1
2. 안드로이드 휴대폰(64bit)의 경우 아래 파일 다운로드
frida-server-16.2.1-android-arm64.xz
3. 다운로드 받은 파일 압축해제
$ cd ~/Downloads
$ xz -d frida-server-16.2.1-android-arm64.xz
4. 휴대폰을 USB로 컴퓨터와 연결하고 adb push 명령으로 핸드폰으로 복사(반드시 루팅된 핸드폰)
$ adb push frida-server-16.2.1-android-arm64 /data/local/tmp/
5. 서버 프로그램 권한 수정
$ adb shell
$ su
# cd /data/local/tmp
# chmod 755 frida-server-16.2.1-android-arm64
6. 실행
# ./frida-server-16.2.1-android-arm64