초반 내용은 이전 글과 동일하다.
https://lyk00331.tistory.com/93
위 게시물을 참고하여 2번까지 진행한 후, 이번 글은 Frida와 관련된 내용으로 3번부터 작성했다.
3. frida 서버 실행
adb shell에 접속한 후, 안드로이드 기기에 설치해둔 frida server를 실행한다. (이때 frida가 PC와 모바일에 동일 버전으로 설치되어있어야 한다.)
4. frida script 작성
//root_detect.js
console.log("Script loaded successfully");
Java.perform(function x() {
console.log("Inside java perform function");
var my_class = Java.use(
"owasp.sat.agoat.RootDetectionActivity");
my_class.isRooted.implementation = function (args) {
console.log("\n0*********************************")
return false;
};
})
위 스크립트는 루팅을 탐지하는 영역에 접속한 후, return 값을 false로 반환하면서 루팅 탐지가 되지 않았다며 후킹해주는 코드다.
5. frida script 실행
PC에 frida가 설치되어있는 경로에서 다음과 같이 frida를 통해 방금 작성한 스크립트를 실행한다.
6. 실행 결과
그럼 위와 같이 "Device is not rooted" 라는 문구가 뜨며 루팅 탐지가 되지 않았다는 것을 확인할 수 있다.
7. 번외
4번에서 작성한 script의 내용 중 return 값을 false가 아닌, true로 바꾼 후 후킹을 진행하면 다시 루팅이 탐지된다.
//root_detect.js
console.log("Script loaded successfully");
Java.perform(function x() {
console.log("Inside java perform function");
var my_class = Java.use(
"owasp.sat.agoat.RootDetectionActivity");
my_class.isRooted.implementation = function (args) {
console.log("\n0*********************************")
return ture;
};
})
'App > AndroGoat' 카테고리의 다른 글
AndroGoat.apk | 바이너리 패치 (smali) (1) | 2021.09.20 |
---|---|
AndroGoat.apk | 에뮬레이터 탐지 (Frida) (0) | 2021.09.20 |
AndroGoat.apk | 에뮬레이터 탐지 (smali) (2) | 2021.09.20 |
AndroGoat.apk | SSL 피닝 (Frida) (0) | 2021.09.20 |
AndroGoat.apk | 루팅 탐지 (smali) (0) | 2021.09.17 |
댓글