Study/App

[App]AndroGoat 루팅탐지(smali)

seomj 2022. 9. 14. 20:56

AndroGoat 설치

https://github.com/satishpatnayak/AndroGoat

해당 링크에서 androgoat.apk를 다운받아 녹스(Nox)에 설치해주면 된다.


변조 전 루팅 탐지

현재 녹스 자체에서 루팅을 켜 놓았다.

 

AndroGoat를 실행하여 ROOT DETECTION에 들어가 CHECK ROOT를 해보면 'Device is rooted'라고 뜬다.

제대로 잘 탐지되고 있다.

 

 

smali 변조

1. apk 파일을 디컴파일하자.

 

2. jadx를 사용하여 AndroidManifest.xml을 확인한다.

2번째 줄에서 package를 보면 "owasp.sat.agoat"라고 나와있으며

15번째 줄에서 "owasp.sat.agoat.RootDetectionActivity"을 찾을 수 있다.

 

3. RootDetectionActivity

그 중 'isRooted()' 함수를 찾을 수 있다.

루트인지 아닌지를 확인하는 함수이다.

file명이 나열되어 있고 이를 for문을 통해 하나씩 존재하는지(exists함수)를 확인하여 result에 저장하고 이를 반환한다.

즉, file이 존재하면 True를, 존재하지 않는다면 False를 반환한다.

False값을 반환하도록 해보자.

 

4. smali를 변조하기 위해 디컴파일한 폴더에 들어가 해당 파일을 찾는다.

 

파일에서 'isRooted()'를 찾아 맨 마지막 리턴전에 'const/4 v1, 0x0'을 추가한다.

반환값을 0으로 고정해주었다.

 

5. 컴파일을 하여 재설치를 진행한다.

 

 

결과