안드로이드 루팅 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
리눅스 기반 OS인 안드로이드 운영체제에서 루트(root) 권한을 획득하는 행위 | 리눅스 기반 OS인 안드로이드 운영체제에서 루트(root) 권한을 획득하는 행위 | ||
12번째 줄: | 11번째 줄: | ||
== 루팅 확인 == | == 루팅 확인 == | ||
* su파일 존재여부 확인\ | |||
* 예시 | |||
<syntaxhighlight lang="java" line='line'> | <syntaxhighlight lang="java" line='line'> | ||
public String[] RootFilesPath = { ROOT_PATH + "/system/bin/su", ROOT_PATH + "/system/xbin/su", ROOT_PATH + "/system/app/SuperUser.apk", ROOT_PATH + "/data/data/com.noshufou.android.su" }; | public String[] RootFilesPath = { ROOT_PATH + "/system/bin/su", ROOT_PATH + "/system/xbin/su", ROOT_PATH + "/system/app/SuperUser.apk", ROOT_PATH + "/data/data/com.noshufou.android.su" }; | ||
private boolean checkRootingFiles(File... paramVarArgs) | private boolean checkRootingFiles(File... paramVarArgs) | ||
{ | { | ||
int j = paramVarArgs.length; | |||
int i = 0; | |||
for (;;) | |||
{ | { | ||
File localFile = paramVarArgs[i]; | boolean bool = false; | ||
if (i < j) | |||
{ | |||
File localFile = paramVarArgs[i]; | |||
if ((localFile != null) && (localFile.exists()) && (localFile.isFile())) { | |||
bool = true; | |||
} | |||
} | } | ||
else | |||
{ | |||
return bool; | |||
} | |||
i += 1; | |||
} | } | ||
} | } | ||
protected void onCreate(Bundle paramBundle) { | protected void onCreate(Bundle paramBundle) | ||
{ | |||
... | |||
this.isRootingFlag = true; | |||
if (!this.isRootingFlag) { | |||
this.isRootingFlag = checkRootingFiles(createFiles(this.RootFilesPath)); | |||
} | |||
Log.d("test", "isRootingFlag = " + this.isRootingFlag); | |||
... | |||
} | } | ||
</ | </pre> | ||
* su명령어 실행 확인 | |||
* SuperSU 어플리케이션 확인 | |||
* 루트 권한을 요구하는 어플리케이션 확인 | |||
** 이미 알려진 유명 어플리케이션들을 리스팅 해 두고 설치 되어 있는지 확인 | ** 이미 알려진 유명 어플리케이션들을 리스팅 해 두고 설치 되어 있는지 확인 | ||
* Build.Tag 확인 | |||
** 시스템 이미지가 커스트마이징된 이미지인지 확인 | ** 시스템 이미지가 커스트마이징된 이미지인지 확인 | ||
=== 루팅 탐지 우회 === | === 루팅 탐지 우회 === | ||
66번째 줄: | 59번째 줄: | ||
** SuperSU를 리패키징하여 SuperSU와 SU의 특징을 숨김 | ** SuperSU를 리패키징하여 SuperSU와 SU의 특징을 숨김 | ||
*Xposed RootCloak | *Xposed RootCloak | ||
** | ** Xposed의 기능 사용 | ||
** 루팅 탐지에 대한 후킹을 수행하여 루팅을 숨김 | ** 루팅 탐지에 대한 후킹을 수행하여 루팅을 숨김 |