티스토리 뷰
1. 루팅(rooting)? - 안드로이드 기기의 최상위 권한인 root 권한을 얻음으로 해당 기기에 걸려있는 제약을 해제하는 행위 2. 루팅(rooting) 탐지? - 안드로이드 기기에서 루트 권한이 부여된 상태를 감지하는 것으로 대표적으로 아래 방법으로 루팅된 기기를 탐지 - su 명령어 탐지 - 프로세스 리스트 탐지 - 루팅 관련 어플 설치 여부 확인 (ex. Superuser, su 등) |
루팅 탐지 우회를 위한 다양한 방법 중 오늘은 Frida를 이용한 루팅 탐지 우회를 시도해보겠다.
(현재 frida, frida-server 환경을 구축이 되어있다는 전제)
테스트앱 설치 경로 : https://github.com/lpilorz/flutter-app (jailbreak-release.apk 설치)
1) 루팅 단말기에서 앱 실행 시 루팅 탐지
2) 앱 디패키징 이후 분석을 통해 루팅 탐지 로직 분석 (isRooted() 메서드 사용)
3) isRooted() 메서드 오버로드 스크립트 작성
console.log("Loading flutter_jailbreak_detection bypass..."); setImmediate(function() { Java.perform(function () { var root = Java.use("com.scottyab.rootbeer.RootBeer"); root.isRooted.overload().implementation = function() { console.log("isRooted() called, returning false"); return false; } }); }); |
출처: <https://hackmd.io/@runicpl/flutter-android>
4) 스크립트 실행
frida -U -f pl.runic.ip -l frida-flutter-root-bypass.js |
5) 루팅 탐지가 우회되며 앱 정상 실행
[범용적으로 사용 가능한 루팅 탐지 우회 스크립트]
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday