GFSJ0321-【Guess-the-Number】
签到 xor
直接告诉 转一个十六进制 然后xor
package defpackage;
import java.math.BigInteger;
/* JADX INFO: loaded from: guess.class */
public class guess {
static String XOR(String _str_one, String _str_two) {
BigInteger i1 = new BigInteger(_str_one, 16);
BigInteger i2 = new BigInteger(_str_two, 16);
BigInteger res = i1.xor(i2);
String result = res.toString(16);
return result;
}
public static void main(String[] args) {
if (args.length > 0) {
try {
int guess_number = Integer.parseInt(args[0]);
if (1545686892 / 5 == guess_number) {
int i = 349763335 + 345736730;
String answer = XOR("4b64ca12ace755516c178f72d05d7061", "ecd44646cfe5994ebeb35bf922e25dba");
System.out.println("your flag is: " + answer);
} else {
System.err.println("wrong guess!");
System.exit(1);
}
return;
} catch (NumberFormatException e) {
System.err.println("please enter an integer \nexample: java -jar guess 12");
System.exit(1);
return;
}
}
System.err.println("wrong guess!");
int i2 = 1000000 + 1;
System.exit(1);
}
}
猜数字的话也可以直接出flag 算一下就好了
1545686892 / 5 = 309137378
exp
a = int("4b64ca12ace755516c178f72d05d7061", 16)
b = int("ecd44646cfe5994ebeb35bf922e25dba", 16)
print(hex(a ^ b)[2:])
flag
a7b08c546302cc1fd2a4d48bf2bf2ddb
评论