Study/App

[App]AndroGoat Emulator Detection(smali)

seomj 2022. 9. 15. 12:40

녹스(Nox)에서 진행

'CHECK EMULATOR'를 누르면 애뮬레이터면 'This is Emulator'가, 애뮬레이터가 아니라면 'This is not Emulator'가 뜰텐데

나는 왜 저게 뜨지요....

어쨋든 이것을 우회해 'This is Emulator'가 뜨도록 해볼 것이다.

실습

1.  jadx를 사용해 AndroidManifest.xml을 확인

87번째 줄을 보아 'EmulatorDetectionActivity'로 이동

 

2. EmulatorDetectionActivity 확인

버튼을 클릭하면 isEmulator()의 값으로 출력되는 결과가 달라진다.

 

해당 부분을 확인

FINGERPRINT, DEVICE, MODEL, BRAND, PRODUCT, MANUFACTURER, HARDWARE 의 값들을 사용해 애뮬레이터인지 아닌지를 판단

 

이는 루팅변조와 비슷한 방식으로 우회가 가능

 

3. APK 파일을 디컴파일한 폴더에서 수정할 파일 선택 및 수정

 

isEmulator 마지막 부분을 보면

331번째 줄에서 if문을 통해 애뮬레이터면 cond_0, 애뮬레이터가 아니면 cond_1로 이동하는 것을 확인

 

나는 'This is Emulator'인 애뮬레이터로 인식하도록 설정해야 되기 때문에 cond_1의 값을 수정

cond_1에도 0x1을 지정해줌으로 True를 출력하게 된다.

 

4. 컴파일 및 재설치를 진행 후 다시 실행

 

 

결과