https://securitynote.tistory.com/13
[Android] DirtyCow(더티카우) 취약점 (CVE-2016-5195)
DirtyC0w(더티카우) 취약점 (CVE-2016-5195) 개요 1) DirtyC0w (더티카우) 취약점이란? : 2016년 10월 CVE-2016-5195 취약점 : 루트 권한으로도 변경할 수 없었던 default.prop 파일을 익스플로잇을 통해 수정 가..
securitynote.tistory.com
ro.debuggable을 변경하면 앱 manifest.xml파일에 android:debuggable="true" 옵션이 없어도 동적 디버깅이 가능하다는 내용이다.
하지만... root explorer로 ro.debuggable을 변경한 후 설레는 맘으로 동적 디버깅을 시도했으나...
??
이상하게 ro.debuggable=1인데도 동적디버깅이 되지 않았다.
https://www.bodkin.ren/index.php/archives/533/
Android 「动态分析」打开调试开关的三种方法 - SewellDinG @ 老 锥
应用的动态调试是Android逆向的大类,而打开可调试开关则是动态调试的第一步,总结一下打开开关的三种方法; AndroidManifest.xml 最常规的方法,拿到一个应用后,直接反编译,在AndroidManifest.xml的application中添加android:debuggable="true"字段,在回编译、签名、安装、然后进行动态调试; mprop 修改系统调试的总开关字段,由于系统文件只可读,强制修改重新编译镜像再刷入设备又很复杂还不安全,这里可以注入init进程,修改内存中的ro.d
www.bodkin.ren
위 포스팅을 통해 해답을 찾았는데
default.prop의 값을 변경해도 메모리에 올라와있는 속성 값은 그대로 0 이기 때문에 동적 디버깅이 되지 않는다.
위 블로그에서 mprop라는 파일을 다운받아, 실행하면 ro.debuggable값이 1로 패치 된다.
Usage
./mprop ro.debuggable 1
어떤 원리인지 궁금해서 살펴본 결과, /proc/1/maps의 /dev/__properties__안의 값을 변경하고 있다.
실제 단말기에서 확인한 결과, /init 프로세스의 /dev/__properties__의 메모리 주소를 확인한 후 인자로 받은 변경하고자 하는 속성값을 검색 후 값을 변경하는 것으로 보인다.
해당 메모리 주소의 값을 살펴보니 인자로 넣어 준 debuggable의 값이 들어있고 정상적으로 0x31(1)로 값이 변경된 것을 확인할 수 있었다.
이 후, manifest.xml 파일에 android:debuggable="true"값이 없어도 정상적으로 동적 디버깅이 가능함.
갓 중국...
'Mobile' 카테고리의 다른 글
Dynamic Code Loading in Android (feat.DexClassloader) (3) | 2020.05.08 |
---|---|
odex to dex (0) | 2020.05.08 |
IDA DEX,SO 동적디버깅 (0) | 2019.09.23 |
DVIA (Binary Patching) (0) | 2019.09.03 |
Cydia Impactor 에러 모음 (1) | 2019.09.03 |