경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
편집을 취소할 수 있습니다.
이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
| [[분류:안드로이드]][[분류:보안]]
| |
| 리눅스 기반 OS인 안드로이드 운영체제에서 루트(root) 권한을 획득하는 행위 | | 리눅스 기반 OS인 안드로이드 운영체제에서 루트(root) 권한을 획득하는 행위 |
|
| |
|
12번째 줄: |
11번째 줄: |
|
| |
|
| == 루팅 확인 == | | == 루팅 확인 == |
| ;* su파일 존재여부 확인
| | * su파일 존재여부 확인 |
| <syntaxhighlight lang="java" line='line'>
| | * 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" };
| | * SuperSU 어플리케이션 확인 |
| private boolean checkRootingFiles(File... paramVarArgs)
| | * 루트 권한을 요구하는 어플리케이션 확인 |
| {
| |
| int j = paramVarArgs.length;
| |
| int i = 0;
| |
| for (;;)
| |
| {
| |
| 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) {
| |
| ...
| |
| this.isRootingFlag = true;
| |
| if (!this.isRootingFlag) {
| |
| this.isRootingFlag = checkRootingFiles(createFiles(this.RootFilesPath));
| |
| }
| |
| Log.d("test", "isRootingFlag = " + this.isRootingFlag);
| |
| ...
| |
| }
| |
| </syntaxhighlight >
| |
| ;* su명령어 실행 확인
| |
| <syntaxhighlight lang="java">
| |
| Runtime.getRuntime().exec("su");
| |
| </syntaxhighlight >
| |
| ;* SuperSU 어플리케이션 확인
| |
| ;* 루트 권한을 요구하는 어플리케이션 확인
| |
| ** 이미 알려진 유명 어플리케이션들을 리스팅 해 두고 설치 되어 있는지 확인 | | ** 이미 알려진 유명 어플리케이션들을 리스팅 해 두고 설치 되어 있는지 확인 |
| ;* Build.Tag 확인
| | * Build.Tag 확인 |
| ** 시스템 이미지가 커스트마이징된 이미지인지 확인 | | ** 시스템 이미지가 커스트마이징된 이미지인지 확인 |
| <syntaxhighlight lang="java">
| |
| if (Build.TAGS.equals("test-keys")) {
| |
| this.ec = true;
| |
| }
| |
| </syntaxhighlight >
| |
|
| |
|
| === 루팅 탐지 우회 === | | === 루팅 탐지 우회 === |
66번째 줄: |
23번째 줄: |
| ** SuperSU를 리패키징하여 SuperSU와 SU의 특징을 숨김 | | ** SuperSU를 리패키징하여 SuperSU와 SU의 특징을 숨김 |
| *Xposed RootCloak | | *Xposed RootCloak |
| ** [[Xposed]]의 기능 사용 | | ** Xposed의 기능 사용 |
| ** 루팅 탐지에 대한 후킹을 수행하여 루팅을 숨김 | | ** 루팅 탐지에 대한 후킹을 수행하여 루팅을 숨김 |