4
是否有库或开源实用工具可用于搜索Sqlite数据库的所有表和列?唯一的输入将是sqlite数据库文件的名称。搜索Sqlite数据库 - 所有表和列
我想写一个取证工具,并希望搜索特定字符串的sqlite文件。
是否有库或开源实用工具可用于搜索Sqlite数据库的所有表和列?唯一的输入将是sqlite数据库文件的名称。搜索Sqlite数据库 - 所有表和列
我想写一个取证工具,并希望搜索特定字符串的sqlite文件。
您可以使用"SELECT name FROM sqlite_master WHERE type='table'"
找出数据库中表的名称。从那里很容易选择每个表的所有行。
例如:
import sqlite3
import os
filename = ...
with sqlite3.connect(filename) as conn:
conn.row_factory = sqlite3.Row
cursor = conn.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
for tablerow in cursor.fetchall():
table = tablerow[0]
cursor.execute("SELECT * FROM {t}".format(t = table))
for row in cursor:
for field in row.keys():
print(table, field, row[field])
太棒了!我只是有一个额外的问题---可以说我在表中搜索一个字符串“sms”,一旦找到 - 我如何在上面的代码片段中打印列名+表名? –
我已经更改了代码以使用'sqlite3.Row'行工厂。这使得'cursor'返回类似于dict的行。行键是列名称。 – unutbu
非常感谢我的朋友! –