1) 顺丰本地数据库的个人信息采用了加密,导出Apk进行反编译,发现采用爱加密进行加密。
2) 日常fart脱壳后,查看dex代码没发现有用的线索,搜索关键字没发现
3) 整个apk进行grep搜索,发现在index.android.bundle文件夹中,看代码好像js。
搜索了下发现是使用react native写的,参考前人去哪儿分析,基本确定这个是有用的代码
有搜到加密字段,但流程看着比较烦,网上有简洁的网址。(https://tool.lu/js/)
整理后可以看大致的加密流程就是aes以及固定key。
4) 搜素关键字定位加密算法以及key,尝试解密失败。base64解密后发现有固定salt_前缀。
搜索到assetHook打算打印key进行对比。(网站验证成功后,暂不需要)
搜素salt_ aes算法定位js的aes验证网站,对key以及密文验证,成功结果。
5) 搜索js的aes算法的区别,大概流程就是通过salt以及password进行key和iv生成。(主要是salt后8字节,加密码进行普通aes key以及iv生成)
openssl中用
EVP_BytesToKey(EVP_aes_256_cbc(), EVP_md5(), salt, key_file_buf, key_size, 1, key, iv);