j2me游戏-皇家骑士团破解

皇家骑士团 是诺基亚时代喜欢玩的一款游戏,突然之间就想重新玩玩。
但是发现有的关卡过不去了,就动了修改的念头。

j2me游戏-皇家骑士团破解
文章图片
游戏界面 【j2me游戏-皇家骑士团破解】首先将游戏扔进去,以下是游戏目录
j2me游戏-皇家骑士团破解
文章图片
image.png 通过逐个查看,可以发现lang.dat,是游戏的所有文字,由此,我们从这里切入。

j2me游戏-皇家骑士团破解
文章图片
image.png 我们开个项目,遍历出所有的文字与序号

j2me游戏-皇家骑士团破解
文章图片
image.png 其中可以发现其中76可以作为切入点,每局的收入做手脚
全局搜索lang.dat可以找到解析入口,如下:

public static int a(String str, boolean z) throws Exception { DataInputStream dataInputStream = new DataInputStream(GameMidlet.a.getClass().getResourceAsStream(str)); bt = new String[dataInputStream.readInt()]; int length = bt.length; for (int i = 0; i < length; i++) { bt[i] = dataInputStream.readUTF(); } dataInputStream.close(); return bt.length; }

可以看出bt是这些文字的集合
继续追踪可以发现,是这个方法再查找调用
public static String a(int i, boolean z) { if (i >= bt.length) { return new StringBuffer().append("?: ").append(i).toString(); } String str = bt[i]; if (!z) { return str; } str = a.a(a.a(a.a(a.a(str, "%K5", "'5'", true), "%K0", "'0'", true), "%K7", "'7'", true), "%K9", "'9'", true); if (str.indexOf("%KM") == -1) { return str; } StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(a.a(17, new String[]{cV.j(1), cV.j(2), cV.j(4), cV.j(8)})); if (stringBuffer.length() > 0) { stringBuffer.append('/'); } stringBuffer.append(a.g(18)); return a.a(str, "%KM", "'2','8','4','6'", true); }

进一步查找 是a类里面的这个方法总调用
public static String g(int i) { return a.a(i, false); }

接下来搜索76

j2me游戏-皇家骑士团破解
文章图片
image.png 可以看到判断是不是1 1是自己 其他就是打印289这个值 289这个值是敌方保密

j2me游戏-皇家骑士团破解
文章图片
image.png 搜索这个dc一路跟踪,可以发现f类的E方法

j2me游戏-皇家骑士团破解
文章图片
是 最后的地方赋值给cb 这个cb就是我们的金钱
我们考虑从这里入手
如4561行所示,添加以下,然后每局都会加1000金币,无视建筑
const/16 v4,0x3e8

j2me游戏-皇家骑士团破解
文章图片
Screenshot_2019-06-16-15-51-17-205_bin.mt.plus.png

    推荐阅读