将程序加载JEB,发现MainActivity啥也没有
但是在data段发现信息
data里面才是主函数,找到
String v4_1 = "";
while(v3 < arg9.length()) {
v4_1 = v4_1 + v1[arg9.charAt(v3) - v6];
++v3;
}
if(v4_1.equals(v2)) {
return "flag{" + Data.md5(arg9) + "}";
}
发现就是一个核对的函数,对了在经过MD5这个函数再次加密。
通过自己核对后得到
arg9=435890157614875
然后就上脚本
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class ctf1 {
public static String md5(String arg5) {
byte[] v2;
try {
MessageDigest v1_1 = MessageDigest.getInstance("MD5");
v1_1.update(arg5.getBytes());
v2 = v1_1.digest();
}
catch(NoSuchAlgorithmException v1) {
throw new RuntimeException("没有这个算法!");
}
String v1_2 = new BigInteger(1, v2).toString(16);
int v2_1;
for(v2_1 = 0; v2_1 < 0x20 - v1_2.length(); ++v2_1) {
v1_2 = "0" + v1_2;
}
return v1_2;
}
public static void main(String[] args) {
String arg9="435890157614875";
System.out.print("flag{" + ctf1.md5(arg9) + "}");
}
}
得到flag