大神论坛

找回密码
快速注册
查看: 1047 | 回复: 0

[Android] Android 某某多加密数据库研究分析

主题

帖子

25

积分

初入江湖

UID
16
积分
25
精华
威望
50 点
违规
大神币
68 枚
注册时间
2021-02-19 10:10
发表于 2021-02-19 13:31
本帖最后由 ttgogo 于 2021-02-19 13:31 编辑

#0x00 某多数据库

在某多数据库中其中的t_mall_conversation表中的message字段数据内容被加密了。
提取相应关键字

t_mall_conversation
message



#0x01 逆向分析
查壳
先用Android APK查壳工具,对某多APK进行查壳。如果有被加固需要进行下一步的脱壳操作,如下图:某多APK并未被加固。



反编译、关键字定位根据关键字t_mall_conversation定位到处理该表与message加密字段的类。



在该类下继续找到getMessage 与 setMessage方法,其中getMessage为获取Pdd数据库t_mall_conversation表中Message的字段(所以解密函数也在该方法中),而setMessage为相反的设置Message字段的内容(加密函数在该方法中)。



a.b(message) //解密函数
a.a(str) //加密函数



反编译、加密算法解析采用AES加密算法,向量为{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},密钥为用户UID的MD5加密取前16位,UID的值在data/data/com.xunmeng.pinduoduo/files/pinUserFile文件中。

[Java] 
IV = new byte {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

uid = 5564948642776;
MD5(uid) = 479EE2A088591D9856CCDC451C1B4515;
KEY = 479EE2A088591D98;


AES加密算法