WoShiXXX 发表于 2020-8-13 20:09

一个用Java写的烂CM

本帖最后由 WoShiXXX 于 2020-8-13 20:11 编辑

因为算法原因,我无法提供成功截图,成功了会提示:“2333你居然对了”
我编译的环境是AdoptOpenJDK11
64位的地址:https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/11/jre/x64/windows/OpenJDK11U-jre_x64_windows_openj9_windowsXL_11.0.8_10_openj9-0.21.0.zip
所以,开始爆破吧{:301_997:}

JemmyloveJenny 发表于 2020-8-13 20:55

LeadroyaL 发表于 2020-8-13 20:51
楼主,你能说说是什么心态吗?猜时间戳也能叫 CM?

public class CrackMe {


而且这个CM永远不会正确的……
Java里面判断字符串相等不能用==,而是应该用.equals
==的意思是判断指针(内存中的位置)是否相等,是否是同一个对象
而.equals才是判断字符串相等

solly 发表于 2020-8-14 11:56

这个直接修改 bytecode 就可以了:

上图中选中的 7 字节全部置 0,也就是改成 JVM 的 nop 指令。

LeadroyaL 发表于 2020-8-13 20:51

楼主,你能说说是什么心态吗?猜时间戳也能叫 CM?

public class CrackMe {
    static int i = (int)System.nanoTime();
    static String stringi;

    public CrackMe() {
    }

    public static void main(String[] var0) {
      try {
            System.out.println("请输入一个整数");
            int var1 = System.in.read();
            String var2 = Integer.toString(var1);
            if (var2 == stringi) {
                System.out.println("2333你居然对了");
            } else {
                System.out.println("不对啊");
            }
      } catch (IOException var3) {
            var3.printStackTrace();
      }

    }

    static {
      stringi = i.makeConcatWithConstants<invokedynamic>(i);
    }
}

nwl909690050 发表于 2020-8-14 09:02

虽然是JAVA程序员,但是表示这个我不敢言论。有可能楼主有什么想法我们没猜到而已。

准女婿 发表于 2020-8-13 21:01

其实作者都写清楚了,就是指定爆破的。 修改字节码后保存就可以了

潇洒超人 发表于 2020-8-13 21:34

LeadroyaL 发表于 2020-8-13 20:51
楼主,你能说说是什么心态吗?猜时间戳也能叫 CM?

public class CrackMe {


哈哈哈哈哈哈哈哈 算了不要嘲笑一个努力的孩子

ycwang 发表于 2020-8-13 21:40

string类型不能这样判断吧

海中月是天上月 发表于 2020-8-13 23:32

你这个永远不会走到if中去的,

youze2 发表于 2020-8-13 23:36

LeadroyaL 发表于 2020-8-13 20:51
楼主,你能说说是什么心态吗?猜时间戳也能叫 CM?

public class CrackMe {


给点鼓励就好 莫打击

a780449002 发表于 2020-8-14 09:25

java基础语法都没有掌握
页: [1] 2 3 4
查看完整版本: 一个用Java写的烂CM