(这里是个解题的分界,涉及到了java,以后还会碰到py)依旧查壳。
java的一般都是64位,按照老套路扔进IDA中,你会发现,你看不懂它在干嘛了,而且没有伪代码给你看了,因为IDA无法反编译java的文件,我们需要另一个软件jadx-gui来进行对java文件的反编译。拖进工具里,如下:
简单的一个暴力枚举就可以了,脚本如下:(这里就不解释里边的函数作用了,java应该都会吧)
int main(){
string flag = "";
int KEY[] = {180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65};
for (int i = 0; i < 18; i++) {
for (int j = 32; j <= 126; j++) {
if(((j + '@') ^ 32) == KEY[i]){
flag += char(j);
break;
}
}
}
cout << flag << endl;
return 0;
}