각각의 악성앱은 특정 API를 사용해 악성행위를 한다. 그러기 위해선 퍼미션이 선언되어 있어야하고 해당 퍼미션엔느 관련된 API가 존재한다.
퍼미션 | INTERNET |
API | java.net.URLConnection org.apache.http.client.methods.HttpClient |
사용 함수 | java.net.URLConnection.set() java.net.URLConnection.getOutputStream() org.apache.http.client.methods.HttpClient.setEntity() |
퍼미션 | ACCESS_NETWORK_STATE ACCESS_WIFI_STATE |
API | android.net.ConnectivityManager |
사용 함수 | android.net.ConnectivityManager.getNetworkInfo() |
퍼미션 | READ_SMS |
API | android.content.Context |
사용 함수 | android.content.Context.getContentResolver() - 문자 : content://sms |
퍼미션 | SEND_SMS |
API | android.content.Context android.telephony.SmsMessage |
사용 함수 | android.content.Context.getSystemService() android.telephony.SmsManager.getDefault() android.telephony.SmsManager.sendTextMessage() android.telephony.SmsMessage.getDisplayOriginatingAddress() android.telephony.SmsMessage.getMessageBody() android.telephony.SmsManager.sendMultipartTextMessage() |
퍼미션 | WRITE_CONTACTS |
API | android.provider.ContactsContract |
사용 함수 | - |
퍼미션 | READ_PHONE_STATE |
API | android.telephony.TelephonyManager android.content.Context |
사용 함수 | android.content.Context.getSystemService() - 핸드폰번호 : getLine1Number() - 국제핸드폰식별번호 : getDeviceID() - 가입자 ID : getSubscriberID() - SIM 번호 : getSimSerialNumber() |
퍼미션 | ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION |
API | android.telephony.TelephonyManager android.content.Context android.location.LocationManager android.location.Location |
사용 함수 | android.content.Context.getSystemService() android.location.Location.getLatitude() android.location.Location.getLongitude() android.location.LocationManager.getAllProviders() android.location.LocationManager.getLastKnownLocation() android.telephony.TelephonyManager.getCallState() android.telephony.TelephonyManager.getCellLocation() android.telephony.TelephonyManager.getDataState() |
기타 | WRITE_EXTERNAL_STORAGE RECEIVE_BOOT_COMPLETE |
API | android.app.ActivityManager android.content.Context android.content.pm.PackageManager android.database.sqlite.SQLiteDatabase |
사용 함수 | android.app.ActivityManager.getMemoryInfo() android.content.Context.openFileOutput() android.content.pm.PackageManager.getInstalledPackages() android.database.sqlite.SQLiteDatabase.openDatabase() |
'보안 > 안드로이드' 카테고리의 다른 글
덱스파일 파싱하기 (0) | 2014.12.09 |
---|---|
AndroidManifest.xml 바이너리 파일 파싱 (1) | 2014.12.09 |
com.devuni.flashlight v4.9.4 안드로이드 어플리케이션 분석 (0) | 2014.12.03 |
com.devuni.flashlight v5.1.5 안드로이드 어플리케이션 분석 (0) | 2014.12.03 |
busybox, nc를 이용한 ADB로 이미지 뜨기! (1) | 2014.12.02 |