衡阳网站排名优化费用,深圳市有哪些公司,科技流小说,重庆建设工程信息网站程序员小张不小心弄丢了加密文件用的秘钥#xff0c;已知还好小张曾经编写了一个秘钥验证算法#xff0c;聪明的你能帮小张找到秘钥吗#xff1f; 注意#xff1a;得到的 flag 请包上 flag{} 提交 需要用专门的Java反编译软件:jd-gui
下载文件#xff0c;发现是个class文…程序员小张不小心弄丢了加密文件用的秘钥已知还好小张曾经编写了一个秘钥验证算法聪明的你能帮小张找到秘钥吗 注意得到的 flag 请包上 flag{} 提交 需要用专门的Java反编译软件:jd-gui
下载文件发现是个class文件这好办直接使用jd-gui打开反编译
看多了 C 语言伪代码再看这种的就很舒适程序逻辑非常简单对输入字符串逐个进行加 64 后与 32 进行异或的操作值得注意的是加号的优先级是高于异或运算符的。当计算结果与内部的 KEY 数组内容一样用户输入的数据即为 flag。
操作比较简单直接写脚本进行逆操作 KEY [180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65]
flag for i in range(len(KEY)):flag chr((KEY[i] ^ 32) - 64)print(flag) 运行结果
运行之后便获得了 flag提交 flag{This_is_the_flag_!} 即可。 flag{This_is_the_flag_!}