사용 Tools
JAD : http://varaneckas.com/jad/
Eclipse : http://www.eclipse.org/home/index.php
AVD : http://developer.android.com/sdk/download.html?v=android-sdk_r05-windows.zip
NetBeans : https://netbeans.org/
Apk-sign :
Jd-gui : http://jd.benow.ca/
apktool : http://ibotpeaches.github.io/Apktool/
파일을 다운로드 후 GPG를 이용하여 암호화 해제
(gpg --decrypt-file 파일이름)
파일을 확인해 보면 apk파일인 것을 확인할 수 있다.
apk 파일은 decompiler를 이용하여 java 코드로 확인할 수 있지만 우리는 안드로이드 debugging 환경을 만들어 진행하였다.
debugging 환경을 만들기 위하여 AVD를 이용하여 가상 이미지 생성 (android 4.1.2 APIv16)
apk파일 설치 후 프로그램을 debugging하기 위하여 apktool을 이용하여 압축 해제 후 다시 압축
압축 해제 : apktool.bat d -d [apk파일 이름]
Debugging 가능 하도록 압축 : apktool.bat b -d [압축 해제 폴더]
재 압축을 하면 "압축 해제 폴더\dist\" apk 파일이 생성된 것을 확인할 수 있다.
이 파일을 OS에 설치하기 위하여 apk-sign을 이용하여 서명
서명을 완료 후 adb를 이용하여 OS에 프로그램 설치
설치가 정상적으로 됐는지 확인
Debugging을 하기 위하여 Eclipse에서 DDMS를 이용하여 포트 확인
NetBeans를 이용하여 debugger 연결
NetBeans -> New project -> java project with existing sources -> project forder : 압축 해제 폴더 -> source package folder : 압축 해제 폴더
프로젝트가 열린 후 liblaries 우 클릭 -> add jar/folder -> %userprofile%\appdata\local\android\sdk\platforms\android-16\android.jar추가
debug->attach debugger -> JPDA, HOST : 127.0.0.1, port : 확인 포트 추가
Debugger 연결 후 eclipse에서 연결 확인(무당벌래 모양)
연결된 상태에서 일시정지 후 코드 확인
Debugger상에서는 코드 확인이 어렵기 때문에 jd-gui를 이용하여 java코드로 확인하였다.
loginactivity파일을 살펴보면 함수에서 같은지 비교하는 부분을 확인 가능
마지막으로 호출하는 함수는 c.a이기 때문에 debugger로 돌아가 c파일에서 return 부분에 ctrl+F8을 이용하여 break point 설정 후 continue
프로그램이 실행되면 값 입력 후 sign in 클릭
변수를 확인하면 flag 확인 가능
'CTF > Hacking Defense Contest' 카테고리의 다른 글
[PoliCTF 2015] Pwnable - John's Library (0) | 2015.07.14 |
---|---|
[PoliCTF 2015] Reversing - reversemeplz (0) | 2015.07.14 |
[PoliCTF 2015] Hard Interview (0) | 2015.07.13 |
[Volga CTF 2015] joy - relax & enjoy (0) | 2015.05.07 |
[Volga CTF 2015] Crypto - rsa (0) | 2015.05.07 |