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
非常感謝我的朋友! –