모의해킹/안드로이드 앱
ADB - Android Debug Bridge
초코맛동산
2024. 5. 26. 15:32
ADB(Android Debug Bridge)
: 안드로이드 애뮬레이터 혹은 실제 Device와 통신 및 제어를 가능하게 하는 안드로이드 디버깅 도구. 안드로이드 SDK에 포함되어 있어 추가 설치 없이 간편하게 해당 툴을 사용할 수 있다.
위치: (안드로이드 SDK를 설치했다면) C:(생략)\Android\Sdk\platform-tools
1. ADB 3요소
요소 | 설명 |
클라이언트 | 안드로이드 개발 시스템에서 실행. ADB 명령어 입력한 후 쉘에서 클라이언트 호출. |
서버 | 안드로이드 개발 시스템에서 백그라운드 프로세스로 실행. 클라이언트와 데몬 간 통신을 관리. |
데몬(adbd) | 에뮬레이터나 각 기기에서 백그라운드 프로세스로 실행. 기 기에서 명령어를 실행 |
2. ADB 작동 방식
1 | ADB 클라이언트 시작 시 ADB 서버 프로세서가 실행 중인지 점검 |
2 | 실행 상태가 아닐 때 -> 서버 프로세스 구동 실행 상태일 때 -> TCP 5037 포트에 바인드하며 모든 클라이언트가 해당 포트로 ADB 서버와 통신. 즉, 전송된 명령어를 리슨. |
3 | 에뮬레이터/장치 인스턴스에 대한 연결 설정 |
4 | 포트 번호 5555 ~ 5585의 범위 안에서 홀수 번호 포트를 스캐닝(장치를 찾음) |
5 | 서버가 ADB 데몬을 발견하면 해당 포트 번호와의 연결을 설정. ADB는 홀수 포트를 갖고, 에뮬레이터 인스턴스 콘솔 포트는 짝수 포트와 연결. |
6 | 서버가 모든 장치에 연결되면 사용자는 인스턴스에 접근할 수 있는 ADB 명령을 수행할 수 있다. |
3. ADB 디바이스 장치 선택
3.1 장치가 1개일 때
1. 연결 명령어 입력: adb shell
+) 옵션:
USB 디바이스 | -d |
애뮬레이터 | -e |
3.2 장치가 2개 이상일 때
1. 연결 장치 확인 : adb devices
- 시리얼 번호, 상태로 구성
device | ADB 서버와 연결되어 있는 경우의 상태 표시 |
offline | ADB 서버와 연결되어 있지 않거나 응답이 없는(부팅 중) 경우의 상태 표시 |
2. 연결 명령어 입력: adb -s [장치명] shell
#출처
ADB:
https://developer.android.com/tools/adb?hl=ko
교재:
안드로이드 모바일 앱 모의해킹. 조정원 외 4인 지음.