iOS逆向第三篇(查看手机KeyChain和数据库中的信息)

今天开始逆向的第三篇,了解下越狱手机上如何查看KeyChain和数据库中的内容。从中可以学到:

  1. 数据直接存储在手机钥匙串中是不安全的,需要加密存储。
  2. 通过微信的聊天记录的存储,了解IM数据表是怎么建的。

使用Keychain-Dumper导出keychain数据

  • 从https://github.com/ptoomey3/Keychain-Dumper 下载Keychain-Dumper

  • 解压后目录结构中有一个keychain_dumper的可执行文件

iOS逆向第三篇(查看手机KeyChain和数据库中的信息)_第1张图片
1001.png
  • 把keychain_dumper拷贝到越狱手机的/bin 目录下:

    scp /Users/wildcat/Downloads/Keychain-Dumper-master/keychain_dumper  [email protected]:/bin
    
  • 越狱iPhone上进入KeyChains目录

    LvesiPhone:~ root# cd /private/var/Keychains/
    LvesiPhone:/private/var/Keychains root# ls
    TrustStore.sqlite3     caissuercache.sqlite3-journal  keychain-2.db-shm  ocspcache.sqlite3      ocspcache.sqlite3-wal
    caissuercache.sqlite3  keychain-2.db                  keychain-2.db-wal  ocspcache.sqlite3-shm
    
  • 执行以下命令把KeyChain导出到txt文件中

    LvesiPhone:/private/var/Keychains root# /bin/keychain_dumper > keychain-export.txt
    
  • 把txt文件拷贝到电脑查看就可以了。

  • 下面看看demo中存储的数据Keychain Data:036就是存储的一个手势解锁密码。虽然key值苹果给我们加密码但是数据还是暴露出来了,所以需要我们自己加密

    Generic Password
    ----------------
    Service: com.test.merak
    Account: <47657374 75726550 61737377 6f7264>
    Entitlement Group: UUR7J35L27.com.test.merak
    Label: (null)
    Generic Field: <47657374 75726550 61737377 6f7264>
    Keychain Data: 036
    

使用iFunBox和SQLPro for SQLite查看微信聊天记录

  • 从iFunBox官网下载iFunBox,并安装。

  • 越狱手机链接到Mac电脑,在左侧User Applications中找到微信

iOS逆向第三篇(查看手机KeyChain和数据库中的信息)_第2张图片
2001.png
  • 依次进入一下目录Documents/一个32位的加密串/DB/,选中.sqlite结尾的文件,拖到电脑中。
iOS逆向第三篇(查看手机KeyChain和数据库中的信息)_第3张图片
2002.png
  • 其中有一个MM.sqlite和WCDB_Contact.sqlite。在Mac中用SQLPro for SQLite查看数据库内容。

  • MM.sqlite数据库中主要存储着聊天记录相关的数据表

    • 其中每个聊天室会创建一个聊天记录表(公众号消息记录也在这个数据库中)。

    • 表的名字是"Chat_"+聊天室id进行MD5加密的串。其中的聊天室id如果是单聊等于对方的微信号;如果是群聊就是群id。

iOS逆向第三篇(查看手机KeyChain和数据库中的信息)_第4张图片
2003.png
  • 聊天记录表结构如下图
iOS逆向第三篇(查看手机KeyChain和数据库中的信息)_第5张图片
2004.png

​ 其中字段可以猜测到意思的有:

​ TableVer: 默认全是1

​ MesLocalID:自增的主键

​ CreateTime: 时间戳

​ Message: 发的消息内容

​ Type: 消息类型(1:文本消息;49:红包消息)

  • WCDB_Contact.sqlite数据库中主要存储通讯录表

    • Friend表存储着通讯录信息
iOS逆向第三篇(查看手机KeyChain和数据库中的信息)_第6张图片
2005.png

  • 表结构如下:
iOS逆向第三篇(查看手机KeyChain和数据库中的信息)_第7张图片
2006.png
  • 可以直观看出来的字段信息

    userName: 好友微信ID

    type:好友类型

iOS逆向第三篇(查看手机KeyChain和数据库中的信息)_第8张图片
2007.png

觉得不错请点击下方【喜欢】,为了微博认证也是无赖!还差1670个


更多iOS、Swift、iOS逆向最新文章请关注微信公众账号:乐Coding,或者微信扫描下方二维码关注

iOS逆向第三篇(查看手机KeyChain和数据库中的信息)_第9张图片
lecoding

icon.jpg

你可能感兴趣的:(iOS逆向第三篇(查看手机KeyChain和数据库中的信息))