2010년 HUST 대회 PROBLEM_L (안드로이드 관련) 풀이

2010년 HUST 대회에서 안드로이드에서 사용되는 APK 파일 관련 문제가 나와서 풀이를 작성합니다.
이 풀이를 통해 APK 파일을 분석하는 방법에 대해 간단하게 나마 적고자 합니다.

[분석 첫번째 방법 - apktool 이용]
1. android-apktool 툴이란게 있습니다. 해당 툴을 다운로드 합니다.
다운로드 : http://code.google.com/p/android-apktool/

2. 다운로드 받은 파일을 압축을 해제하면 apktool.bat 파일이 존재합니다. 아래와 같은 명령어를 통해 APK 파일을 풉니다.
apktool.bat d 파일명.apk

3. 이번 대회때 나왔던 파일을 풀면 Atom\smali\net\hust\atom\quizcross\Passwd.smali 파일이 존재합니다.
해당 파일을 열어 보면 28 라인에 "const-string v0, "just for fun." 이란 문자열이 있습니다.

답은 "just for fun." 입니다. 하지만 이 방법으론 답을 찾기가 쉽지가 않습니다.

[분석 두번째 방법 - dex2jar 이용]
1. 분석할 APK 파일을 7-zip을 이용하여 압축을 해제 합니다. 압축을 풀면 class.dex 파일을 확인하실 수 있습니다.

2. dex2jar 툴이란게 있습니다. 해당 툴을 다운로드 합니다.
다운로드 : http://code.google.com/p/dex2jar/

3. 다운로드 받은 툴을 보면 dex2jar.bat 파일이 있습니다. 아래 명령어로 위에서 풀었던 class.dex 파일을 jar로 변환합니다.
dex2jar.bat class.dex

4. 위와 같이 실행하게 되면 classes.dex.dex2jar.jar 파일이 생성됩니다. 생성된 jar 파일을 다시 7-zip을 이용하여 압축을 해제 합니다.

5. 압축을 해제하면 \net\hust\atom\quizcross\Passwd.class 파일이 존재합니다.

6. 자바 디컴파일러를 이용하여 해당 파일을 디컴파일 하여 확인합니다.
JD-GUI : http://java.decompiler.free.fr/

7. 아래 스크린샷과 같은 문자를 확인하실 수 있습니다.

사용자 삽입 이미지

이 방법이 첫번째 방법보다 좀 더 숙월하게 답을 찾을 수 있는 방법으로 보입니다.
실제 악성코드 앱 분석시에도 위와 유사하게 분석할 수 있을 것으로 보입니다.. 😀

답글 남기기

이메일 주소는 공개되지 않습니다.