IDA로 동적 분석을 하기위해서는 2가지 조건중 하나가 만족해야한다.

1. AndroidManifest.xml 파일의 android:debuggable=true 설정

2. 모바일 기기의 ro.debuggable=1로 설정

 

1. AndroidManifest.xml 파일의 android:debuggable="true" 설정

 

AndroidManifest.xml 파일의 application 태그에 android:debuggable="true"만 추가해주면 된다.

<application android:allowBackup="true" android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">

 

하지만 이 방법은 앱을 수정하고 리패키징한 후 동적 디버깅을 할 수 있기 때문에 번거롭다. 

또 앱 위변조 탐지가 포함된 앱이라면 해당 로직을 우회해야 앱의 수정이 가능하므로 2번 방법을 추천한다.

 

 

2. 모바일 기기의 ro.debuggable=1로 설정

 

https://github.com/wpvsyou/mprop/tree/master/armeabi-v7a

여기서 mprop 파일을 다운 받은 후 /data/local/tmp/ 경로에 옮긴다.

> adb push mprop /data/local/tmp/

 

그 다음 adb shell 접속하여 ro.debuggable 값을 확인한다.

> adb shell
# su -
# getprop | grep 'ro.debuggable'

ro.debuggable 확인

현재 값은 0이다. 1로 바꿔주어야한다.

mprop 파일을 실행하기 위해서는 실행 권한을 추가해주어야한다.

# chmod 755 mprop
# ./mprop ro.debuggable 1
# getprop | grep 'ro.debuggable'

ro.debuggable 변경

이제 AndroidManifest.xml 파일 수정 없이 동적 디버깅을 붙을 수 있다.

디바이스를 재실행하면 ro.debuggable 값이 다시 0으로 돌아오기 때문에 위의 과정을 다시 해주어야함.

'Android > Reversing' 카테고리의 다른 글

arm 기반 ELF 파일 만들기  (0) 2020.03.12
DEX 동적 분석(1) - IDA  (0) 2020.03.10
smali 코드 패치로 루팅 우회하기  (0) 2020.03.10
DEX 정적 분석(2) - JEB3  (0) 2020.03.10
DEX 정적 분석(1) - jadx  (0) 2020.03.10

WRITTEN BY
Bugday

,