안드로이드 해킹 (1)

2013년 9월 7일 토요일

안드로이드 해킹

대략적인 순서

  1. 소스수정 (apk자체 수정)

    1.0. apk -> class -> (java ->) 수정 -> apk

    1.1. apk 언팩및 apk, dex 분석

    1.2. class 추출후 디컴파일

    1.3. 수정된 java 컴파일후 apk 패킹

  2. 패킷 조작

    2.1. 내부에서 패킷수집/조작

    2.2. 외부서버(or PC) 구축후 서버에서 패킷수집/조작

  3. 메모리 수정

  4. 매크로 제작

    4.1. 외부에서 터치 이벤트

    4.2. 내부에서 터치 이벤트

    apihooking

PC프로그램과 비교

안드로이드는 기반이 리눅스이다보니 윈도우기반과 다른점이 많다. 프로그램을 수정하는 방법도 소스수정(바이너리패치)이 dll(so)주입보다 수월 할 것 같다. (사실 리눅스에서 so주입을 어떻게 하는지도 모른다.) 더우기 안드로이드는 프로그램이 자바이다보니 디컴파일및 분석이 쉽다.

패킷조작은 내부에서 분석/조작하긴 쉽진않아도 외부에서는 차이점이 없겠다. 메모리 수정은 권한만 있다면 충분히 가능할것이다. 외부 터치 이벤트 발생은 안드로이드 내부시스템을 좀 알아봐야겠지만 pc로 화면을 미러링해주는 솔루션이 있느걸로 보아 충분히 가능할 것 같다.