2013-08-28 131 views
0

我正在练习手机上的黑客入侵游戏王国时代(v2.0)的ipad。iPhone上的MobileSubstrate游戏黑客攻击

我只是想赚一大笔游戏里的钱,但是我无处可去。玩家在一个类CCPlayer中定义,有时候会被服务器检查。

所以我试图去CCGameInformation类中的数据的核心。函数 - (id)activePlayer是callet很多(像每秒30次),所以我认为这是一个很好的开始。

CCPlayer定义(在包括文件)作为

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

我宣布它在Tweaks.xm为:

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

我实际上包含了整个事情,只是改变了基类。

CCGameInformation被定义为:

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

我Tweaks.xm将它定义为

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

和我挂钩的样子:

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

但它不工作所有。它按预期打印出“能量: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