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'
현재 값은 0이다. 1로 바꿔주어야한다.
mprop 파일을 실행하기 위해서는 실행 권한을 추가해주어야한다.
# chmod 755 mprop
# ./mprop ro.debuggable 1
# getprop | grep '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
,