게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
gamecih 패키지명변경으로 검사우회하려다 안드로메다행
게시물ID : android_4249짧은주소 복사하기
작성자 : G9IN
추천 : 2
조회수 : 13826회
댓글수 : 0개
등록시간 : 2012/02/23 15:01:18
안녕하세요 

gamecih관련하여 package명을 변경하여 

gamecih검사로직을 우회할수 있지 않을까라는 간단한 의문에서 시작하다가

점점 안드로이드 공부하는 이상한 느낌을 받고 있는 지구인입니다.



여러가지 테스트를 해본결과 난해한 문제에 빠지게 된 상태입니다.



우선 복습하자면 궁극적인 목표는 게임이나 기타 어플에서 치트앱을 검사하는방법이

1. 루팅여부를 검사한다 -> 이건 우회방법이 있지만 권장하지 않습니다. 벽돌이 될수 있습니다.

2. 널리 알려진 치트앱이 실행중일 경우 게임을 튕긴다.

     -> 대표적으로 gamecih , gamekiller가 있지요 흔히 package명  android.cih.gamecih 이런종류로 검사를 합니다.



제가 사용한 프로그램은 분해와 변경과 비교를 위해

apk manager

visual studio

그냥 비교하는 프로그램(이름모름)



우선 결론부터 역시 안됩니다.-_-  뭐 저번과는 다르게 원인은 찾았습니다.

제가 한 방법들을 설명하겠습니다.

저와같이 고민하실분 있으면 구합니다..ㅡㅜ 흑



1. package명을 변경하자~!

- 우선 apk manager로 gamecih 3.0을 분해합니다. 뽀각뽀각

그런다음에 폴더에서 스마릴(smali)-com-cih-game_cih 들어갑니다.

그리고는 전체파일에서 game_cih 부분을 game_mon 상태로 변경합니다.

변경시에는 저번에도 말했다시피 갯수가 많기 때문에 수작업은 힘들고 visual studio로 프로젝트설정해서

일괄변경했습니다.(이프로그램용도는 이제 없음 ㅋ)

그리고 JAVA 프로그램이 그렇듯이 "패키지명 = 폴더구조" 입니다. 

폴더명을 game_cih -> game_mon으로 변경합니다.

그런다음 나와서 androidmainfest.xml인지 뭔지를 변경합니다.

단, package name이라는 항목 2개만 game_cih -> game_mon로 변경합니다.



그럼 원리(!)상 모든 변경이 끝난것입니다. 단순 package명 변경이니깐요

디컴파일파일이 아니라 원소스였다면 이클립스에 넣고 package명변경 버튼만 누르면 끝입니다.

그리고 다시 apk manager에서 컴파일후 -> sign을 합니다.

(이때까지만 해도 sign이 뭐지??라면서 그냥했습니다. 알았다면 삽질을 안했을텐데..)

그리고 짜잔

game_mon.apk가 만들어집니다.이걸 폰에 넣고 설치하면 따단~~

설치가 됩니다. 우오오오오오~~

그리고 실행..이어플 super권한줄거냐라는 질문에 allow합니다.

그런데 deny to root래..-_-

재실행....그래도 deny to root...

뭐가 문제지?



변경이 안된부분이 있는건가?

폴더명이 잘못되었나?

인식을 못하는건가?

외계인이 문제인가?



별별생각이 다들고 무려 2일동안 원인을 찾기위해 이것저것 하면서 삽질을 하였습니다.

그래도 결국은 deny to root... 

이문구는 root까지는 되어있지만 해당 어플이 super권한부여에서 거절당했다는 뜻입니다.

superuser 어플에는 번듯이 들어가 있어도 말이죠..

뭐가 문제지 하면서 3일이 지났습니다.



2. 처음부터 다시하자

-모든 세상사 길이 없으면 돌아가는게 인지상정이겠지요

그래서 처음으로 돌아가 apk manager로 분해,구축 연성...세상은 등가교환...아...........

그러던 중 그냥 디컴파일한 파일을 변경없이 컴파일후에 sign하고 설치해보았습니다.

안돼....

변경했을 때와 마찬가지로 deny to root!!

원인은 다른곳에 있었던 것입니다.



간단히 설명을 드리면 안드로이드를 만드신분들은 java기반으로 apk를 만드셨습니다.

이유는 다른언어와는 다르게 디컴파일이 해석하기 난해한 어셈블러로 분해가 되고 

또하나 가장 중요한 이유는 sign이라는 것이 있기 떄문입니다.

apkmanager를 한번이라도 써보신분은 그냥 아무거부없이 sign을 쓰셨을겁니다.

뭐 구글검색하셔서 sign이 뭔지 찾으셔도 쉽게 설명은 나옵니다.

sign이라는것은 쉽게 설명하면 id/pass 입니다.



이어플은 내가 만든것이니 sign은 abc로 sign의 암호는 bcd로 이렇게 설정하는겁니다.

음?????!!?!? 그럼 여기서 의문이 생깁니다.

디컴파일되서 풀리자나? 그럼된거 아닌가?라고 하실수 있으나

이것의 용도는 다른곳에 있습니다.

디컴파일해서 수정합니다. 다시 컴파일하고 sign을 뙇하면 

apk manager에서는 기존것과 다른 sign을 합니다.

그럼 이 어플의 sign명은 a였던게 b로 바뀝니다.

그렇게 되면 이 어플과 연동되며 돌아가던 타어플이나 타프로그램은 

어!??!? 너 a가 아니라 b네?? 너랑안놀아!!  이렇게 됩니다.



기본적으로 연계되어 돌아가는 어플의 경우 동일한 sign과 암호를 가져야 연계가 가능합니다.

여기서 문제!!! 왜 gamecih는 계속 deny deny deny  데니를 찾는 것일까요



그건 아마 연계되는 타프로그램이나 내장된 특정파일(프로그램)과의 연계가 끊어진게 아닐까라는 추측을 

할수 있습니다. 아님말고

실제로 소스를 보면 음악이나 그림파일이 들어가는 raw폴더에 들어가면 gamecih,gamecih_l 뭐이딴거

3개가 있습니다. 뭐 이게 아니라도 통신방법이나 다른방법으로 연계가 될수도 있겠구요

저의 예상으로는 sign문제로 인하여 인식불가 -> 오류가 나오지 않을까 판단됩니다.



아니면 root권한에 접근하는것이기 때문에 

super권한 부여하는 어플과 sign이 같아야 하지도 모르고요.

그렇다고 superuser권한부여 앱수정하지마세요

10000000000000000000000% 확률로 기기변경하시게 될지 모릅니다.



3.그럼 gamekiiler다

- 개인적으로 반대합니다.

얼추 한번 변경해봤는데 구조도 복잡할 뿐더러 

gamecih가 컴퓨터에서 자주사용한 치즈아이콘의 에디트프로그램이면 

gamekiller는 치트엔진 급입니다.-_-

우선 크기가 다릅니다.

게다가 또 한가지 이유는 

해당 방식 자체가 화면밖으로 별도로 빠져나와서 수정하는 방식이기 때문에 

gamecih보다는 효율면이나 안정도면에서 떨어집니다.

뭐 해보실분 있으면 해보셔도 상관은 없으나

복잡하면 복잡했지 쉽지는 않을겁니다

오히려 gamecih가 양반일겁니다.



4.그럼 뭐 어쩌라고.

- 여러가지 방안이 있습니다.

1. taipei에 가서 개발자에게 sign을 받아온다.그렇다고 진짜 sign받아오면 망..

2. 직접 edit 어플을 만든다! 배우고 만들고 테스트후 사용때쯤오면 모바일용 게임가드가 나왔을거임

3. 계속 파본다 제일 확률이 높습니다. 제가 잘못안것일수도 있고 apkmanager에서 지원이 안되는것일수도 있기때문에

버젼업이 된다면 가능할지도 모릅니다. 아니면 소스를 수정해도 되고요.근데 어려움.



이상 뻘짓으로 결국에는 아무것도 남지 않은 결과였습니다.

긴글 읽어주셔서 감사합니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호