jar的逆向,第一次接触
jd逆向工具反编译jar文件
可以直接丢进去看,也可以用jd反汇编工具看
这里提示flag不在这里分析一下这段代码
1. 引入必要的库:
java.util.Base64
: 用于处理 Base64 编码和解码。java.util.Scanner
: 用于从用户输入中读取文本。javax.crypto.Cipher
: 用于加密和解密操作。javax.crypto.spec.SecretKeySpec
: 用于创建加密密钥。javax.swing.JOptionPane
: 用于显示图形化对话框。
2. 定义主类:
EzJar
类包含main
方法,程序从此处开始执行。
3. 提示用户输入:
- 使用
JOptionPane
显示一个对话框,要求用户输入 flag。 - 同时在控制台打印 “Give me your flag:” 提示信息。
4. 读取用户输入:
- 使用
Scanner
类从标准输入中读取用户输入的 flag,并存储在变量s
中。
5. 加密输入:
- 创建一个
Cipher
对象,使用 DES 算法进行加密。 - 用 “easy_key” 作为密钥初始化
Cipher
对象。 - 对用户输入的 flag
s
进行加密并将结果存储在变量result
中。 - 将加密后的结果进行 Base64 编码并打印到控制台。
6. 验证结果:
- 将加密后的结果
result
与预期字符串 “UUwnbEk0rzJT9G+ET6MU+Y+6ChoFhCceRnfdDTcuEeJ9+6qwaZFV3w==” 进行比较。 - 如果匹配,则显示 “Accept!” 消息,表示用户输入了正确的 flag。
- 否则,显示 “Wrong answer!” 消息,表示输入错误。
7. 重要提示:
- 代码中注释 “hint: flag not here” 表明 flag 并非直接存储在代码中,而是需要通过其他方式获得。
压缩文件有5k解压却变成了1k
说明有东西附在上面
win看了很久
这得对压缩包的文件结构熟悉
https://ctf-wiki.org/misc/archive/zip/#:~:text=%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84%201%20%E5%8E%8B%E7%BC%A9%E6%BA%90%E6%96%87%E4%BB%B6%E6%95%B0%E6%8D%AE%E5%8C%BA%E4%B8%AD%E6%AF%8F%E4%B8%80%E4%B8%AA%E5%8E%8B%E7%BC%A9%E7%9A%84%E6%BA%90%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E9%83%BD%E6%98%AF%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%EF%BC%8C%E5%85%B6%E4%B8%AD%20local%20file%20header%20%EF%BC%9A%E6%96%87%E4%BB%B6%E5%A4%B4%E7%94%A8%E4%BA%8E%E6%A0%87%E8%AF%86%E8%AF%A5%E6%96%87%E4%BB%B6%E7%9A%84%E5%BC%80%E5%A7%8B%EF%BC%8C%E8%AE%B0%E5%BD%95%E4%BA%86%E8%AF%A5%E5%8E%8B%E7%BC%A9%E6%96%87%E4%BB%B6%E7%9A%84%E4%BF%A1%E6%81%AF%EF%BC%8C%E8%BF%99%E9%87%8C%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B4%E6%A0%87%E8%AF%86%E7%94%B1%E5%9B%BA%E5%AE%9A%E5%80%BC%2050,record%20%28EOCD%29%20%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9D%9F%E6%A0%87%E8%AF%86%205%20%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9D%9F%E6%A0%87%E8%AF%86%E5%AD%98%E5%9C%A8%E4%BA%8E%E6%95%B4%E4%B8%AA%E5%BD%92%E6%A1%A3%E5%8C%85%E7%9A%84%E7%BB%93%E5%B0%BE%EF%BC%8C%E7%94%A8%E4%BA%8E%E6%A0%87%E8%AE%B0%E5%8E%8B%E7%BC%A9%E7%9A%84%E7%9B%AE%E5%BD%95%E6%95%B0%E6%8D%AE%E7%9A%84%E7%BB%93%E6%9D%9F%E3%80%82%20%E6%AF%8F%E4%B8%AA%E5%8E%8B%E7%BC%A9%E6%96%87%E4%BB%B6%E5%BF%85%E9%A1%BB%E6%9C%89%E4%B8%94%E5%8F%AA%E6%9C%89%E4%B8%80%E4%B8%AA%20EOCD%20%E8%AE%B0%E5%BD%95%E3%80%82
我对应着看,结果发现都是0000,奇怪了,这怎么找?
但确实学习了一波压缩包的文件结构
看了别人写的脚本文件
https://blog.csdn.net/weixin_52640415/article/details/124191991
为什么是从第659个字节开始?
3248怎么来的没搞懂,做个记录吧
就这样用jd反汇编打开这个java
这道题涨知识了
学习的大佬的
https://blog.csdn.net/weixin_52640415/article/details/124191991
C:\ctf.show.reverse\a>java EzJar
ctfshow{eb5e2541-58e6-4f8f-ae6f-5c7a6f920d73}