안녕하세요.
눈팅만 하다가, 정말 간단한 소스이기는 하지만 혹시나 필요한 분들을 위한 방법을 올려봅니다.
요즘 인앱결제로 수익을 내는 어플이 각광받는 스타일인 것 같은데..
메모리 치트 어플로 그것 마저도 빗겨나가는 것 같더라구요.
그래서, onCreate 단에서 설치된 패키지로 치트어플이 있는지 확인 하는 방법을 써보았습니다. 치트 어플이 있으면 지우라는 메세지를 띄우고 종료되도록 하지요.
public void noCheat() {
PackageManager pm = getPackageManager();
List< ApplicationInfo > appList = pm.getInstalledApplications( 0 );
int nSize = appList.size();
for( int i = 0; i < nSize; i++ ) {
if(
(appList.get(i).packageName.indexOf("com.cih.gamecih2") != -1) ||
(appList.get(i).packageName.indexOf("com.cih.game_cih") != -1) || (appList.get(i).packageName.indexOf("cn.maocai.gamekiller") != -1) || (appList.get(i).packageName.indexOf("idv.aqua.bulldog") != -1)
) {
Toast toast = Toast.makeText(this, "치트 어플 발견! 지우고 실행해주세요!", Toast.LENGTH_LONG);
toast.show();
onDestroy();
}
}
}
붉은 글씨 부분이 패키지 정보인데, 현재로서는 GameCIH2, 3 와 Gamekiller Game Guardian 이라는 어플을 발견해서 종료되도록 해뒀습니다. Godwish 님 께서 올려두신 글을 보면, 메모리 자체를 접근 못하게 하는 좋은 방법도 있지만 스피드핵만큼은 도저히 막을 방법을 찾지 못해서 이 방법이라도 필요하신 분들이 있으시면 도움이 되었으면 좋겠네요.!
단점이라면, 역시 패키지를 일일히 추가해줘야 하기 때문에 항상 모니터링을 해야 한다는 점이겠네요. 그 점에 관해서는 새로운 어플을 발견할 때 마다 댓글로 패키지명을 추가해두도록 하겠습니다.