j2me游戏-皇家骑士团破解

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


j2me游戏-皇家骑士团破解_第1张图片
游戏界面

首先将游戏扔进去,以下是游戏目录

j2me游戏-皇家骑士团破解_第2张图片
image.png

通过逐个查看,可以发现lang.dat,是游戏的所有文字,由此,我们从这里切入。


j2me游戏-皇家骑士团破解_第3张图片
image.png

我们开个项目,遍历出所有的文字与序号


j2me游戏-皇家骑士团破解_第4张图片
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游戏-皇家骑士团破解_第5张图片
image.png

可以看到判断是不是1 1是自己 其他就是打印289这个值 289这个值是敌方保密


j2me游戏-皇家骑士团破解_第6张图片
image.png

搜索这个dc一路跟踪,可以发现f类的E方法


j2me游戏-皇家骑士团破解_第7张图片

最后的地方赋值给cb 这个cb就是我们的金钱
我们考虑从这里入手
如4561行所示,添加以下,然后每局都会加1000金币,无视建筑

const/16 v4,0x3e8
j2me游戏-皇家骑士团破解_第8张图片
Screenshot_2019-06-16-15-51-17-205_bin.mt.plus.png

你可能感兴趣的:(j2me游戏-皇家骑士团破解)