AESKeyGenMe

AES的实例分析

首先用PEiD的插件Krypto ANALyzer查看文件
在这里插入图片描述
显示文件中由MD5算法的常量元素及AES的S盒与逆S盒,可能使用到MD5,AES算法。

使用IDA,定位关键代码并分析
在这里插入图片描述
可以看到输入的序列号长度应为32
进入sub_4012F0
在这里插入图片描述
可以看到4个MD5状态变量
由此推出对用户名作了MD5
分析sub_401EC0函数
在这里插入图片描述
这部分可能是用于判断密钥长度
进一步找到S盒
在这里插入图片描述
推测是对输入的序列号进行了AES加密与MD5后的用户名进行比较
在这里插入图片描述
v7应该是AES的密钥
写出解密脚本

1
2
3
4
5
6
7
8
9
from hashlib import md5
from Crypto.Cipher import AES
from binascii import b2a_hex

name=b'tipsy'
md5_digest=md5(name).digest()
aes=AES.new(key=b'\x2B\x7E\x15\x16\x28\xAE\xD2\xA6\xAB\xF7\x15\x88\x09\xCF\x4F\x3C',mode=AES.MODE_ECB)
decrypt=aes.decrypt(md5_digest)
print(b2a_hex(decrypt).decode().upper())

在这里插入图片描述