How to reverse Android App with IDA pro  

  RSS

(@zerobase1)
Member Admin
Joined: 3 years  ago
Posts: 18
04/09/2017 7:45 pm  

IDA Pro를 사용하여 안드로이드 계열의 스마트폰에서 실행되는 어플리케이션을 리버싱하고자 한다.안드로이드 개발은 전무하며 안드로이드 개발환경을 구축하고 테스트용으로 'hello, world!'을 출력해 본 경험이 전부이다.

먼저 개발자 친구 인터넷에서 안드로이드와 IDA를 키워드로 검색을 시작하고 검색 결과중에서 현재 단계에서 필요하다고 판단되는 내용을 시놀로지 note station에 마구잡이로 저장하였다.  

빠르게 구글 검색한 결과는 다음과 같다. 이 내용을 기반으로 한 후 필요항목 추가 검색할 계획이다.

-----------------------------------------------------------------------------------------------------------------------------

android 기기 IDA PRO를 이용해 원격디버깅 하기 » Apollo89.com

IDA PRO를 이용한 안드로이드 원격 디버깅 : 네이버 블로그

IDA를 이용한 안드로이드 동적 분석 : 네이버 블로그

IDA Pro를 이용한 안드로이드 단말기 원격 디버깅

Debugging Android Libraries using IDA

안드로이드 애플리케이션 리버스 엔지니어링 | 에이콘출판사

IDA Dalvik debugger: tips and tricks – Hex Blog

ARM Assembly 정리 - ARM 기본 개념 :: Hyunmini

ARM-Thumb 모드 컴파일 옵션 :: Hyunmini

IDA 원격 디버깅 (Attach, Run)

Debugging Android native shared libraries - blog.dornea.nu

----------------------------------------------------------------------------------------------------------------------------- 

 

저장된 내용을 기반으로 초기단계에서 필요한 작업을 나열하고 이 내용에 따라 안드로이드 앱을 IDA로 리버싱할 수 있는 시스템환경 구축을 시작할 것이다.

  • configure an remote debugging environment between android smartphone and IDA pro
  • create remote connection into android smartphone with IDA pro
  • set breakpoints at some function called by android app with IDA pro
  • log a parameter values passed into the function

 

configure an remote debugging environment between android smartphone and IDA pro

안드로이드 개발환경 구축을 위해 JaveSE8기반의 JDK와 Android Studio를 다운로드하여 설치한다. 

JDK installation

Android Studio installation 

위 두 항목 설치 후 Android Studio실행 후 AVD Manager를 사용하여 에뮬레이터기반으로 구성할 의도였다.

 

하지만 Intel x86 Atom 계열의 system image를 사용하려고 시도했지만 다음과 같은 BSOD를 벗어날 수 없었다.

IntelHaxm.sys에 문제가 종종 발생한다고 보고되었던 사실을 확인하고 최신버전으로 설치를 해도 결과는 동일했다. BSOD!!!

그래서 IntelHaxm을 사용하지 않는 ARM계열로 system image를 생성하고 에뮬레이터를 실행시켰다. BSOD는 통과하였다. 하지만 수초후에 에뮬레이터가 실행종료된다. 이 역시 해결책을 찾아봤지만 허사였다.

모바일 개발팀에 넌지시 물어봤더니 요즘은 에뮬레이터 거의 사용하지 않고 실제 장비를 사용하여 개발한단다.

여분의 galaxy note3가 있다. 이 장비를 사용하여 android studio에서 기본 프로젝트로 테스트해보자.

 

android studio실행해서 하단의 android monitor를 선택하니 장치가 하나 콤보박스목록에 존재한다. 아마도 이 항목이 galaxy note3아닐까? 어째든 unauthorized라는 문구가 달려있긴 하지만 제대로 찾아가나보다.

 

기본 생성한 프로젝트를 실행하니 정상적으로 동작하는데  원격지에 있는 synology nas에 붙여놓은 galaxy note에서 해당 앱을 설치 및 실행허가를 할 수 없는 상태라 아래와 같이 로그가 나타났다.

 09/06 11:12:05: Launching app

$ adb push C:\Users\vm2\AndroidStudioProjects\MyApplication\app\build\outputs\apk\app-debug.apk /data/local/tmp/com.example.vm2.myapplication

com.android.ddmlib.AdbCommandRejectedException: device unauthorized.

This adb server's $ADB_VENDOR_KEYS is not set

Try 'adb kill-server' if that seems wrong.

Otherwise check for a confirmation dialog on your device.

Error while Installing APK


ReplyQuote
Share: