2013-08-28 6 views
0

나는 ipad를 위해 킹덤 게임 (Kingdom Age, v2.0)에서 모바일 해킹을 연습하고 있습니다.아이폰에서 모바일 해킹 게임

나는 게임 내에서 엄청난 돈을 벌고 싶지만, 나는 어디에도 가지 않는다. 플레이어는 클래스 CCPlayer에 정의되어 있으며 때로는 서버를 검사합니다.

그래서 CCGameInformation 클래스 내부의 데이터 중심에 도달하려고합니다. 함수 - (id) activePlayer는 많은 양의 callet (30 회/초)이므로 시작하기 좋은 곳이라고 생각했습니다. 단지 기본 클래스를 변경,

@interface CCPlayer:NSObject 
{ 
NSString *townName; 
NSString *rawLastUpdateEnergyTime; 
NSString *rawLastUpdateStaminaTime; 
NSString *rawExpansionTimeStarted; 
NSString *rawBankUpgradeTimeStarted; 
... 
int gold; 
int level; 
int attack; 
... 
@end 

가 실제로 전체를 포함 :

CCPlayer이

@interface CCPlayer : FZPlayer <NSCoding> 
{ 
NSString *townName; 
NSString *rawLastUpdateEnergyTime; 
NSString *rawLastUpdateStaminaTime; 
NSString *rawExpansionTimeStarted; 
NSString *rawBankUpgradeTimeStarted; 
... 
int gold; 
int level; 
int attack; 
... 
@end 

로 (포함 파일에) 정의 I는 다음과 같이 Tweaks.xm에 선언했다. 내가

@interface CCGameInformation : NSObject 
{ 
CCPlayer *user_; 
} 
@end 

로 Tweaks.xm에 정의 그리고 내 후크의 모습

@interface CCGameInformation : _ACFacebookAppIdKey 
{ 
CCPlayer *user_; 
CCLevel *userLevel_; 
.... 
} 

:로

CCGameInformation 정의된다

%hook CCGameInformation 
- (id)activePlayer 
{ 
    CCPlayer* player = (CCPlayer*)%orig; 
    MSHookIvar<int>(player, "energy") = 10; 
    NSLog(@"Energy:%d\n",MSHookIvar<int>(player, "energy")); 
    return player; 
} 

그러나 그것은 작동하지 않습니다 모든. 예상대로 "Energy : 10"을 인쇄하지만 게임 내 에너지는 변하지 않습니다.

후킹 프로세스와 감속을 올바르게 사용하고 있습니까? 그렇지 않으면 게임이 더 잘 보호되고 있습니까?

감사합니다.

+0

http://twodayslate.wordpress.com/2013/09/23/how-to-properly-hook-into-an- 인스턴스 변수와 함께 theos / – twodayslate

답변

0

게임은 실제로 모든 사용자 데이터를 서버에 저장할 수 있습니다. 이는 인앱 구매 기능이있는 게임에서 더 두드러집니다. 불행히도 그 경우에는 할 수있는 것이 거의 없습니다. 당신이 그것을 테스트하려는 경우 더 예를 들어,이 방법을 고려하십시오

%hook CCPlayer 

-(int)gold 
{ 
    return 1000;  //amount of gold. 
} 
%end