기존에 Nox 사용하다가 초기화 한 번 하니까 가상 환경 문제로 실행이 안됐다.
wsl2랑 동시 사용 불편해서 블루스택으로 갈아탔는데, 이번엔 네트워크 설정이 없어서 burp 사용하기가 힘들다.
그래서 Andoird Studio 깔아서 avd 사용하기로 했다. burp 연동하는 것은 nox랑 유사하니 이 게시글에서는 다루지 않고 안드로이드에 radare2를 설치하는 방법에 대해 알아보겠다.
안드로이드 스튜디오 설치
Android 스튜디오 및 앱 도구 다운로드 - Android 개발자 | Android Studio | Android Developers
Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.
developer.android.com
먼저 안드로이드 스튜디오를 설치해주자.
설치 후에 Virtual Device Manager로 AVD에 접근해준다.
필자는 기본적으로 설치되어 있는 디바이스를 이용했다.
WSL2에서 에뮬레이터 접근
gdbserver나 lldbserver를 이용해서 분석하는 방법을 시도해봤다. 그 과정 중 wsl2와 에뮬레이터를 연결하는 방법에 대해도 적어보겠다. 결론적으로 gdbserver와 lldbserver를 이용하는 분석은 실패했다.
https://mushlih.hashnode.dev/how-to-connect-an-android-emulator-to-wsl
How to Connect an Android Emulator to WSL
Connecting an Android Emulator or a real Android device to WSL (Windows Subsystem for Linux) can be very useful for development purposes. This tutorial will guide you through the steps required to establish this connection over USB. Step 1: Configure...
mushlih.hashnode.dev
이후에는 위 링크를 참고하여 실행해주면 된다.
windows 호스트에서 실행
adb kill-server
adb -a server nodaemon
wsl2에서 접근할 수 있도록 windows에서 서버를 열어둔다.
디바이스를 실행 중이어도 안되면 몇 번 반복해주자.
wsl2에서 실행
export ADB_SERVER_SOCKET=tcp:[WINDOWS_IP_HOST]:5037
adb devices
여기서 `ADB_SERVER_SOCKET`은 adb에서 소켓 설정을 하기 위해 미리 정의된 변수이기 때문에 꼭 맞춰줘야 한다.
디바이스 rooting
https://proandroiddev.com/root-an-android-emulator-avd-9f912328ca08
Root an Android Emulator(AVD)
Guide to root your Android Emulator aka Android Virtual Device(AVD) for security testing
proandroiddev.com
먼저 avd를 루팅부터 하자. 위 게시글을 참고하여 루팅하였다.
https://github.com/newbit1/rootAVD.git
GitHub - newbit1/rootAVD: Script to root AVDs running with QEMU Emulator from Android Studio
Script to root AVDs running with QEMU Emulator from Android Studio - newbit1/rootAVD
github.com
위 깃 페이지에서 파일을 받아오면 된다.
git clone https://github.com/newbit1/rootAVD.git
.\rootAVD.bat ListAllAVDs
이후 현재 본인이 사용하고 있는 버전에 맞는 명령어를 가져온다.
.\rootAVD.bat system-images\android-35\google_apis_playstore\x86_64\ramdisk.img
사진으로 담지는 못했지만 디바이스에서 grant를 허용해줘야한다. 창으로 뜨니까 버튼 누르기만 하면 된다.
https://developer.android.com/ndk/downloads?hl=ko
NDK 다운로드 | Android NDK | Android Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. NDK 다운로드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 개발 플랫폼에 맞는 NDK 패키지를 선택합
developer.android.com
에뮬레이터 radare2 설치
분석을 위해 리버싱 툴을 사용하려고 했다. 처음엔 gdb를 이용하려고 했으나, NDK에 gdb에 대한 지원을 중지했다고 한다. 그래서 lldb server로 시도해봤는데, wsl2에서 lldb server에 연결이 안됐다.
따라서 에뮬에 radare2를 설치하는 방식으로 진행했다.
https://book.rada.re/install/android.html
Compiling for Android - The Official Radare2 Book
Radare2 can be cross-compiled for other architectures/systems as well, like Android. Python 3 Make Git Binutils pkg-config Download the Termux application from the official site and install it. First time installation of termux require updating the repo to
book.rada.re
위 자료를 따라 수행했다.
Google playstore에서 termux를 설치해주자.
이후 termux에서 아래 명령어들을 따라 쳐주자.
pkg update && pkg upgrade -y
pkg install build-essential git python3 binutils wget pkg-config
git clone https://github.com/radareorg/radare2 --depth 1
cd radare2
sh sys/install.sh
power shell을 하나 열고 adb shell로 접속했다. 위 경로대로 접근하면 radare2를 실행할 수 있다.
ln -s /data/data/com.termux/files/home/radare2/binr/radare2 /data/local/tmp/radare2
위 명령어로 쉽게 접근할 수 있도록 링크를 하나 만들었다.
근데 위 경로에 접근하기 위해선 루트 권한이 필요하다. 따라서 앞서 알아본 루팅이 이루어져야 한다.
실행 중인 앱에 radare2를 연결시켜 디버깅하기 위해선 실행 중인 앱의 프로세스ID가 필요하다.
ps -ef | grep -i [APP]
필자는 위 명령으로 주로 검색한다.
radare2 -d [Process ID]
위 명령으로 attach하면 된다.
'안드로이드 해킹 > 개념 노트장' 카테고리의 다른 글
Frida 설치법 (0) | 2025.01.09 |
---|---|
[Tip] Nox 사용 후 WSL2 복구 (1) | 2024.12.08 |