예전에 mprop 을 들어본 기억이 나서 해당 경로를 참고
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"값이 없어도 정상적으로 동적 디버깅이 가능함.
----------------------------------
아래 글은 린포럼에서 긁어옴
위의 내용에서 mprop 깃헙에 보게되면
https://github.com/wpvsyou/mprop?files=1
두개의 폴더가 있어요.
v7a
v8a
v7a는 32bit을
v8a는 64bit을 이야기해요.
그래서 IDA로 동적 디버깅 하실분들은 위의 내용 참고하시면 좋을 것 같아요.
좀더 v7a와 v8a의 내용은 아래에 링크 남겨드릴테니 봐주세요 :)
https://developer.android.com/ndk/guides/abis?hl=ko
'모바일' 카테고리의 다른 글
안드로이드 앱 리패키징을 통한 SSL-Pinning 우회법 (0) | 2020.08.08 |
---|---|
iOS 무결성 검증 건 (0) | 2020.08.07 |
ADB shell /data/data 추출 (0) | 2020.08.06 |
iOS 10.x.x 탈옥 (0) | 2020.08.04 |
Cydia Impactor 없이 IPA 파일 설치(Xcode 7.3 에러 우회) (0) | 2020.08.02 |