AES学习。
对称加密算法(AES):原理、应用与代码实现_aes加密-优快云博客
查壳:
64ida打开。
进行修改:
进入enc*函数:
代码很长,很难进行算法识别。
这个时候需要利用特征码,利用好搜索引擎。
进行提取搜索。
所以,大致可以判断为AES 接下来,对照AES算法加密 需要去看有没有进行魔改:
这里将密钥key的生成放在了 enc1函数内部。
v4 = 32
说明只对密文进行了 半数加密(一半是AES加密。 另一半单纯hex转ASCII就好)
解密:
AES解密 一般来说 需要 key iv 以及mode
但对于ECB mode 似乎 对于iv并不是很强求。
脚本:
from Crypto.Cipher import AES
key=[
27, 46, 53, 70, 88, 110, 114, 134, 155, 167,
181, 200, 217, 239, 255, 12]
key1 = bytearray(key)
enc='934d8706bed74cd6eea683c7be86b2eb'
enc1= bytearray.fromhex(enc)
print(enc1)
# 转成 utf-8编码 \x\x\x
aes = AES.new(key1,AES.MODE_ECB) # 这里并没有写iv参数。
decoce = aes.decrypt(enc1) # 解密
print(decoce) # 输出。
enc2='32616562363039383965386433333531'
enc3= bytearray.fromhex(enc2)
print(enc3)
print(''.join(map(chr,decoce + enc3 ))) # map方法 拼接。
验证: