728x90
반응형
#2 취약점 진단 및 분석 도구
- 1장에서 구축한 환경을 기반으로 앞으로 진단하는 데 많이 사용되는 도구와 기본 명령어를 다룬다.
- Android debug bridge, Drozer 등은 4장에서 상세 진단 시 사용한다.
- 명령어의 결과와 쓰임에 익숙해져야만 진단 실습을 하는 데 어려움이 없다.
ADB 살펴보기
- ADB : 안드로이드 에뮬레이터나 PC에 실제 연결된 장치를 제어하기 위한 안드로이드 디버깅 도구 중 하나
- ADB는 안드로이드 SDK에 포함되어 있으므로 추가 설치 없이 SDK 설치만으로 사용이 가능하다.
안드로이드 스튜디오(안드로이드 통합 개발환경)와 ADB
- 안드로이드 통합 개발환경 : 기능을 GUI 형태로 제공함
- ADB : 명령 라인을 통해 사용자가 입력함으로써 안드로이드 기기와 통신하도록 함
- ADB 실행 파일 위치
- ⇒ C:\Users\사용자명\AppData\Local\Android\Sdk\platform-tools
- ADB 3요소요소 설명
클라이언트 안드로이드 개발 시스템에서 실행된다. 사용자는 ADB 명령을 입력한 후 쉘에서 클라이언트를 호출한다. 서버 안드로이드 개발 시스템에서의 백그라운드 프로세서이다. 동작하는 요소인 서버는 클라이언트, 에뮬레이터, 장치에서 구동되는 ADB 데몬 사이의 통신을 관리한다. 데몬 에뮬레이터나 장치에서 백그라운드 프로세서로 동작하는 인스턴스이다.
- ADB 클라이언트가 시작되면 가장 먼저 ADB 서버 프로세서가 실행 중인지를 점검한다.
- 만약 ( 서버 프로세스 실행상태X → 서버 프로세스 구동 )
- 서버가 구동되며 TCP 5037 포트에 Bind
- 모든 클라이언트는 5037 포트를 통해 ADB 서버와 통신
- 아래 사진은 ADB 실행 시 서버가 구동되지 않을 때 출력된다.
- 안드로이드 장치를 USB를 통해 연결하고자 할 경우 장치 시스템 설정에서 USB 디버깅 옵션을 활성화해야 한다.
- 설정 - 개발자 옵션 (설정 - 휴대전화 정보 - 빌드 번호 연타로 열 수 있음)
디바이스 장치 확인 & 장치 선택
- 연결 장치가 1대인 경우는 상관 없지만, 연결 장치가 여러 장치인 경우에는 ADB 명령 대상 장치를 선택해야 한다.
- C:\> adb devices : 해당 명령어로 연결 장치 확인이 가능하다.
- ‘시리얼 번호, 상태’로 출력된다.
- USB 장치가 연결된 경우 ADB 사용
- → C:\> adb -d [장치명]
- 하나의 에뮬레이터가 연결된 경우→ C:\> adb -e [장치명]
- → C:\> adb devices
- 2개의 에뮬레이터가 연결된 경우→ C:\> adb -s emulator-5554 [장치명]
- → C:\> adb devices
디버그 기능
- ADB는 연결된 안드로이드 장치에 대한 디버깅을 위해 명령어를 포함한다. (ex. logcat, bugreport, jdwp)
logcat을 이용한 로그 분석
- 안드로이드 장치에서 발생하는 로그 메시지를 화면으로 출력하거나 파일 형태로 저장하는 기능
- 안드로이드 로깅 시스템은 시스템 디버그 출력 정보를 확인하거나 수집할 수 있는 메커니즘을 제공한다.
- ⇒ 수집된 정보들은 각종 애플리케이션과 시스템에서 수집하는 정보
- logcat을 실행 후 종료하지 않으면 추가 생성 로그 메시지가 실시간으로 출력됨
사용 명령어 : adb logcat [option] ... [filter-spec]
- adb logcat
- adb shell → logcat
- ⇒ 두 방법 결과는 동일함
로그에 대한 기본 구성
- 안드로이드 발생 로그는 태그보다 우선순위를 갖는다.
- 태그 : 시스템 구성 요소를 나타내는 짧은 문자열
- ex) D/dalvikvm 의 로그는 dalvikwm에서 발생한 로그 메시지이다.
- 우선순위는 그 앞의 D 같이 가장 앞에 1개의 문자로 표시된다.
- V- Verbose(가장 일반적인 수준)
- D - Debug
- I - Info
- W - Warning
- E - Error
- F - Fatal
- S - Silent(가장 높은 우선순위)
- 우선순위는 그 앞의 D 같이 가장 앞에 1개의 문자로 표시된다.
logcat 옵션
- adb logcat -v brief : 자주 사용함
- 로그메시지 필터링 *filter expressions (tag:priority)
- ⇒ ex) adb logcat ActivityManager:I art:I *:S
bugreport를 이용한 버그 보고서 확인
- bugreport 명령은 dumpsys, dumpstate 및 logcat 명령의 결과를 한 번에 출력한다.
728x90
반응형