第一题

输密码

一看判断条件 12位 然后255减去index减去100再减去x = 0

0是48.
所以密码是从后往前数



太简单了。
第二道

ida f5后看到如上
从FIrst方法中解出v3
下面两个循环分别解出v4 v5

注意 这三个解密都只循环四次 剩余的最后一个字母是用的原字符

这个init看起来复杂 其实就是逐个取一个出来

public static void main(String[] args) {
String str1 = "LN^dl";
int arr2[] = {0x20, 0x35, 0x2d, 0x16, 0x61};
String str3 = "AFBo}";
char[] chars1 = str1.toCharArray();
char[] chars3 = str3.toCharArray();
char res1[] = new char[5];
char res2[] = new char[5];
char res3[] = new char[5];
for (int i = 0; i < 4; i++) {
res1[i] = (char) ((chars1[i] ^ 0x80) / 2);
res2[i] = (char) (chars1[i] ^ arr2[i]);
res3[i] = (char) (chars3[i] ^ arr2[i]);
}
res1[4] = chars1[4];
res2[4] = (char) arr2[4];
res3[4] = chars3[4];
System.out.println(new String(res1));
System.out.println(new String(res2));
System.out.println(new String(res3));
for (int i = 0;i<res1.length;i++) {
System.out.print(res1[i]);
System.out.print(res2[i]);
System.out.print(res3[i]);
}
}
网友评论