Android App Reversing

Preview:

Citation preview

Android App ReversingNewHeart 전성윤(roland)

Case Study!2013. 8. 27 ~ 2014. 1. 16

5 smishing apps

Goals?

• 안드로이드 앱 설치 파일이 갖는 주요 특징을 이해한다

• Case Study를 통해 앱의 매커니즘과 특히, 스미싱 앱의 목표를 파악해본다

• Case Study를 통해 앱의 분석과정을 논리적으로 이해해본다

• 분석 중에 필요한 프로그램에 대해서 아이디어를 공유한다

APK(Android aPplication pacKage)

• ZIP 압축

• ZIP 압축 포맷을 그대로 따르고 있음

• 확장자만 다른것일뿐….

010 Editor

APK(Android aPplication pacKage)

• META-INF : Manifest, 인증서, 등 리버싱과 no 관련

• AndroidManifest.xml :앱 권한, 구성요소 설정 관련

• class.dex :dex(dalvik executable)

• resources.arsc : 미리 컴파일된 바이너리를 담고있다고 함

APK(Android aPplication pacKage)

• res/drawble : 아이콘, 각종 이미지. 자세한 설명 생략.

• res/layout : 액티비티별 레이아웃(xml)들을 저장

안드로이드 레이아웃 xml파일을 입력으로 주면 렌더링해서 보여주는 stand-

alone 프로그램 개발?

AndroidManifest.xml

AndroidManifest.xml

Dalvik EXacutable

• 소스코드들이 이래 됨

• dex2jar, java decompiler(GUI)

• baksmali, smali

Target?• 지금까지 개인적으로 확보해둔 스미싱 앱들

• up.apk

• 2013. 8. 27 - 모바일 돌잔치 초대장(oa.to/PJazvb)

• cckun.apk

• 2013. 9. 25 - www.667803.com

• aaa.apk

• 2013. 10. 1 - 955.cc

• App.apk

• 2013. 12. 29 - 12월달 교통위반 청구서( ? )

[혐]

up.apk• AndroidManifest.xml

permission

MainActivity

up.apk• res/ * : 우리은행, 국민은행, 농협 이미지

• class.dex : 먼저, dex2jar&jd-gui 시도

up.apk

up.apk

up.apk

up.apk

myThread -> myHandler -> download() -> downloadFile()

up.apk

cckun.apkpermission

MainActivity

cckun.apk

• broadcastreceiver

• permission

cckun.apk

cckun.apk

Emulator check

cckun.apk

cckun.apk

cckun.apk

cckun.apk

체인지업

cckun.apk

cckun.apk

cckun.apk

cckun.apk

cckun.apk

cckun.apk

cckun.apk

cckun.apk

cckun.apk

cckun.apk

aaa.apk• “[주의]APK 암호화 기법을 도입한 스미싱 악성앱 출현”

aaa.apk0000 1000 0000 1001 (Lit.)->0000 1000 0000 1000(Lit.)

aaa.apk

aaa.apkpermission

Main Activity

aaa.apk

aaa.apk

aaa.apk

aaa.apk

App.apk

App.apk

App.apk

App.apk

App.apk

App.apk

App.apk

Conclusion• up.apk

• 무작위 SMS 전송 + wuri.apk, KB.apk, NH.apk 를 받기 위한 드롭퍼(Dropper)

• cckun.apk

• 무작위 SMS 전송 + 드롭퍼 + 보안(?)(에뮬레이터 체크, SMS흔적 삭제)

• aaa.apk

• APK 암호화 기법 + 드롭퍼 + 전화번호부 탈취

• App.apk

• 원격 피 조종 클라이언트(좀비 SmartPhone) + 무작위 SMS 전송

Conclusion

• dex 를 분석하여 클래스 간의 관계도를 UML처럼 그려주는 툴…….

• 은 있었다. ㅠ_ㅠ Google God.

• http://dexter.dexlabs.org

dex분석과 향후전망

• dex2jar - java decompiler : java로 디컴파일. dex에 아무런 난독화 기법이 적용되지 않을 경우 사용 가능.

• baksmali - smali로 디스어셈블. 디스어셈블이기 때문에, 난독화, 암호화 또는 파일 헤더 조작 등으로만 막을 수 있음.

• ART VM - dalvik의 시한부 선고

baksmali 예제

• 시연잼

-END- with dalvik