일반적으로 release 앱 권한에서는 fork & open /proc/child_pid/maps 시 권한이 없어서 "No such file or directory" 에러가 발생한다.
이를 해결하기 위해 아래와 같이 코딩한다.
prctl(PR_SET_DUMPABLE, 1, 0, 0, 0); // enable
.. fork() 수행
.. open("/proc/child_pid/maps", ) 수행
.. ptrace() 수행
prctl(PR_SET_DUMPABLE, 0, 0, 0, 0); // disable
https://android.googlesource.com/platform/frameworks/base/+/master/core/jni/com_android_internal_os_Zygote.cpp 의 EnableDebugger()를 참조하였음
또한, EnableDebugger()을 앱에 인젝션 하면 앱 디버깅 시 manifest를 수정하지 않아도 될 것 같다. (참고 : https://codetronik.tistory.com/165?category=1096665)
'Android Linux' 카테고리의 다른 글
[arm] 정적 분석 방해 테스트 (0) | 2023.05.22 |
---|---|
jni(arm64-v8a) NOX 개발 환경 구축하기 (1) | 2021.02.05 |
gdb 7.11 (arm 32bit) (0) | 2020.10.15 |
안드로이드 후킹, 메모리 변조 : 코드 후킹과 재배치(relocation) (0) | 2018.07.23 |
classes.dex memory dump (0) | 2018.07.19 |