0x00 前言
1、算法逆向
分析android so的时候,总会遇到一些算法,掌握算法的识别特征对逆向工作效率提升很大,小伙伴给我发来一道android题,涉及几个算法,记录一下做题过程。
2、题目信息
DDCTF2020 Android reverse01
描述(提示)
re1:以此提示为准!!!
最后一次MD5前的输入为:
0x6b,0x93,0x9c,0xfa,0xeb,0x68,0x4b,0x25,0x85,0x54,0xf9,0x1a,0x30,0x84,0xbc,0x7b,0x2c,0xce,0xf3,0x92,0xfe,0x63,0xae,0x67,0xf3,0xe7,0xfb,0x18,0xa2,0xb3,0x32,0x93
涉及算法
1、aes
2、xxtea
3、md5
0x01 算法识别
1、aes
aes一种常见的分组加密算法,加密过程涉及4个操作
(1)字节替换
(2)行移动
(3)列混淆
(4)轮密钥加
识别特征:程序中有256位S盒或者动态生成S盒,可以确定为AES加密
2、tea
tea一种常见的分组加密算法,密钥为128比特位,明文为64比特位,主要做了32轮变换,每轮变换中都涉及移位和变换。
识别特征:固定常数 0x9e3779b9 0x61c88647
3、md5
md5是一种密码散列函数,可以产生一个128位(16字节)的散列值。
识别特征:固定常数 0x67452301 0xefcdab89 0x98badcfe 0x10325476