坚持60s
题目分析
题目给了一个.jar文件,打开后发现是一个小游戏,这种游戏要么比较简单,过关后给你提示信息,要么就是很难过不了。这里属于第二种情况,对于jar文件,我们需要Java Decompiler 来查看这个.jar文件的源码。这里我们使用jd-gui这个工具来打开这个jar文件,如下图。
通过这个软件我们可以查看这个小游戏的源码,由于代码量很小,我们可以把每一个.java文件都看一遍。
最终可以找到存在敏感信息的.java文件。我们也可以使用这个软件的search功能直接搜索敏感字符串。可以定位到含有flag的.java文件。
很明显,flag是经过base64编码的。写一个python脚本解码。
import base64
str = base64.b64decode("RGFqaURhbGlfSmlud2FuQ2hpamk=").decode("utf-8")
print("flag is :" + str)
"""
运行结果:
flag is : DajiDali_JinwanChiji
"""
当然我们也可以用360解压软件解压这个jar文件,会得到.class文件。.class文件是.java文件编译后生成的字节码文件,我们使用一般的文本编辑工具打开的话,里面的内容是乱码。使用专业的集成开发工具(IDE)可以打开.class文件,如eclipse,IDEA等。假如我们在没有.java文件的情况下想要修改代码,就需要用到java文件的反编译工具了(上面的那种做法就是这个),该工具可以将.class文件反编译成.java文件,然后修改java文件后再编译成.class文件即可。
总结
对jar文件我们可以使用Java反编译工具对其源码进行分析。