JAR 文件就是 Java Archive File,顾名思意,它的应bai用是与 Java 息息相关的,是 Java 的一du种文档格式。JAR 文件非常类似 ZIP 文件——zhi准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。
step1、下载题目给的文件:heiheihei.jar
发现是java的jar文件,直接运行:
在控制台执行命令:java -jar heiheihei.jar
注:需要java运行环境,如果没有,先搭建java的环境。
弹出一张动图:
题目说需要60s,额,有技术的话,玩60s应该是可以的,但本人没成功过60s。然而,这游戏不知是bug还是彩蛋,可以躲在绿帽发现不了的地方,就是游戏的右边,一直往右边走,就会进入边界外面,绿帽过不去。
step2、还是另想办法:使用binwalk分析下:binwalk heiheihei.jar
发现好多文件——》直接用binwalk -e heiheihei.jar提取
发现要查找的文件太多了
step3、于是将文件拿到 JD-GUI(Java反编译工具)下 用 jd-gui 分析代码
了解编译和反编译
flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}
发现大括号里面是一串base64编码
最终得到flag{DajiDali_JinwanChiji} ——》 correct!
base32和base64的判断
base64中包含大写字母(A-Z)、小写字母(a-z)、数字0——9以及+/;
base32中只有大写字母(A-Z)和数字234567分辨方法:
首先看有没有符号,base64和base32都以’=‘作为空白补足符符号,如果结尾没有’='有可能是base16。如果出现了+和/,那么一定是base64。
然后看大小写字母,如果有大写有小写就一定是base64。如果全是大写的情况就看具体字母有没有F之后的字母出现,因为base16就是16进制,字母部分只到F。
当然这个base32的数字部分只有2-7,不过数字一般不好判断,所以这里不推荐用数字进行判断。
最后基本上就可以判断出来了,实在不行就拿去在线网站挨个方式解码,也不麻烦。