标签(空格分隔): 千牛,逆向


问题: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打开操作,所以要设置延迟。在跳转的时候要进行下断及连接。

  1. 搜索qianniu.db定位到taobao/steelorm/dao.
  2. 搜索SQLiteOpenHelper定位到DBOpenHelper.smali.
  3. DBOpenHelper,smali有明显的encypt key:字符串。
  4. DBOpenHelper获取key调用是buildKey,在SQLiteOpenHelper bulidKey下断。
  5. buildKey是native函数,IDA加载libdatabase_sqlcyrpto.so 定位后F5.由于存在反调试无法直接调试。分析代码的意思,有明显的MD5操作,参数由四部分构成。
    第三部分有java传入的。第二部分android_getCpuFamily 为枚举值查找资料对应的arm对1。转换后截取前16位进行验证正确可以解密。




3.解密后可以打开数据库。

Android 千牛数据库分析的更多相关文章

  1. Android 淘宝搜索记录分析及千牛数据库名称关联

    一 taobao搜索关键字分析1.导出淘宝数据文件夹.2.搜索search 找到search文件夹.查看里面可疑文件如history_8d4255cc9c9199c6ec3be940936986b9. ...

  2. android 很多牛叉布局github地址(转)

    原文地址 http://blog.csdn.net/luo15309823081/article/details/41449929 点击可到达github-------https://github.c ...

  3. [转] Android实时抓包分析 : 善用adb调试桥

    Android实时抓包分析 : 善用adb调试桥   谈到android网络抓包,很多人都能想到牛逼轰轰的神器tcpdump.方法就是在android机器上面安装tcpdump,然后通过-w参数把抓包 ...

  4. 《Android系统源代码情景分析》连载回忆录:灵感之源

    上个月,在花了一年半时间之后,写了55篇文章,分析完成了Chromium在Android上的实现,以及Android基于Chromium实现的WebView.学到了很多东西,不过也挺累的,平均不到两个 ...

  5. Android HandlerThread 源码分析

    HandlerThread 简介: 我们知道Thread线程是一次性消费品,当Thread线程执行完一个耗时的任务之后,线程就会被自动销毁了.如果此时我又有一 个耗时任务需要执行,我们不得不重新创建线 ...

  6. MTK Android 源码目录分析

    Android 源码目录分析 Android 4.0 |-- abi (application binary interface:应用二进制接口)|-- art (average retrieval ...

  7. Android 数据库管理— — —创建数据库

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" ...

  8. android wifi ANR问题分析总结

    android wifi ANR问题分析总结 1 看看main进程阻塞在那里? 2 调用关系的函数阻塞在那里? 3 最终阻塞函数的阻塞前的log以及状态

  9. Android高性能ORM数据库DBFlow入门

    DBFlow,综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点.同时不是基于反射,所以性能也是非常高,效率紧跟greenDAO其后.基于注解,使用 ...

随机推荐

  1. Sencha ExtJS 6 Widget Grid 入门

    最近由于业务需要,研究了一下Sencha ExtJS 6 ,虽然UI和性能上据相关资料说都有提升,但是用起来确实不太顺手,而且用Sencha cmd工具进行测试和发布,很多内部细节都是隐藏的,出了问题 ...

  2. Javascript前端和JAVA后端对加密库的处理实例

    前端加密 Javascript的加解密有开源的库,http://www.oschina.net/p/crypto-js/ 如下是具体的使用例子 <!DOCTYPE html> <ht ...

  3. Android中通信协议

    一.TCP/IP协议(传输层协议) 1.Socket与ServerSocket Socket是应用层与TCP/IP协议簇通讯的中间抽象层,Socket是一组接口,在设计模式中,Socket的设计就是门 ...

  4. AC算法学习笔记

    1.算法流程图 (1)    void Init() 此函数是初始化函数,用来给fail数组和goto数组初始化值. (2)    void GotoFunction(string x) 这个函数的作 ...

  5. Event Handler

    在Event Handler中,有一种特殊的Event Handler,称之为Synchronizer或者Denormalizer,其作用就是为了同步“Query Database”.Query Da ...

  6. vim 中替换

    将80替换为10.0.0.19:80 :g/80/s//10.0.0.19:80/g

  7. Windows Server 2012 虚拟化实战:SCVMM的安装和部署

    本篇大概介绍一下在Windows Server 2012 R2上安装和部署SCVMM的过程及其注意事项.下图是我们数据中心SCVMM的基本架构,其中 SCVMM Database 是用于存储了所有配置 ...

  8. sql select 1-10的数字

    SELECT V FROM (   VALUES (1), (2), (3), (4), (5),          (6), (7), (8), (9), (10) ) [1 to 10](V)

  9. LAMP和LNMP

    编译安装和yum安装 centos 7 可以使用10年 ubuntu可以使用5年 VirtualBox也是一个虚拟机 下载centos 安装centos exit   退出登陆 ping www.ba ...

  10. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip

    之前在测试环境(centos7.2)上部署了openstack云平台(完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建),openstack在neutron组网 ...