https://securitynote.tistory.com/13
ro.debuggable을 변경하면 앱 manifest.xml파일에 android:debuggable="true" 옵션이 없어도 동적 디버깅이 가능하다는 내용이다.
하지만... root explorer로 ro.debuggable을 변경한 후 설레는 맘으로 동적 디버깅을 시도했으나...
??
이상하게 ro.debuggable=1인데도 동적디버깅이 되지 않았다.
https://www.bodkin.ren/index.php/archives/533/
위 포스팅을 통해 해답을 찾았는데
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 |