개발자들의 해킹툴 검출 무력화 시키기
어느게임인지는 말하지않도록하겠지만 지나가는 개발자분들이 보았을때 유용하지않을까싶다.
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();
}
}
}
패키지명을 검색해서 com.cih.gamecih2, cn.maocai.gamekiller, idv.aqua.bulldog (게임치,게임킬러등의 메모리치팅 툴이) 디바이스상 존재하거나 메모리 안에 실행되고있는것이 감지될시 해커들 빅엿 먹이는 방식중 하나로 사용되고있다.
게임사 역관광 시키는 방법으로는
해당코드의 일부분을 바꿔치기하면 되겠다.
com.cih.gamecih2
cn.maocai.gamekiller,
이러한 패키지명들을
i.love.you
lets.play.game
이런 무의미한 단어들로 바꿔치기하면 끝~
내가 개발자라면 .. , "치트 어플 발견! 지우고 실행해주세요!", 이런 해커들에게 친절한 문구따위는 집어넣지 않을텐데.. 싶다.. 애초에 디바이스가 루팅되어있는 상황에 메모리변조 해킹 어플이 깔려있는 시점에서 그 유저가 정상적인 게임따위 할리 없지않나??
비유를 해보자.
태어나서 야동을 한번도 안본 남자는 있을수 있지만 한번만 본 남자는 있을수 없다..
핵도 마찬가지.. 핵의 존재를 모르거나 알아도 못써본사람은 정상적인 과금 플레이가 가능하지만
핵의 단물을 한번이라도 빨아본 유저는 어떻게든 자신이 하는 게임의 핵을 구하려고하고 어떻게든 크랙버전 & 핵 을 구해 비정상적인 접근을 시도하려 한다.
당초 저런 문구를 넣는다는건 해커들에게 로그찍어서 이부분을 우회해서 즐겨주세요~ 하는것과 마찬가지 아닌가?
그냥 조용히 치트어플 발견된시점에서 application.quit 하면 될문제다.. 뭐... 그래도 smali 훑어내거나 로그찍어 노가다하면 능력자들은 시간이 좀 걸리더라도 다 들어내긴 하겠지만...
적어도 해커들 작업하기에 귀찮게는 할수있다.
요점은 해커로하여금 짜증을 유발시켜 아이 x같아 이거 작업안해!
하게 만들게하는것 아닐까