湖湘杯 Common Crypto

本题是一道逆向密码学题,https://pan.baidu.com/s/1z9kQF-d34aBi4_wjQQ1p9w

知识点:AES加密

目录

  1. 背景知识
    1. AES加密
    2. IDA plugin
    3. 题目解析

背景知识

AES加密

IDA plugin

题目解析

首先利用file命令发现是64位的exe可执行文件,运行提示:Please enter flag:,然后随便输入什么,直接退出,没有错误之类的提示。

利用IDA分析,搜索字符串Please enter….,找到关键函数也就是main函数,然后利用IDA plugin Findcrypt 发现AES加密算法继续分析,找到AES密钥和AES加密算法函数,如下图所示:

需要我们找到AES加密密钥,通过分析产生密钥的函数,发现byte_14001DA40地址的数组可能是密钥。

image-20181122163038693

然后分析AES加密算法函数,发现就是使用了上述的数组,所以解题思路就非常清楚啦,利用python脚本对最后要比较的密文进行解密:

1
2
3
4
5
from Crypto.Cipher import AES
key = '\x1b\x2e\x35\x46\x58\x6e\x72\x86\x9b\xa7\xb5\xc8\xd9\xef\xff\x0c'
ciphertext = raw_input('please input ciphertext:').decode('hex')
decodesys = AES.new(key,AES.MODE_ECB)
print decodesys.decrypt(ciphertext)[:16] + ciphertext[-16:] + '}'

解得Flag为:hxb2018{bc69322f3bd02f545c702801}