WIP: improved schema parsing
This commit is contained in:
parent
82651d5388
commit
5bc90d7407
|
@ -7,7 +7,7 @@
|
|||
INTRO
|
||||
-------------
|
||||
dbfp is a tool that will scan a sqlite database and generate a fingerprint.
|
||||
The fingerprint is basically the database schema.
|
||||
The fingerprint is basically the database schema with some metadata (md5 sums, scan information)
|
||||
The fingerprint is stored to disk in JSON format.
|
||||
|
||||
|
|
@ -13,6 +13,13 @@
|
|||
History
|
||||
------------
|
||||
|
||||
version 0.90
|
||||
-improved sql create parsing
|
||||
-improved support for AOSP Androd contacts database
|
||||
-improved the table schema comparison
|
||||
-added as an option and to the fingerprint:
|
||||
app name, app version, notes regarding this scan
|
||||
|
||||
version 0.85
|
||||
-modified format
|
||||
-added "file-metadata", info about the scanner and fingerprint file
|
||||
|
|
2
dbfp.py
2
dbfp.py
|
@ -64,7 +64,7 @@ def parseArgs():
|
|||
|
||||
# compare a sqlite database file to all fingerprints
|
||||
if (args.fp and args.fpdir):
|
||||
compareFingerprints(args.file, args.fp, args.fpdir)
|
||||
compareFingerprintDir(args.file, args.fp, args.fpdir)
|
||||
# compare a sqlite database file to a fingerprint
|
||||
if (args.fp):
|
||||
compareFingerprint(args.file, args.fp)
|
||||
|
|
27
docs/README
27
docs/README
|
@ -6,10 +6,24 @@
|
|||
-------------
|
||||
INTRO
|
||||
-------------
|
||||
[D]ata[B]ase [F]inger[P]rint
|
||||
|
||||
dbfp is a tool that will scan a sqlite database and generate a fingerprint.
|
||||
The fingerprint is basically the database schema.
|
||||
The fingerprint will uniquely identify the database.
|
||||
The fingerprint consists of the database schema, the sql table create statements,
|
||||
md5 calculations, and file meta-data.
|
||||
The fingerprint is stored to disk in JSON format.
|
||||
|
||||
The fingerprint can be used to identify unknown databases from random paths or recovered from deleted space.
|
||||
The fingerprint can be used for historical comparisons to see what has changed in a new version of an application.
|
||||
|
||||
|
||||
-------------
|
||||
FEATURES
|
||||
-------------
|
||||
1. Generate a fingerprint in JSON format.
|
||||
2. Compare a sqlite database with a fingerprint.
|
||||
|
||||
|
||||
-------------
|
||||
USAGE
|
||||
|
@ -19,12 +33,19 @@ The fingerprint is stored to disk in JSON format.
|
|||
DB Fingerprint
|
||||
***** ***** ***** *****
|
||||
|
||||
usage: main.py [-h] [-f FILE] [-j JSON] [-v]
|
||||
usage: dbfp.py [-h] [-f FILE] [-fd FPDIR] [-fp FP] [-an APP_NAME]
|
||||
[-av APP_VERSION] [-n NOTES] [-v]
|
||||
|
||||
Fingerprint a sqlite database based on its schema
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
-f FILE, --file FILE
|
||||
-j JSON, --json JSON
|
||||
-fd FPDIR, --fpdir FPDIR
|
||||
path to dirctory of fingerprint files
|
||||
-fp FP, --fp FP fingerprint file to use in comparison
|
||||
-an APP_NAME, --app_name APP_NAME
|
||||
-av APP_VERSION, --app_version APP_VERSION
|
||||
-n NOTES, --notes NOTES
|
||||
-v, --verbose
|
||||
|
|
@ -32,7 +32,7 @@ class DBSchema:
|
|||
"""
|
||||
|
||||
sqlmaster = "SELECT name, sql FROM sqlite_master WHERE type='table'"
|
||||
scanner_ver = "0.85"
|
||||
scanner_ver = "0.90"
|
||||
format_ver = "0.90"
|
||||
|
||||
def __init__(self):
|
||||
|
|
Loading…
Reference in New Issue