解码 SQLite 数据库中的 BLOB

发布于 2024-10-15 09:40:48 字数 104 浏览 5 评论 0原文

我正在从第三方应用程序探索数据库,我想知道如果您不知道 BLOB 中存储的内容,是否可以推断如何解码 SQLite 数据库中的 BLOB?

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

I'm exploring a database from a third-party application and I was wondering if it is possible to infer how to decode a BLOB in a SQLite database if you don't know what is stored inside the BLOB?

Is there any way or are there tools to solve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

江湖正好 2024-10-22 09:40:48

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

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

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

Is there any way or are there tools to solve this?

A BLOB is binary data. There are ways to reconstruct the data format (these reverse engineering methods are related to those you use for deciphering unknown file formats), but without further information what is stored in the binary BLOB it is rather difficult, so I can only give some vague hints:

  • think about: if you were the programmer to encode the data that is stored in the BLOB - how would you do it? Often the way that is used is similar
  • look at the first bytes of the data - often it tells what file format it could be/is (there are documentations of those "magic numbers" for many file formats available); also don't forget to look whether the data could be compressed (i. e. look for zlib header, since zlib is often used for compression)
  • if legal (depends on your country), it is often helpful to apply reverse engineering tools like IDA Pro or if not available a good debugger to have a look what the program does with the BLOB data after reading
行雁书 2024-10-22 09:40:48

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

If you save the BLOB to a file, you can use the Unix file command to determine what kind of data is stored in it.

橘亓 2024-10-22 09:40:48

使用

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

(假设 value volumn 包含 BLOB 类型,如 IndexedDB 中),

那么您可以使用 cat data.bin 打印此文件的内容

use

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

(assuming value volumn contains type BLOB, like in IndexedDB)

then you can print contents of this file with cat data.bin

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文