红包六(CTFshow)

jar的逆向,第一次接触
在这里插入图片描述
jd逆向工具反编译jar文件
可以直接丢进去看,也可以用jd反汇编工具看
红包六(CTFshow)_第1张图片
这里提示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 并非直接存储在代码中,而是需要通过其他方式获得。
    红包六(CTFshow)_第2张图片
    红包六(CTFshow)_第3张图片

压缩文件有5k解压却变成了1k
说明有东西附在上面
win看了很久
红包六(CTFshow)_第4张图片
这得对压缩包的文件结构熟悉
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
红包六(CTFshow)_第5张图片
为什么是从第659个字节开始?
3248怎么来的没搞懂,做个记录吧
就这样用jd反汇编打开这个java
红包六(CTFshow)_第6张图片
红包六(CTFshow)_第7张图片
红包六(CTFshow)_第8张图片
红包六(CTFshow)_第9张图片
红包六(CTFshow)_第10张图片
红包六(CTFshow)_第11张图片
这道题涨知识了
学习的大佬的
https://blog.csdn.net/weixin_52640415/article/details/124191991

C:\ctf.show.reverse\a>java EzJar
ctfshow{eb5e2541-58e6-4f8f-ae6f-5c7a6f920d73}

你可能感兴趣的:(CTF混合,学习)