
Magisk나 Frida Hooking을 통하여 훨씬 더 편하게 웬만한 앱들은 루팅탐지 우회가 가능하지만
스말리 코드 변조를 통한 루팅탐지 우회도 알아두면 탐지 원리를 파악하는데 많은 도움이 되고
무결성 검증을 진단할 때 가끔 활용할 때가 있다.
또 프리다 후킹이나 매지스크가 어떤식으로 동작하여 루팅이 우회되는지 정확하게 알 수 있다.
먼저 앱을 실행하면 아래 그림과같이 루팅 탐지를 함
apk 파일을 추출해
jadx에서 코드를 보게되면
이런식으로 루팅을 탐지하는 메소드들이 존재한다.
이 앱은 이렇게 여러개의 메소드로 다양한 방법을 동원해 루팅탐지를 하는데
루팅 시 변경되는 Build.prop파일의 test-key 확인
su, xbin, sbin, Superuser.apk 등등 루팅할 시 생기는 경로 및 파일 확인
루트 권한이 실행되는 지 등
다양한 방법으로 루팅탐지를 한다.
보통은 이러한 코드들 중에 한 부분이 있다면
그 부분의 smali 코드를 찾아 Return 값을 0x1 -> 0x0 또는 0x0 -> 0x1 로 바꿔주는 식으로
우회가 가능하다.
0x1 = true
0x0 = false
하지만 이 앱은 아랫단에
이런식으로 몇가지의 검사 중 하나라도 True값이 존재한다면 루팅을 탐지해 앱을 종료시키는 알고리즘으로 되어있다.
스말리 코드를 변경하는 방식은 ios에서 바이너리를 변조하는 방식보다 간단하다.
앱 디컴파일(Decompile) 후 smali 폴더에
jadx와같은 분석툴에서 루팅탐지 코드를 찾은 경로 그대로 따라 들어가주면 된다.
스말리 파일을 찾았다면 메모장이나 노트패드로 열어서 리턴값만 수정해주면된다.
const/4 v0 0x0 또는 0x1 의 리턴값을 수정한 다음
다시 컴파일 후 -> 서명 -> 설치하면 우회가 가능한것을 확인할 수 있다.
'모바일 > Android' 카테고리의 다른 글
[Android] 안드로이드 Frida Hooking을 통한 루팅탐지우회 (0) | 2022.05.10 |
---|---|
[Android] Smali 코드 분석 및 변조를 통한 루팅 탐지 우회 (심화) (2) | 2022.04.29 |
[Android] Magisk 다운그레이드 및 헬조선 Magisk 설치 (5) | 2022.04.20 |
[Android] 안드로이드 10 이상 , OneUi 3 이상 최신 단말기 Magisk 루팅 (26) | 2022.04.20 |