在SQLite数据库中解码BLOB

时间:2011-02-01 12:17:49

标签: sqlite blob

我正在从第三方应用程序中探索数据库,我想知道如果你不知道BLOB中存储了什么,是否有可能推断如何解码SQLite数据库中的BLOB?

有什么方法或有工具可以解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

  

有什么方法或有工具可以解决这个问题吗?

BLOB是二进制数据。有一些方法可以重建数据格式(这些逆向工程方法与您用于解密未知文件格式的方法有关),但如果没有进一步的信息,存储在二进制BLOB中的内容相当困难,所以我只能给出一些模糊的提示:

  • 想一想:如果你是程序员来编码存储在BLOB中的数据 - 你会怎么做?通常使用的方式类似
  • 查看数据的第一个字节 - 通常它会告诉它可能是什么文件格式(有许多文件格式可用的“魔术数字”的文档);也不要忘记查看数据是否可以压缩(即查找zlib头,因为zlib经常用于压缩)
  • 如果合法(取决于您所在的国家/地区),那么应用IDA Pro等逆向工程工具或者如果没有一个好的调试器来查看程序在阅读后对BLOB数据执行的操作通常会很有帮助

答案 1 :(得分:3)

如果将BLOB保存到文件,则可以使用Unix file命令确定其中存储的数据类型。

答案 2 :(得分:0)

使用

 sqlite3 db.sqlite 'select writefile('data.bin', value) from Record limit 1;'

(假设值量包含BLOB类型,如在IndexedDB中一样)

然后您可以使用cat data.bin

打印此文件的内容