가. Android Debug Bridge(adb) 정의
- adb(안드로이드 디버그 브릿지)는 기기와 통신할 수 있도록 지원하는 다목적 명령줄 도구이다.
- 디바이스에서 다양한 명령어를 실행하는 데 사용할 수 있는 Unix Shell에 대한 액세스를 제공한다.
- 명령어를 실행하여 디바이스 터미널에 접속할 수 있으며 파일을 주고받을 수 있다.
나. adb 설치 방법
- 안드로이드 스튜디오를 설치한 사람은 adb가 설치되어 있으므로 아래의 과정을 수행할 필요는 없다.
- 아래의 링크에 접속한뒤 "Windows용 SDK 플랫폼 도구 다운로드"를 클릭한다.
https://developer.android.com/studio/releases/platform-tools?hl=ko
- 다운로드된 "platform-tools_r34.0.5-windows.zip" 파일을 압축해제하면 adb.exe 파일이 존재한다.
다. adb 명령어
1. 디바이스 리스트 출력
- devices 명령어를 사용하면 adb에 연결된 디바이스 목록이 출력된다.
#명령어 예시
adb devices -l
1.1. 일련번호 : adb는 포트 번호로 기기를 고유하게 식별하는 문자열을 출력한다.
- 연결된 기기가 여러 개 있을때 일련번호를 이용하여 특정기기로 명령어를 전송할 수 있다.
1.2. 상태 : 기기의 연결 상태는 세가지로 나뉘며, 각 상태에 대한 내용은 아래와 같다.
- offline : 기기가 adb에 연결되지 않았거나 응답하지 않는 상태이다.
- device : 기기가 adb 서버에 연결된 상태이다.
- no device : 연결된 기기가 없는 상태이다.
1.3. 설명: -l 옵션을 사용하면 adb에 연결된 기기가 무엇인지 알려준다. 연결된 기기가 여러 개 있어서 구분할 때 유용하다.
+ 녹스(NOX) 에뮬레이터 연결 방법
※ 녹스 에뮬레이터의 경우 'adb connect 127.0.0.1:62001' 명령어를 사용하여야 연결이 가능하다.
#명령어 예시
adb connect 127.0.0.1:62001
+ 대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다. (10061) 오류 해결 방법
위와 같은 오류가 발생할 경우 지정한 서비스 포트가 이미 PC에서 사용중이서 발생하는 문제이다.
tasklist 명령어를 사용하여 NoxVMHandle.exe 프로세스의 PID를 알아낸다.
tasklist | findstr /i "noxvmhandle"
netstat 명령어를 사용하여 해당 PID와 관련된 서비스 포트 중에서 "LISTENING" 상태를 찾는다.
netstat -ano | findstr [PID]
"LISTENING" 상태의 포트 번호로 adb를 연결한다.
//명령어 예시
adb connect 127.0.0.1:64001
2. 디바이스 연결 및 명령어 전송
- shell 명령어를 사용하여 adb를 통해 기기 명령어를 실행하거나 양방향 shell을 시작할 수 있다.
- 대화형 shell을 종료하려면 'Control+D'를 누르거나 'exit'를 입력한다.
#명령어 형식 : adb [-d | -e | -s serial_number] shell
#명령어 예시
adb shell
+ adb.exe: more than one device/emulator 오류 해결 방법
- s 옵션을 사용하여 특정 디바이스를 선택하여 연결할 수 있다.
//adb -s [device_name] shell
adb -s 127.0.0.1:62025 shell
- 양방향이 아닌 단일 명령어를 실행하려면 shell 명령어를 다음과 같이 사용한다.
#명령어 형식 : adb [-d |-e | -s serial_number] shell shell_command
#명령어 예시
adb shell ls -al
3. 디바이스 파일 송신(전송)
- pull 명령어를 이용하여 모바일 디바이스에서 PC로 파일을 복사할 수 있다.
#명령어 형식 : adb pull remote local
#명령어 예시
adb pull /data/data/jakhar.aseem.diva/uinfo1566991760tmp
4. 디바이스 파일 수신(다운로드)
- push 명령어를 이용하여 PC에서 모바일 디바이스로 파일을 복사할 수 있다.
#명령어 형식 : adb push local remote
#명령어 예시
adb push hagsig_test_file.txt /sdcard/hagsig.txt
라. 참고 URL
- adb 모든 명령어 정리 문서
https://developer.android.com/studio/command-line/adb?hl=ko
'Mobile App 취약점 진단 · 모의해킹 > AOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글
[AOS 취약점 진단] 08강 - 디바이스 로그 내 저장된 중요정보 확인(실습 1) (0) | 2023.12.03 |
---|---|
[AOS 취약점 진단] 07강 - 애플리케이션 파일 및 데이터 권한 확인 (0) | 2023.12.03 |
[AOS 취약점 진단] 06강 - 로컬저장소 내 평문 저장된 중요정보 확인(External Storage 실습) (0) | 2023.12.02 |
[AOS 취약점 진단] 06강 - 로컬저장소 내 평문 저장된 중요정보 확인(Text File 실습) (0) | 2023.12.02 |
[AOS 취약점 진단] 06강 - 로컬저장소 내 평문 저장된 중요정보 확인(SQLlite Database 실습) (0) | 2023.12.02 |