"getpid"를 통해 루팅 탐지하는 로직이 있음
- getpid ?
함수를 호출한 프로세스 ID 리턴
returns the process ID (PID) of the calling process. - getppid ?
함수를 호출한 부모 프로세스 ID 리턴
returns the process ID of the parent of the calling process.
실행되는 앱 프로세스 정보는 아래와 같음
만약, 해당 앱이 슈퍼 유저 권한을 부여 받을때 "[App Name]"에 슈퍼유저 권한이 허용됨" 문구를 확인할 수 있으며,
프로세스 정보를 다시 확인해 보면 "su" 프로세스가 생성됨
추측, "getpid"를 통한 로팅 탐지 방법
- "getpid" 함수 호출 하여 해당 앱 프로세스 리스트 출력
- 해당 프로세스 리스트에 "su" 프로세스 있는지 확인
2-1. 있다면 -> 프로세스 종료
2-2. 없다면 -> 다음단계 실행
자식 프로세스에 루팅 사용된 프로세스가 존재하지 않은 PID 값 리턴
Interceptor.attach(Module.findExportByName(null, 'getpid'), {
onEnter: function (args) {},
onLeave: function (retval) {
console.log('\tgetpid : ' + retval);
retval.replace(ptr('0x0'));
console.log('\tNew getpid : ' + retval);
}
})
'Technical Docs > Android' 카테고리의 다른 글
[분석] UnCrackable-Level1.apk - 2 (Secret String) (0) | 2022.06.28 |
---|---|
[분석] UnCrackable-Level1.apk - 1 (Rooted) (0) | 2022.06.28 |
[AVD] 환경구성 : 생성 및 환경변수 설정[AVD&ADB] / MAC & Windows (0) | 2022.06.21 |
내돈내산 전자책 PDF 로 바꿀 수 없을까? (0) | 2022.06.07 |
Smali 수정으로 logcat 남기기 (0) | 2022.06.02 |