# Prob 4
< Prob 4 >
4번 문제는 안드로이드 문제이다. 파일이 하나 주어지는데 avd 파일이다.
avd는 Android Virtual Device로 PC에서 구동이 가능한 안드로이드 가상 머신이다.
# 문제 파일?
< 문제 avd & 일반 avd >
위 사진은 avd의 압축을 풀었을 때 나오는 파일 목록이다. sd카드는 없다고 치면 파일상의 문제는 없다.
하지만 avd가 가상 디바이스 목록에 추가되지 않는데 그 이유는 이 avd의 셋팅값이 저장되어 있는 ini 파일이 존재하지 않기 때문이다.
# avd 디렉토리 구조?
< avd 디렉토리 구성 >
avd가 저장되는 디렉토리 구성은 위와 같다. C:\Users\계정명\.android\avd에 존재하며 avd폴더 안에는 각 avd의 이름.ini파일이 존재하며 이 파일이 존재하지 않으면 위에서 처럼 가상 디바이스 목록에 추가되지 않는다.
# .ini 만들기
< .ini files >
avd압축을 풀었을 때 나온 파일 목록 중에 기본 설정 .ini파일을 만들기 위해 보아야 할 파일들이다.
보면 config.ini파일과 hardware-qemu.ini파일에서 ~platforms\android-10이 자주 보이는 것을 알 수 있을 것이다.
이는 문제의 avd의 대상 안드로이드 버전이 android-10이라는 의미이다.
더 알아낼 수 있는 정보는 avd의 본래 이름은 whatthefxxx였다는 것과 기타 사양정보 등이다.
하나씩 위 데이터를 따져가며 기본 설정.ini파일을 만들 수 있지만 더 쉬운 방법이 있다.
android-10을 대상으로 하는 avd를 하나 만들어 설정 파일들은 그대로 둔 채 데이터만 바꾸면 된다.
# avd 만들기
< Create AVD - Select Hardware >
AVD Manager에서 Create AVD를 선택하면 위처럼 나온다. 여기서 다양한 대상을 선택할 수 있는데 지금 만들고자 하는 AVD는 문제 파일의 대상과 동일한 AVD이다. 위에서 config.ini을 보면 skin.path에 QVGA를 확인할 수 있을 것이다. 가로 세로 길이와 스킨 정보가 맞아 떨어지는 2.7" QVGA AVD를 선택한다.
< Create AVD - System Image >
이제 크기와 스킨모델을 정하였으니 대상 소프트웨어를 정해야 한다. 우리가 필요한 것은 android-10을 대상으로 하는 AVD이다. android-10이란 API Level이 10이라는 것을 의미한다. 만약 목록에 존재하지 않는다면 SDK Manager를 통해 설치해야 한다.
< AVD에서 바꿀 파일 목록 >
이렇게 생성을 하면 C:\Users\계정명\.android\avd에 새로운 avd가 생겼을 것이다. 이제 여기서 설정파일은 그대로 두고 위처럼 데이터만 바꿔 주면 다른 설정값은 이미 셋팅이 되어 있으므로 AVD를 실행시킬 수 있다.
# AVD 실행..?
< AVD 실행 >
실행화면을 보면 바탕화면에 key값이 있는 듯 한데 패턴으로 암호가 걸려 있다. 문제에도, 다른파일 어디에도 패턴에 관한 힌트는 없었다. 답을 얻기 위해서는 패턴암호를 풀어야 하기 때문에 패턴 암호를 뚫어야 한다.
# AVD Pattern Crack
AVD를 실행하면 이미 ADB(Android Debugging Bridge)에 연결이 되어 있다. 해서 ADB를 이용하여 패턴암호를 뚫어주면 된다.
< Pattern Crack >
아래 ref 링크를 참조하여 패턴암호를 풀면 된다. 패턴암호는 /data/system/gesture.key에 저장되어 있다.
이 gesture.key 파일을 다운받고 디코딩 소스를 이용해 풀면 된다. -g 옵션에는 패턴을 풀 패턴이 저장된 gesture.key 파일을 넣어주고 -d 옵션에는 패턴정보가 저장되어 있는 데이터테이블을 넣어주면 된다.
그렇게 풀어주면 위처럼 각 위치의 숫자번호로 패턴암호를 얻어낼 수 있다.
< 패턴 해제된 화면 >
XCZ.kr Answer : U5i_ng_ad_b_is_v2ry_e5sy
ref
http://niiconsulting.com/checkmate/2014/04/how-to-bypass-the-android-phone-pattern-lock/
'old' 카테고리의 다른 글
Slack 영역 (0) | 2016.07.22 |
---|---|
Hack-me / Secret Garden (목록 검색을 이용한 blindsqlinjection) (0) | 2016.07.22 |
Hack-me / Obfuscated PHP from steve (php 난독화 풀기) (0) | 2016.07.22 |
Hack-me / Steganography without key (이미지 LSB 스테가노) (0) | 2016.07.22 |
Hack-me / No boundaries (MP3Stego) (0) | 2016.07.22 |