인프런 - 강의/루팅탐지, 탐지우회, 방어방법

4 - 루팅 탐지 피하기(후킹과 프리다)

개복치 개발자 2019. 11. 27. 14:12

루팅 탐지를 피하는 방법에 대해서 몇 가지 알아보겠습니다.

 

정말 간단하게 생각하면, 루팅을 탐지하는 곳에서 루팅이 안됬다고 출력이 되면 됩니다.

 

 

이전 강의에서 위와 같은 경로에 "su"파일이 있나 탐지하는 코드가 있었죠?

 

이 탐지 코드를 피하려면, "su"라는 파일 명만 바꿔주면 끝 입니다....!

 

그러나, 이렇게 간단하게 되면 걱정이 없겠죠...?

 

이전 시간에 루팅 탐지 방법이 간단하게 2가지만 설명드렸는데, 폴더 권한 확인이나, 구글 플레이스토어에 런칭된 앱이 맞는지 릴리즈 키를 확인하는 방법도 있고, 이것저것 다양한 방법이 있습니다.

 

루팅 탐지를 아래와 같이 한다고 생각하면, 루팅에 탐지되면 시스템이 종료됩니다.

 

시스템 종료 부분을 가로채서, 계속 진행으로 바꿀 수 있습니다.

 

그 과정에서 프리다(FRIDA)를 사용합니다.

 

FRIDA 는 scriptable 한 DBI(Dynamic Binary Instrumentation) 프레임워크로 Android, IOS 모두 다 동작되며

JSInjection을 사용해서 후킹을 사용합니다.

 

뭔 소리인지 몰라도 보시면 압니다.

 

일단 pip install frida 를 해서 프리다를 설치하고

 

잘 설치되었나 확인해줍니다.

 

 

 

자, 그 다음 adb connection을 통해서 녹스 앱 플레이어랑 연결해주고

 

 

그 다음 애를 쳐서 x86 이라고 하면

 

 

여기 홈페이지로 가셔서

 

https://github.com/frida/frida/releases

 

frida/frida

Clone this repo to build Frida. Contribute to frida/frida development by creating an account on GitHub.

github.com

애를 다운 받아서 여기 adb 명령어를 통해 얘에 넣어줍니다.

 

adb push "프리다파일"  "넣을 경로"

 

프리다파일 - 다운받은 파일

넣을 경로 - /data/local/tmp 

 

에 넣으면 됩니다.

 

그 다음 쉘로 접속해서

 

파일을 실행시켜주고

 

 

자. 이러면 드디어 준비가 끝났습니다.

 

 frida-ps -U를 통해서 잘 되나 한번 확인해보고

 

저는 이거 블로그들에서 제대로 설명을 안해줘서 엄청 삽질했습니다....ㅜㅜ

"프리다(frida)를 이용한 안드로이드 앱 모의해킹" 이 책을 많이 참고했는데, 이거 좋네요

 

자, 그러면 시작해볼텐데

 

아래와 같은 코드를 봐 보겠습니다.

 

 

루팅 탐지를 해서, 루팅 탐지가 되면, System.exit(0)을 통해서 앱이 종료되는 코드를 보겠습니다.

 

저 같은 경우에는 이런 코드를 작성하면

 

 

앱이 꺼지지 않고

 

 

위와 같이 출력되는 것을 확인 할 수 있습니다.

 

그러면 이런 후킹을 방지하기 위해 다양한 방어법들을 알아보겠습니다.

 

 

-- 참고

 

[도서] - 프리다(frida)를 이용한 안드로이드 앱 모의해킹

https://hyunmini.tistory.com/94

JS Injection d

F

Fsdf