Android 千牛数据库分析
2016-10-19 14:48
246 查看
标签(空格分隔): 千牛,逆向
问题:Android 千牛登陆后产生保存用户数据的db无法直接用sqlite3打开,需要解密。
反编译Apk后jd-gui查看源码。熟悉的sqlcrypto模块加密,阿里大部分的apk数据库都采用这种方案。Sqlcrypto加密方案,由java层生成一个16位的秘钥,传入libdatabase_sqlcyrpto.so加解密。关键点获取该秘钥进行解密
1.对SqliteOpenHelper类的setPassword 已经各种涉及到mPassword的函数下断
1)获取到mPassword 为xU06!Ges8SFy6I&e
2)调试两部手机发行改mPassword为固定值。
3)使用该key进行解密可以解密对应的db。
2.对qianniu.db的解析。因为qianniu.db一启动就会进行db打开操作,所以要设置延迟。在跳转的时候要进行下断及连接。
搜索qianniu.db定位到taobao/steelorm/dao.
搜索SQLiteOpenHelper定位到DBOpenHelper.smali.
DBOpenHelper,smali有明显的encypt key:字符串。
DBOpenHelper获取key调用是buildKey,在SQLiteOpenHelper bulidKey下断。
buildKey是native函数,IDA加载libdatabase_sqlcyrpto.so 定位后F5.由于存在反调试无法直接调试。分析代码的意思,有明显的MD5操作,参数由四部分构成。
第三部分有java传入的。第二部分android_getCpuFamily 为枚举值查找资料对应的arm对1。转换后截取前16位进行验证正确可以解密。
3.解密后可以打开数据库。
问题:Android 千牛登陆后产生保存用户数据的db无法直接用sqlite3打开,需要解密。
反编译Apk后jd-gui查看源码。熟悉的sqlcrypto模块加密,阿里大部分的apk数据库都采用这种方案。Sqlcrypto加密方案,由java层生成一个16位的秘钥,传入libdatabase_sqlcyrpto.so加解密。关键点获取该秘钥进行解密
1.对SqliteOpenHelper类的setPassword 已经各种涉及到mPassword的函数下断
1)获取到mPassword 为xU06!Ges8SFy6I&e
2)调试两部手机发行改mPassword为固定值。
3)使用该key进行解密可以解密对应的db。
2.对qianniu.db的解析。因为qianniu.db一启动就会进行db打开操作,所以要设置延迟。在跳转的时候要进行下断及连接。
搜索qianniu.db定位到taobao/steelorm/dao.
搜索SQLiteOpenHelper定位到DBOpenHelper.smali.
DBOpenHelper,smali有明显的encypt key:字符串。
DBOpenHelper获取key调用是buildKey,在SQLiteOpenHelper bulidKey下断。
buildKey是native函数,IDA加载libdatabase_sqlcyrpto.so 定位后F5.由于存在反调试无法直接调试。分析代码的意思,有明显的MD5操作,参数由四部分构成。
第三部分有java传入的。第二部分android_getCpuFamily 为枚举值查找资料对应的arm对1。转换后截取前16位进行验证正确可以解密。
3.解密后可以打开数据库。
相关文章推荐
- Android 淘宝搜索记录分析及千牛数据库名称关联
- Android 最好的数据库框架 ORMLite的分析 (附时序图和自己写的DEMO)
- Android MediaProvider数据库分析
- Android contacts 数据库分析
- android Xutils 数据库操作源码分析
- android 多线程数据库读写分析与优化【转】
- Android数据库接口性能分析
- Android开发中的数据库事务用法分析
- Android编程之数据库Sql编程实例分析
- android 多线程数据库读写分析与优化
- Android数据库greenDAO框架用法和源码分析
- Android开发—数据库应用—添加列表活动(ListActivity)--分析记事本程序
- android手机联系人数据库分析 推荐
- android 多线程数据库读写分析与优化
- Android数据库一些源码分析
- Android 联系人数据库链接关系分析
- Android 短信模块分析(八) MMS数据库表关系
- android 多线程数据库读写分析与优化(转)
- Android 轻量级ORM数据库开源框架ActiveAndroid 源码分析
- Android数据库ORM框架用法、源码和性能比较分析