정보보안/Mobile Hacking & Security

adb 주요 명령어

ITtechRoy 2014. 9. 13. 02:33
728x90
반응형

Adb Android Debug Bridge의 약자로,  안드로이드 어플리케이션 등을 개발할 때 에뮬레이터 혹은 실제 안드로이드 핸드폰과 여러가지 작업 인터페이스를 진행하게 되는데, 이렇게 안드로이드 관련 장치들을 조작할 수 있는 다리 역할을 하는 것이 adb 툴이다.

 

 

 

Adb 명령어 옵션은 아래와 같다.

 

그림 21. Adb option ( 1 )

 

그림 22. Adb option ( 2 )

 

 

 

Adb가 현재 인식하고 있는 에뮬레이터 혹은 휴대폰의 목록을 보여준다 연결된 디바이스의 TCP/IP 포트번호를 알아낼 때도 유용하며 adb명령어를 수행하기전에 adb devices 명령어를 실행하여 연결여부를 체크하는 것이 필요하다. ( Genymotion 의 경우 IP 주소로 나타난다. )

그림 23. Adb devices

 

그림 24. Adb devices ( genymotion )

 

 

 

 

Adb install ( -r ) ( -l ) ( 파일명 ) .apk 명령어를 이용하여 어플리케이션을 설치할 때 사용한다.     –r 옵션은 이미 존재하는 어플리케이션 데이터를 지우지 않고 재설치를 하며 –l 옵션은 다른 장치로 복사되어 넘어가는 것을 막는 옵션이다.

 

그림 25. Adb install

 

 

 

( -r ) ( -l ) 옵션을 이용해 이미 존재하는 어플리케이션 데이터를 지우지않으며 다른장치로 복사되어 넘어가는 것을 막는 옵션 명령어를 실행해보았다. 기존에 설치된 어플리케이션에는 지장을 주지 않는 것을 확인하였다.

그림 26. Adb install 옵션

 

 

 

 

Adb uninstall ( -k ) ( 패키지명 ) 명령어를 이용해 어플리케이션을 삭제할 때 사용한다. Apk 파일 이름이 아닌 패키지 이름을 넣어야 하는 특징이 있다. ( -k ) 옵션을 붙일 경우 어플리케이션의 데이터를 보존 시키게 된다.

 

그림 27. ddms 모니터링

 

 

 

그림 2-4. 에서 확인한 패키지명을 이용해 apk 파일을 삭제해야한다. Adb uninstall com.nsw.wallpaper.IU.apk 명령어를 이용해 삭제 완료하였다.

 

그림 28. Adb uninstall

 

 

 

 

 

스마트폰을 재부팅 시킨다.

 

 

그림 29. Adb reboot

 

 

 

Adb를 종료시킨다. 주로 adb에 문제가 생겨서 Target device가 오프라인으로 뜨거나 에러가 발생할 때 사용한다.

 

그림 210. Adb kill-server

 

 

 

 

종료된 adb 를 실행시킬 때 사용한다.

그림 211. Adb start-server

 

 

 

 

 

 

Adb pull ( Target device의 파일위치 ) ( 파일 이름 ) 을 이용하여 Target device의 파일 위치에 있는 파일을 현재 컴퓨터의 파일이름으로 복사하는 명령어이다.

Ex) /data/app/aa.apk 파일을 c:\aa.apk 로 가져오려고 할 경우 Adb pull /data/app/aa.apk aa.apk 로 사용한다. 그림 2-12. 를 보면 packages.xml 파일이 옮겨진 것을 확인할 수 있다

그림 212. Adb pull

 

 

 

2.7. adb pull과는 반대로 Target device의 파일 위치에 있는 파일을 현재 컴퓨터의 파일이름으로 거꾸로 복사하는 명령어이다. 아래 그림을 보면 c:\Android\Analysis\ssong.txt 파일이 /data/app/ 폴더 안으로 들어가 있는 것을 확인할 수 있다.

 

그림 213. Adb push

 

 

 

 

다양한 명령어를 수행할 수 있는 # 프롬프트를 사용할 때 활용하는 명령어이다. 여러 개의 디바이스 중 하나에 접속할 때에는 adb –s ( 연결할 디바이스명 ) shell 을 이용해 실행시킨다.

 

그림 214. Adb shell

 

그림 215. Adb shell ( 여러 개의 디바이스 )

 

 

 

 

 

 

Adb chmod ( 퍼미션번호 ex)4755 ) ( 경로 ) 를이용해 퍼미션을 부여할 수 있으며 adb shell rm ( 경로 ) 명령어를 이용해 파일삭제 등의 기능을 수행할 수 있다. 아래 표는 shell 명령어를 정리한 내용이다. 

명령어

설명

Cat /proc/version

커널 버전

Cat /proc/cpuinfo

프로세서정보, CPU type, 모델 제조사 등

Cat /proc/meminfo

메모리 정보, 실제 메모리 및 가상 메모리

Cat /proc/devices

현재 커널에 설정되어 있는 장치 목록

Mount

마운트된 모든 장치 정보

Df

하드디스크 사용량

Cat /proc/filesystems

커널에 설정되어 있는 파일 시스템 목록

Cat /proc/swaps

스왑파티션의 크기와 사용량

Cat /proc/interrupts

장치가 사용중인 인터럽트 목록 표시

Cat /proc/ioports

현재 사용중인 input/output 포트

Cat /proc/partitions

파티션 정보

Cat /proc/uptime

시스템이 살아있는 시간

Cat /proc/stat

시스템 상태에 관한 정보, CPU사용통계, 부팅이후 page fault 발생 횟수 등

Cat /proc/zoneinfo

Zoneinfo

Dmesg

시스템 부팅 시 나왔던 메시지

Ps

실행중인 프로세스 정보

Ps –p –t

프로세스와 쓰레드 목록

Set or printenv

환경설정값 출력

 

  

 

Adb logcat 명령어를 이용해 로그기록을 확인할 수 있다. 그림 2-16 과 그림 2-17 의 붉은 표시 안의 내용은 동일하다.

 

그림 216. Gdb logcat

 

그림 217. Dalvik Debug Monitor 로그

 

 

 

옵션

설명

-c

현재 저장된 로그들을 모두 삭제

-d

저장된 로그를 화면에 출력하고 종료

-f <파일명>

파일에 로그정보를 저장

-g

로그버퍼의 크기를 출력한 후 종료

-b <버퍼명>

Main(기본) / radio / event 버퍼중 선택

-s

Silent를 기본 우선순위로 지정 (-s 대신 *:S 도 가능 )

-v

원하는 형식으로 출력을 원할 시 사용

[형식] è brief : 우선순위/태그 + PID

         Process : PID

         Tag : 우선순위 / 태그만

         Thread : 프로세스:쓰레드 + 우선순위/태그

         Raw : 다른 데이터 없이 로그만 출력

         Time : 날짜 + 시간 + 우선순위/태그 + PID

         Long : 모든데이터를 출력하고 빈줄로 로그들을 구분

 

 맛집 해킹 hacking web 웹 네트워크 network 학원 해커 크래커 hacker cracker 강아지 dog 고양이 해운대 강남 서면 보쌈 치맥 치킨 맥주 육회 회 포렌식 침해대응 cert 관제 모의해킹 mobile 모바일 무선 wireless 디지털포렌식 Clanguage C언어 C# JSP JAVA tool 해킹방어대회 ctf 문제풀이 기타 맛집 해킹 hacking web 웹 네트워크 network 학원 해커 크래커 hacker cracker 강아지 dog 고양이 해운대 강남 서면 보쌈 치맥 치킨 맥주 육회 회 포렌식 침해대응 cert 관제 모의해킹 mobile 모바일 무선 wireless 디지털포렌식 Clanguage C언어 C# JSP JAVA tool 해킹방어대회 ctf 문제풀이 기타

 

728x90
반응형