Android APK 진단을 위한 툴 소개
네트워크 통신을 하는 앱이라면, 웹 진단 툴을 함께 사용한다.
Apktool
링크 : http://ibotpeaches.github.io/Apktool/
ApkTool은 apk파일은 디컴파일하거나 수정한 후 다시 컴파일 할 수 있는 Tool .
여러 옵션이 있지만 자주 사용하는 옵션은
d 옵션 : decompile 해주는 옵션으로 smali 파일이 아웃풋
b 옵션 : recompile 해주는 옵션으로 apkfile이 아웃풋으로 나오며, signing을 거쳐 안드로이드폰에 설치가 가능.
d -d 옵션 : decompile 해주는 옵션으로 smali 파일이 아웃풋으로 나오지만, 확장자를 java파일로 만들어주어 동적디버깅 할 때 사용.
apk-sign
링크 : https://github.com/appium/sign
안드로이드에는 signing되지 않은 앱은 설치되지 않음
이 signing은 개발자가 APK파일로 만들어 낼 때 하는데, Apk Tool 을 이용해 decompile을 하면 signing이 풀림.
따라서 폰에 설치를 하기 위해서는 signing을 해주어야 하는데, 원 개발자의 서명을 따라할수는 없으나 아무 keystore를 가지고 signing만 해주어도 설치는 가능.
dex2jar
링크 : https://sourceforge.net/projects/dex2jar/
Apk파일은 안에 classes.dex라는 파일이 있는데 이 파일은 Android Dalvik이 인식할수 있도록 class파일을 바이트 코드로 변환한 파일.
이 파일을 dex2jar를 이용해 class파일을 추출하는 Tool.
jd-gui
링크 : http://jd.benow.ca/
JAVA decompiler
위 dex2jar를 이용해 추출해낸 class파일을 java로 복원해주는 Tool.
그런데 복원할때 완벽하지 않아 복원이 잘 되지 않는 부분이 있는 것이 아쉬운점.
jadx
링크 : https://github.com/skylot/jadx
JAVA decompiler
필자는 dex2jar&jd-gui 보다 jadx를 사용하는 것을 더 선호하는데 jadx의 결과가 jd-gui보다 좀더 정확하게 복원을 해주는 것으로 느껴지고, 또 dex2jar라는 단계를 밟지 않고 바로 apk파일을 끌어다 놓는 것만으로 디 컴파일이 되기 때문.
cheatengine
링크 : http://www.cheatengine.org/
메모리 변조 툴
android 앱에 attach해서 메모리를 변조등을 수행할 수 있다.
frida
링크 : http://www.frida.re/docs/android/
frida는 javascript inject를 이용해 개발자가 만들어낸 함수를 공격자가 명시해서 호출하거나, 함수를 새로 만들어서 호출 할 수도 있다.
예를 들면 Getpassword(String id) 이런 함수가 있다면 공격자가 이를 호출하여 password를 얻어낼 수 도 있다.
ida pro
링크 : https://www.hex-rays.com/products/ida/
ida는 동적 디버깅 툴로 대상 Apk를 실행시키면서, 각 부분에 BP를 걸어 그 시점에서의 레지스트리 값등을 확인하고, 패치를 통해
체크로직등의 우회를 노릴수 있다.
drozer
링크 : https://labs.mwrinfosecurity.com/tools/drozer/
안드로이드 진단 프레임워크로 안드로이드 어플리케이션의 보안 취약점을 진단할 수 있다.
introspy
링크 : https://github.com/iSECPartners/Introspy-Android
함수 호출을 포함한 어플리케이션 API 안드로이드 API 파라미터와 리턴값을 로깅 해주는 tool이다.
'Security > Android' 카테고리의 다른 글
[Android APK 진단] 5. DIVA. 입력값 유효성 체크 문제 1 (0) | 2016.06.08 |
---|---|
[Android APK 진단] 4. DIVA. 안전하지 않은 데이터 저장 확인하기 2 (0) | 2016.06.07 |
[Android APK 진단] 3. DIVA. 안전하지 않은 데이터 저장 확인하기 1 (0) | 2016.06.07 |
[Android APK 진단] 2. DIVA. 앱 로그 확인하기 1, 하드코딩된 중요정보 확인하기 1 (0) | 2016.06.07 |