모바일 진단항목 중 "디버깅 탐지기능 적용여부" 관련하여 GDB만 콕 집어서 테스트해달라는 곳이 있습니다.
gdbserver 정도는 android-ndk 를 다운로드 하면 쉽게 구할 수 있지만, gdb client를 구하는게 여간 어렵습니다.
직접 컴파일하는 방법이 있어 소개합니다.
Kali 2019.04 버전에서 진행.
■준비사항
apt-get update
apt-get install build-essential gcc g++ autogen m4 bison gettext libpython-dev guile-2.2-libs libgc1 texinfo liblzma*
android-ndk-r21b-linux-x86_64 다운로드 및 압축해제.
wget http://ftp.gnu.org/gnu/gdb/gdb-9.2.tar.gz .
tar xvfz gdb-9.2.tar.gz
■Compile GDB
cd gdb-9.2
mkdir build_arm64 && cd build_arm64
../configure --prefix=/root/hackcatml/gdb-9.2/build_aarch64 --target=aarch64-linux-android --disable-werror --with-lzma --with-python=/usr/bin/python3
make -j8
make install
여기까지 잘 진행되었으면 /root/hackcatml/gdb-9.2/build_aarch64/bin 하위에서 gdb client파일을 확인 가능합니다.
gdb 컴파일은 위에 단계까지 진행되어서 끝났습니다.
다음 단계들은 컴파일한 gdb client를 android단말기에 attach 하기 위한 준비단계입니다.
컴파일한 gdb client파일은 android-ndk 디렉터리 하위로 옮겨줍니다.
cp ~/hackcatml/gdb-9.2/build_aarch64/bin/aarch64-linux-android-gdb ~/android-ndk-r21b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/
컴파일한 gdb client파일을 PATH에 추가해주는 작업입니다.
vi ~/.bashrc
맨 마지막줄에 다음 구문을 추가해줍니다.
export PATH=$PATH:~/android-ndk-r21b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/
source ~/.bashrc 명령어로 수정된 .bashrc를 적용시켜줍니다.
이후 gdb 동적 디버깅은 "gdb so파일 동적디버깅(Android9)" 를 참고해주세요.
※Reference
https://stackoverflow.com/questions/60973768/build-gdb-and-gdbserver-for-android
https://medium.com/@k3vinlusec/how-to-compile-gdb-9-x-and-gdbserver-for-android-24ef6625ee9a
※도움이 되셨다면 공감, 댓글 부탁드려요.
'Information Security > Android' 카테고리의 다른 글
IPTABLES for Android (1) | 2020.12.18 |
---|---|
Dump Dex file(frida-dexdump) (0) | 2020.12.06 |
Android(8 or 9) MAC 주소 변경 (1) | 2020.10.01 |
Android 7 이상 시스템영역에 Fiddler 인증서 설치 (6) | 2020.09.29 |
Uncrackable Level 3(Android) (6) | 2020.07.31 |