密码学学习记录|aes 算法练习样本一 Shield Aes

密码学学习记录 15 / 18

前言

上一篇说了 aes 查表法的实现。正巧小黄书 Shield Aes 部分就是魔改的查表法。这一篇就拿小黄书练练手

shield aes

  • 文案来自龙哥 csdn 文章

Shield 采用的是表合并实现的 AES,仔细瞧瞧的话,感觉样本像是改的 OpenSSL 的代码。AES 魔改点选择的也很隐蔽,修改了密钥扩展中需要用到的 Rcon,硬编码在了样本中,非常的好。

Tips:注意龙哥这里说只是改了 Rcon,但是我在实现的时候好像不是这样,连同密钥扩展也魔改了,也许这里是我代码逻辑写的有问题 QaQ(小声逼逼:可能是龙哥他老人家记忆错乱了)

小黄书 shield aes 是 aes-128/cbc 模式解密的,下面来简单看下 so

aes iv 也是硬编码在 so 文件中。地址 0x44722

0x4B638, 0x4B27C 这两个函数,是密钥扩展函数,其中使用到了 TBox1-8 八个大表,还有 dword_AAB90 这是 Rcon。都同样硬编码在 so 文件中

经过分析测试,只需要修改密钥扩展函数,跟 Rcon 即可,完成解密。使用 aes 标准实现也是可以的,效果相同,下面来测试一下看看

unidbg

大家应该都知道 shield aes 是对 hmac 进行解密,直接在 0x449DA 处下个断点

查看 r0 数据,这是 hmac base64 decode 之后的结果

查看 r2 数据,这是 aes key

单步执行查看参数五的数据,这里就是解密后的结果了

使用 python 跑一下,解密结果相同

暂无评论
本文作者:
本文链接: https://www.qinless.com/?p=1425
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 qinless 的博客!
100

发表评论

返回顶部