NewStarCTF2023 Reverse Week3---Let‘s Go Wp

本文介绍了如何在GO语言中使用AES加密,涉及`main_init`的执行顺序,找到并处理`iv`,以及使用`Cipher.AES`和`MODE_CBC`模式进行加密和解密的过程,最终揭示了flag的提示。
摘要由CSDN通过智能技术生成

分析

程序打开后结合题目可以发现是 GO语言。

在GO语言中,main_init 要先于 main 函数运行。
在这里插入图片描述
在这里插入图片描述

在这里对一个iv做了处理。

用插件Signsrch发现AES加密

在这里插入图片描述

知道是AES后,就需要找密文,key和iv了。

在这里插入图片描述

在这里插入图片描述

密文应该就是前面的十六进制字符串。

key和iv需要在函数前下断点动调

在这里插入图片描述
在这里插入图片描述

key和iv都是NewStar!NewStar!

但是需要注意的是,最初提到的iv做了初始化处理。要再异或回去。

得到: |WEaFS@\x13|WEaFS@\x13

exp

from Crypto.Cipher import AES
enc = bytes.fromhex("ee01674b13ff8dd86f8e481aa86f5d25e773a3fd0338f60988cb738b8b178c44")
key = b"NewStar!NewStar!"
iv = b"|WEaFS@\x13|WEaFS@\x13"
aes = AES.new(key, mode=AES.MODE_CBC, iv=iv)
print(aes.decrypt(enc))

# flag{It's_time_to_Go!!!Let's_Go}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sciurdae

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值