본문 바로가기

Android

Detecting Android Emulator

반응형

안드로이드 에뮬레이터를 감지하는 이유는 다양하지만 대표적으로 2가지로 나뉜다.


1. 악성코드 분석가가 에뮬레이터를 통해 분석하는 것을 막기 위해

2. 불법 앱 사용자가 에뮬레이터에서 AUTO를 돌리는 것을 막기 위해


감지하는 방법은 의외로 간단하다.


에뮬레이터의 경우에는 전화번호가 1555로 시작하는 경우가 많다.

Android 에서 제공하는 기본 API 중 TelephonyManager.getLine1Number 함수가 존재하는데

이를 이용해 설치된 단말기의 전화번호를 return

java 에서 contains 함수를 사용하여 1555가 존재하는지 check!


if(number.contains("1555")) {

//DETECTED

} else {

//NOT DETECTED

}


형식으로 감지해 주는 방법이 있다.


근데 이것 말고도 DEVICE 이름이 Google_API 인 경우를 감지하는데

이 경우에도 contains 함수를 사용한다.


우회 방법은

그냥 테스트 단말기 하나 쓰자

(필자의 경우에는 노는 단말기 갤럭시S2를 사용한다)

부팅되는 과정에서 잡아서 변경할 수 있다고 하나 정확하게 몰라서 ㅠㅠ


반응형

'Android' 카테고리의 다른 글

스미싱 특징분석  (0) 2014.01.02