안녕하세요.
눈팅만 하다가, 정말 간단한 소스이기는 하지만 혹시나 필요한 분들을 위한 방법을 올려봅니다.
요즘 인앱결제로 수익을 내는 어플이 각광받는 스타일인 것 같은데..
메모리 치트 어플로 그것 마저도 빗겨나가는 것 같더라구요.
그래서, 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 님 께서 올려두신 글을 보면, 메모리 자체를 접근 못하게 하는 좋은 방법도 있지만 스피드핵만큼은 도저히 막을 방법을 찾지 못해서 이 방법이라도 필요하신 분들이 있으시면 도움이 되었으면 좋겠네요.!
단점이라면, 역시 패키지를 일일히 추가해줘야 하기 때문에 항상 모니터링을 해야 한다는 점이겠네요. 그 점에 관해서는 새로운 어플을 발견할 때 마다 댓글로 패키지명을 추가해두도록 하겠습니다.

어차피 게임 구매는 대부분 라이트 유저가 합니다.
작성자님 같으신분 많이 있다고 해도 싫어하는 그 개발사 꿈쩍도 안 하구요..
그리고 그 회사 정도도 아닌데 이런 댓글이 달리면 참 기분 껄쩍지근합니다.
욕 먹을 놈은 따로 있는데..
먹고 살라고 인앱 넣었더니 해킹하고 해킹 막으면 이런 소리 듣고 정말 인생 피곤합니다.
당최 이 나라에 중소규모 개발사가 먹고 살게 되어 있는 구조인지 부터가 문제겠지요.
푼돈 만지작 거리면서 다들 생각은 언젠가 대박을 내겠다 하지만..
사실상 개발비부터가 걸리고 그럼 퀄리티 떨구고 그럼 구매 안되고 뭐 전체적으로 악순환이죠.
마케팅 능력을 잘 갖추고 있는 것도 아니고.. 마음에 안 드는 부분 이해 안 가는 것은 아닌데
다들 먹고 살라고 하는 것이고 정말 욕 먹어야 하는 사람은 따로 있다는 이야기가 하고 싶네요..
요 데이터를 웹에서 전송받으면 좋겠네요.
그럼 치트 앱 DB 를 구축하고 웹에서 배포하고 앱은 자동 업데이트받고..
백신 회사가 해야될 일들이 어느새... ㅠㅜ
인앱 결제 없이는 진행이 불가능할 정도의 난이도와 불편함...
거기에다가 치팅앱까지 막아 버리면 전 유료라도 지워 버립니다..
그런식으로 지운게 십만원 어치는 될것 같네요. 더 되려나-_-;
단순히 막기 보다는, 치팅에 대해 관대하게 풀어주고 대신 인앱 결제로 기능을 추가하는 식으로 가는게..
더 낫지 않을까나요? 아싸리 인앱 결제를 없애고 게임앱 가격을 높게 받는다던지요.
물론 치팅 앱 막는 코딩보다, 자연스러운 인앱 결제를 유도하는게 백만배 어렵지 싶습니다만.. -_-;
Kairosoft의 게임은 치팅을 막지 않죠.. 인앱 결제도 없고... 이제 국산 유료 게임은 구매하지 않습니다만,
카이로소프트사의 게임은 거의 모두 구매하고 있네요. 저 같은 사람이 저만 있는건 아니겠죠.