Basilica android

sharku.egloos.com



안드로이드 위치정보 가져오기 (1) - dumpsys by sharku

미리 이야기 했어야 하는 부분인데
이것은 악의적은 목적이 아니다
분명한 것은 이런것들이 알려져서
많은 사람들이 보안에 대해 자각하고
쉽게 방어할 수 있는 방법들이 생겨나야 할 것이다
감춘다고 해결되는 것이 아니다!


1. 서론 및 설정

위치정보를 가져와볼게요
간단하게 여기서 필요한 조건들입니다

①루팅
이후에 exploit을 통해서 쉘을 따내서 루팅하는 코드를 공부하면서 뚫어보죠
여기서는 그냥 루팅된 상태 또는 루팅이 안되도 루트권한을 따내서 시작하셔도 됩니다
(루트권한 없이도 가능합니다)

②안드로이드 기기와 adb가 설치된 pc
연결해서 할거에요 ㅋ 설치법은 검색 ㄱㄱ

③파이썬 설치
2.7 버전을 쓸거구요. 쓰기 편하게 path 환경변수에 추가해놓는것 까지 해주세요 ㅋ


이제 시작합니다..

먼저 안드로이드를 파해쳐봅시다
연결을 하구요

adb shell

루트 권한을 따냅니다
저는 루팅했으니 슥삭슥삭
(설정에서 디버깅모드 - 루트권한 허용 설정까지 해야 가능합니다)
(추가 : 루트 권한이 없어도 실행 가능합니다)

su

2. dumpsys 이용

dumpsys라는 명령어에 대해서 간단히 설명하겠습니다
dumpsys 를 이용하면 여러가지 설정 환경들을 살펴볼 수 있습니다
물론 루트권한이 있어야 하구요

전체 서비스되는 내용들을 보려면
dumpsys |grep DUMP 라고 치면 됩니다(소문자로 하면 원하는 결과가 안나온다)

여기서는 dumpsys 명령어 중에서 location 부분만 사용할 건데
그래서 dumpsys location 이렇게만 하면됩니다

일단 파이썬으로 자동화를 하기 전에 먼저 빼내겠습니다
파일 저장은 /sdcard 폴더에 했습니다

dumpsys location > ex.txt

exit

adb pull /sdcard/ex.txt .

이렇게 빼내면 됩니다


3. 파이썬으로 파싱하기

빼낸 파일을 파싱하기 위한 파이선 코드입니다..

  1. import re
  2. import time
  3. import sys
  4.  
  5. def main(a):
  6.         f = open(a)
  7.         l = []
  8.         for line in f:
  9.                 l.append(line.strip())
  10.         d = []
  11.         i = 0
  12.         for i in l:
  13.                 c = re.findall('[0-9]{13}', i)
  14.                 if c:
  15.                         d.append(time.ctime(int(c[0])/1000))
  16.                 c = re.findall('mLongitude=([0-9]{0,3}.[0-9]{7})', i)
  17.                 if c:
  18.                         d.append(c)
  19.                 c = re.findall('mLatitude=([0-9]{0,3}.[0-9]{7})', i)
  20.                 if c:
  21.                         d.append(c)
  22.         print d
  23.  
  24. main(sys.argv[1])


실행 방법은 cmd 창에서 해당 ex.txt 파일이 있는 곳에서
(위 파이썬파일의 이름은 sample.py 입니다)
> python sample.py ex.txt

이렇게 하면 날짜 , 위도, 경도 순으로 추출이 됩니다
다음 차수에 구글 어스와 연동시켜보도록 하고 오늘은 여기까지^^


덧글

  • 몽몽이 2013/07/20 23:18 #

    매우 유익한 내용입니다. 전 안드로이드에서 파이썬을 쓸 수 있단 사실도 처음 알았네요.
  • sharku 2013/07/21 15:48 #

    정확히 말하면 아직 안드로이드에는 쓰지 않았습니다..
    txt 파일을 파싱한것 뿐이구요.. ㅎ
    다음번에 자동화시키면서 안드로이드에서도 파이선을 쓸까 생각중이긴 합니다...

    덧글 감사드립니다 ㅎ
  • 앞서나가는 얼음대마왕 2013/07/29 11:03 #

    글 잘보고있습니다!

    'exploit을 통해서 쉘을 따내서 루팅하는 코드' 도 기대해보겠습니다!
  • sharku 2013/07/29 14:17 #

    네 감사합니다 ㅎ
    근데 요즘 바빠져서 몇달걸릴듯하네요 ㅋ
  • 2014/02/11 00:48 # 삭제 비공개

    비공개 덧글입니다.
※ 로그인 사용자만 덧글을 남길 수 있습니다.