반응형
안드로이드 에뮬레이터를 감지하는 이유는 다양하지만 대표적으로 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를 사용한다)
부팅되는 과정에서 잡아서 변경할 수 있다고 하나 정확하게 몰라서 ㅠㅠ
반응형