跳转到主要内容

dfindexeddb 是一个用于执行IndexedDB和leveldb文件数字取证分析的实验性Python工具。

项目描述

dfIndexeddb

dfindexeddb 是一个用于执行IndexedDB和LevelDB文件数字取证分析的实验性Python工具。

它从这些文件中解析LevelDB、IndexedDB和JavaScript结构,无需使用本地库。(注意:目前仅支持Safari和基于Chromium浏览器的IndexedDB键类型和JavaScript类型的一个子集。Firefox正在开发中)。

IndexedDB文件的内容取决于Web应用程序使用Web浏览器的IndexedDB API在本地上/离线存储的内容。内容示例可能包括

  • 文本/源代码编辑器应用程序的文本,
  • 电子邮件和联系信息来自电子邮件应用程序,
  • 照片画廊应用程序的图片和元数据

安装

  1. [Linux] 安装snappy压缩开发包
    $ sudo apt install libsnappy-dev
  1. 创建虚拟环境并安装包
    $ python3 -m venv .venv
    $ source .venv/bin/activate
    $ pip install dfindexeddb

要安装leveldb/indexeddb插件的依赖项,运行

    $ pip install 'dfindexeddb[plugins]'

从源安装

  1. [Linux] 安装snappy压缩开发包
    $ sudo apt install libsnappy-dev
  1. 在本地计算机上克隆或下载/解压存储库。

  2. 创建虚拟环境并安装包

    $ python3 -m venv .venv
    $ source .venv/bin/activate
    $ pip install .

要安装leveldb/indexeddb插件的依赖项,运行

    $ pip install '.[plugins]'

使用方法

安装后,有可供使用两个用于解析IndexedDB/LevelDB文件的命令行工具

IndexedDB

$ dfindexeddb -h
usage: dfindexeddb [-h] {db,ldb,log} ...

A cli tool for parsing indexeddb files

positional arguments:
  {db,ldb,log}
    db          Parse a directory as indexeddb.
    ldb         Parse a ldb file as indexeddb.
    log         Parse a log file as indexeddb.

options:
  -h, --help    show this help message and exit

示例

要从SQLite文件解析IndexedDB记录(用于Safari)并将结果输出为JSON-L,请使用以下命令

dfindexeddb db -s SOURCE --format safari -o jsonl

要从LevelDB文件夹解析IndexedDB记录(用于Chrome/Chromium),使用清单文件确定恢复的记录并将结果输出为JSON,请使用以下命令

dfindexeddb db -s SOURCE --format chrome --use_manifest

要从LevelDB ldb (.ldb) 文件解析IndexedDB记录并将结果输出为JSON-L,请使用以下命令

dfindexeddb ldb -s SOURCE -o jsonl

要从LevelDB log (.log) 文件解析IndexedDB记录并将结果输出为Python可打印表示形式,请使用以下命令

dfindexeddb log -s SOURCE -o repr

将文件解析为Chrome/Chromium IndexedDB blink值并将结果输出为JSON

dfindexeddb blink -s SOURCE

LevelDB

$ dfleveldb -h
usage: dfleveldb [-h] {db,log,ldb,descriptor} ...

A cli tool for parsing leveldb files

positional arguments:
  {db,log,ldb,descriptor}
    db                  Parse a directory as leveldb.
    log                 Parse a leveldb log file.
    ldb                 Parse a leveldb table (.ldb) file.
    descriptor          Parse a leveldb descriptor (MANIFEST) file.

options:
  -h, --help            show this help message and exit

示例

要解析LevelDB文件夹中的记录,请使用以下命令

dfleveldb db -s SOURCE

要解析LevelDB文件夹中的记录,并使用序列号确定恢复的记录并将结果输出为JSON,请使用以下命令

dfleveldb db -s SOURCE --use_sequence_number

要解析LevelDB log (.log) 文件中的块 / 物理记录 / 写入批处理 / 内部键记录,请使用以下命令,通过 -t 选项指定类型(块,物理记录等)。默认情况下,解析内部键记录

$ dfleveldb log  -s SOURCE [-t {blocks,physical_records,write_batches,parsed_internal_key}]

要解析LevelDB table (.ldb) 文件中的块 / 记录,请使用以下命令,通过 -t 选项指定类型(块,记录等)。默认情况下,解析记录

$ dfleveldb ldb -s SOURCE [-t {blocks,records}]

要解析描述符(MANIFEST)文件中的版本编辑记录,请使用以下命令

$ dfleveldb descriptor -s SOURCE [-o {json,jsonl,repr}] [-t {blocks,physical_records,versionedit} | -v]

插件

要为leveldb文件/文件夹应用插件解析器,请添加 --plugin [Plugin Name] 参数。目前,支持以下项目

插件名称 项目名称
ChromeNotificationRecord Chrome/Chromium通知

项目详情


下载文件

下载适合您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

dfindexeddb-20240519.tar.gz (58.1 kB 查看哈希)

上传时间

构建分发

dfindexeddb-20240519-py3-none-any.whl (74.4 kB 查看哈希)

上传时间 Python 3

由以下支持