BUUCTF Reverse Java逆向解密
一天一道CTF题目,能多不能少
下载文件,发现是个class文件,这好办直接使用jd-gui打开,反编译:
逻辑是如此清晰简单,就是我们输入一个字符串
然后经过一个for循环进行异或
然后将得到的新字符串与KEY进行比较,看看是否相等~
这里我想看看在JAVA中的异或与python中的异或是否一样,我就进行了java代码的编译:
再贴上python的代码:
strs = [180, 136, 137, 147, 191, 137, 147, 191,
148, 136, 133, 191, 134, 140, 129, 135, 191, 65]
flag = ""
for i in range(0,len(strs)):
flag += chr(strs[i] - ord('@') ^ 0x20)
print(flag)
也能得到:
事实证明我想的太多了~
结果就得到了flag:
flag{This_is_the_flag_!}