가장 궁금해 하고 배우고 싶어하던 모바일 해킹 부분이다.
드림핵에서 교육을 보려고 6만5백원이라는 거금(...)을 들여서 참고하여 보기도 하고, 인터넷에서 찾아가며 진행하기도 하였다.
가장 기초가 되는 루팅부터 시작할텐데 안드로이드 스튜디오에서 이미지를 올려서 하는 루팅은 너무 간단해서 그냥 가상머신에 ssh로 접속해서 성공! 이라는 느낌이 나를 너무 짜치게 했다.
그래서 집안 깊숙히 잠들어있던 공기계를 깨워 실전을 기반으로 할 생각이다.
공기계 기종은 Samsung Galaxy A7이다.
정확한 기기명은 SM-A710S이며 Android 7.0 버전을 사용하고있다.


루팅을 하기 전에 펌웨어를 교체해주어야 한다.
설정 -> 휴대전화 정보 -> 소프트웨어 정보 -> 빌드번호 를 연타하여 개발자 모드를 활성화 해준다.

개발자 모드를 활성화 하면 다음과 같이 개발자 옵션 메뉴가 생성이 된다.
개발자 옵션으로 들어가서

OEM 잠금해제를 활성화 해준다.
여기에서 OEM 잠금해제란 펌웨어를 설치할수 있도록 보안을 비활성화 하는 것이다.
그리고 USB 디버깅 모드를 활성화 해주는데 이또한 PC와 통신하기 위해 키는 개발자 모드라고 생각하면 된다.
해당 기능을 통해 adb로 안드로이드 쉘에 접근이 가능하다.
안드로이드 기기에 패키지를 설치하거나 셸에 접근하는 등 디버그와 관련된 기능이 필요할 때 사용하는 소프트웨어이다.
저자는 Android studio를 다운받을때 같이 adb가 설치되어서 간단하게 환경 변수 편집만 설명하겠다.
시스템 환경 변수 편집 -> 환경 변수(N) -> 시스템 변수의 Path 더블클릭 -> 새로만들기 ->C:\Users[사용자명]\AppData\Local\Android\Sdk\platform-tools -> 확인

이 후에 명령프롬프트에서 adb 명령어가 작동하는지 확인하면 된다.

공기계를 루팅하기 위해서 시행착오를 겪어야만 했다.
첫번째로 이용하였던 방법은 https://hmwoo.tistory.com/126 이 loopinger님의 블로그 포스트의 내용인데 https://samfw.com/ 에서 해당 기기의 순정 펌웨어를 다운받아 오딘 3.14.4로 설치하고 매지스크앱과 samfw에서 받은 압축파일 내의 AP 접두사를 가진 펌웨어를 폰의 내부 저장소에 옮긴 다음 폰에서 매지스크로 AP 접두사 펌웨어를 이용해 루팅 펌웨어를 만들고 만들어진 루팅 펌웨어를 오딘으로 폰에 다시 다운로드 하는 방법을 사용 하려 하였으나.........
순조롭게 진행되는 와중 마지막... 루팅 펌웨어를 오딘으로 다운받는 과정에서 멈추는것이다....
그래서 다시 찾아보았는데 이번에는 더 간단한 방법이 있던 것이다.
https://su0-0su.tistory.com/102 바로 수픽님의 블로그에 있는 포스트인데 https://autoroot.chainfire.eu/ 여기에서 자동으로 루팅을 가능하도록 해주는 펌웨어가 있다 카더라...
그래서 여기에 있는 SM-A710S 루팅 펌웨어 압축파일을 받으니 안에 오딘 실행파일도 같이 있었다.
바로 핸드폰을 다운로드 모드로 전환 (전원버튼 + 볼륨 Donw 버튼 + 홈 버튼) 하고, 오딘으로 펌웨어를 다운로드 하였다.

아주 매우 정상적으로 된 모습 ( 3시간 삽질이 2분만에 해결됐다...)

공기계 폰에서도 뭔가 굉장해 보이는 것이 스르륵 나타난다.
그리고 폰이 켜지는데 화면은 그냥 정상적이고 SuperSU 어플이 생성된 것을 확인할 수 있다.

그리고 PC로 돌아와서 adb devices 명령어를 입력해보면

다음과 같이 연결된 공기계가 뜨게 된다.
현재 문제를 해결하여 다음과 같이 device라 뜨지만 처음에는 unauthorized라 떠서 접속이 불가능한 상태였다.
이를 해결하기 위해 https://kinghy7.tistory.com/38 휘갈기갈기님의 블로그를 참고하여 해결하였다.
해결 방법은 adb kill-server 명령어를 입력하여 adb를 종료하여주고 PC와 연결된 폰의 USB의 연결을 해제하고, 폰에서 설정->개발자 옵션->USB 디버깅 권한 승인 취소 후에 C:\Users[현재사용자].android에 있는 adbkey와 adbkey.pub 파일을 삭제하여준다.
그 후에 PC와 폰을 다시 연결하여주고, adb devices 명령어를 다시 실행하면 정상적으로 출력이 된다.
루팅 펌웨어까지 설치된 공기계에 adb로 접속하여 루팅이 되었는지 확인하여본다.

adb shell로 접속한 후에 su 명령어를 실행하면 $에서 #로 바뀐것이 보이고 id명령어를 실행하였더니 uid가 root다!!
정상적으로 루팅에 성공하였다!!!
공기계로 하니까 뭔가 더 본격적으로 하는 느낌이 들기도 하고 그 기기에 맞는 펌웨어를 설치과정 또한 매우 신기하고 새로웠다.
중간에 시간이 오래걸리거나 안되는 부분을 다른 방법으로 간단하게 해결했을때는 조금 허무하긴 했지만 아무렴 어떤가 성공했을때의 쾌감은 그것을 몇천 아니 몇억배를 상회한다.
이 뒤에는 어떤 것을 공부할지는 아직 미정이지만 프리다에 대해 먼저 공부하지 않을까 싶다.