4.7 修改游戏金币

作者:飞龙

软件下载:http://www.xuepojie.com/thread-24343-1-1.html

进入游戏之后会有个“每日登录奖励”弹窗:

4.7 修改游戏金币 - 图1

点击之后会看到“您获得 100 金币”:

4.7 修改游戏金币 - 图2

我们看一下金币数量,100, 150, 200, 300。好了,将软件拖进 Android Killer:

4.7 修改游戏金币 - 图3

我们搜索“您获得”,定位到了bu.smali

  1. new-instance v0, Ljava/lang/StringBuilder;
  2. const-string v1, "\u60a8\u83b7\u5f97 " # 您获得
  3. invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
  4. iget-object v1, p0, Lcom/linkstudio/FruitLink/a/bu;->ai:[I
  5. aget v1, v1, p1
  6. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  7. move-result-object v0
  8. const-string v1, " \u91d1\u5e01" # 金币
  9. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  10. move-result-object v0

我们发现它是从ai数组获得数据。我们在当前文件中搜索Lcom/linkstudio/FruitLink/a/bu;->ai,发现只有一处对其赋值:

  1. new-array v0, v1, [I
  2. fill-array-data v0, :array_0
  3. iput-object v0, p0, Lcom/linkstudio/FruitLink/a/bu;->ai:[I
  4. # ...
  5. :array_0
  6. .array-data 4
  7. 0x64 # 100
  8. 0x96 # 150
  9. 0xc8 # 200
  10. 0x12c # 250
  11. .end array-data

因为这个数组是int[],我们尝试都改成0x7fffffffint的最大值)。然后保存,重新打包,运行:

4.7 修改游戏金币 - 图4

另外这个游戏中还是有内购,具体破解方法不再赘述了,请参见“糖果星星达人”一节。