개발/안드로이드 rooting

후킹(hooking)

개복치 개발자 2019. 11. 13. 17:45

 

루팅 탐지를 우회하는 방법에 대해 알아봅니다.

 

프로그래머는 디바이스가 루팅되었나 알아보기 위해 다향한 탐지 방법을 적용해놓습니다.

 

ex) "su"탐지, 폴더권한 확인 등

 

그렇게 이 탐지하는 부분을 찾아서, 값을 가로채서 "이게 루팅된 기기가 아닙니다" 라고 메세지를 던져주면 루팅 우회가 가능합니다.

 

이 것을 후킹이라고 합니다.

 

그러면 루팅 탐지하는 부분부터 찾아야겠죠?

 

그럴러면 코드를 한번 까봐야 합니다.

 

디컴파일을 통해 코드를 깝니다.

(저는 맥이기 때문에 맥에서 까는 방법을 해봅니다.)

 

일단 2개를 다운받아 주는데

 

dex2jar - https://sourceforge.net/projects/dex2jar/

JD-GUI - http://java-decompiler.github.io/

 

dex2jar -> dex파일로부터 class파일 추출

GD-CUI -> class파일을 java파일로 추출

 

그리고, 이렇게 해서 

 

sh d2j-dex2jar.sh app-debug.apk

 

apk 파일이 있는 경로에서 위와 같이 치면

 

아래와 같이 Permission denied가 뜹니다.

자, 여기서 권한 변경해주고 또 가면 이렇게 자 됩니다.

 

이러면 아래와 같은 파일이 생성되는데

얘를  JD-GUI에 넣으면 아래와 같이 디컴파일이 됩니다.

 

 

그 다음 프리다를 이용해서, 루팅 탐지 클래스로 접근해 루팅 탐지 프로세스를 무력화시킵니다.

 

이러면 끝.

'개발 > 안드로이드 rooting' 카테고리의 다른 글

무결성검사  (0) 2019.11.14
코드 난독화  (0) 2019.11.13
폴더 권한 확인  (0) 2019.11.08
루팅 프로세스, 어플 탐지  (0) 2019.11.06
rooting su  (0) 2019.11.04