반응형

모바일 진단항목 중 "디버깅 탐지기능 적용여부" 관련하여 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

 

※도움이 되셨다면 공감, 댓글 부탁드려요.

반응형

+ Recent posts