UPD: updated the documents, updated the version #, ready for release
This commit is contained in:
parent
e3872e159f
commit
85f7e474e2
27
docs/README
27
docs/README
|
@ -24,6 +24,9 @@ The fingerprint can be used for historical comparisons to see what has changed i
|
||||||
1. Generate a fingerprint in JSON format.
|
1. Generate a fingerprint in JSON format.
|
||||||
2. Compare a sqlite database with a fingerprint.
|
2. Compare a sqlite database with a fingerprint.
|
||||||
3. Rip all apps from a phone and create fingerprints for all SQLite databases
|
3. Rip all apps from a phone and create fingerprints for all SQLite databases
|
||||||
|
4. Lightning fast fingerprint comparison
|
||||||
|
a. creates an index of fingerprints
|
||||||
|
b. query the index for quick fingerprint comparison
|
||||||
|
|
||||||
|
|
||||||
-------------
|
-------------
|
||||||
|
@ -34,19 +37,29 @@ The fingerprint can be used for historical comparisons to see what has changed i
|
||||||
DB Fingerprint
|
DB Fingerprint
|
||||||
***** ***** ***** *****
|
***** ***** ***** *****
|
||||||
|
|
||||||
usage: dbfp.py [-h] [-f FILE] [-fd FPDIR] [-fp FP] [-an APP_NAME]
|
usage: dbfp.py [-h] [-db DATABASE] [-fd FPDIR] [-fp FINGERPRINT]
|
||||||
[-av APP_VERSION] [-n NOTES] [-pull] [-v]
|
[-dd DATA_DIR] [-idx INDEX_FINGERPRINTS] [-an APP_NAME]
|
||||||
|
[-av APP_VERSION] [-n NOTES] [-pull] [-v] [-l]
|
||||||
|
|
||||||
Fingerprint a sqlite database based on its schema
|
Fingerprint a sqlite database based on its schema
|
||||||
|
|
||||||
optional arguments:
|
optional arguments:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
-f FILE, --file FILE
|
-db DATABASE, --database DATABASE
|
||||||
|
path to file to be fingerprinted
|
||||||
-fd FPDIR, --fpdir FPDIR
|
-fd FPDIR, --fpdir FPDIR
|
||||||
path to dirctory of fingerprint files
|
path to directory of fingerprint files
|
||||||
-fp FP, --fp FP fingerprint file to use in comparison
|
-fp FINGERPRINT, --fingerprint FINGERPRINT
|
||||||
|
fingerprint file to use in comparison
|
||||||
|
-dd DATA_DIR, --data_dir DATA_DIR
|
||||||
|
path to a directory with sqlite files
|
||||||
|
-idx INDEX_FINGERPRINTS, --index_fingerprints INDEX_FINGERPRINTS
|
||||||
|
path to a directory with sqlite files
|
||||||
-an APP_NAME, --app_name APP_NAME
|
-an APP_NAME, --app_name APP_NAME
|
||||||
-av APP_VERSION, --app_version APP_VERSION
|
-av APP_VERSION, --app_version APP_VERSION
|
||||||
-n NOTES, --notes NOTES
|
-n NOTES, --notes NOTES
|
||||||
-pull, --pull
|
-pull automated pull of applications from a physical android
|
||||||
-v, --verbose
|
phone
|
||||||
|
-v, --verbose will set logging level to DEBUG
|
||||||
|
-l, --logging will supercede the -v option and send all logging to a
|
||||||
|
file, logging.DEBUG
|
||||||
|
|
|
@ -2,17 +2,23 @@
|
||||||
---------------
|
---------------
|
||||||
Future Work
|
Future Work
|
||||||
---------------
|
---------------
|
||||||
1. Folder Support
|
|
||||||
a. Read fingerprints from a folder
|
|
||||||
b. Create fingerprints from files in a folder
|
|
||||||
|
|
||||||
- Fuzzy Logic database schema detection
|
- Fuzzy Logic database schema detection
|
||||||
- Finish adding hash of each database table CREATE string
|
|
||||||
|
|
||||||
------------
|
------------
|
||||||
History
|
History
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
version 0.96
|
||||||
|
-new feature, creates and index of the fingerprints for quick comparisons
|
||||||
|
-"-fd" fingerprint directory, this directory should contain a lot of fingerprints
|
||||||
|
-an index file will be automatically created if none exists
|
||||||
|
-there are two index tables
|
||||||
|
-added the "-v" to make the output more verbose
|
||||||
|
-removed most print statements, replaced the logging
|
||||||
|
-modified commandline switch to be "-db" for database to be scanned
|
||||||
|
-fixed bugs with fingerprints that are created in a batch
|
||||||
|
|
||||||
version 0.95
|
version 0.95
|
||||||
-improve sql create parsing
|
-improve sql create parsing
|
||||||
-improved database and fingerprint comparison
|
-improved database and fingerprint comparison
|
||||||
|
|
|
@ -53,93 +53,9 @@
|
||||||
|
|
||||||
[[ Testing ]]
|
[[ Testing ]]
|
||||||
|
|
||||||
[ fingerprint modified by me for testing ]
|
|
||||||
|
|
||||||
com.google.android.gms__fitness.db.johnegq_gmail.com__dbfp.json
|
[ Fingerprint modified by me for testing ]
|
||||||
"Account143": "1921c8925235e313a92f2591f8d3c8b4",
|
|
||||||
|
|
||||||
ADDED
|
|
||||||
"addedField1" : {
|
|
||||||
"datatype": "INTEGER",
|
|
||||||
"default": "0",
|
|
||||||
"notnull": true
|
|
||||||
},
|
|
||||||
"addedField2" : {
|
|
||||||
"datatype": "INTEGER",
|
|
||||||
"default": "0",
|
|
||||||
"notnull": true
|
|
||||||
},
|
|
||||||
"addedField3" : {
|
|
||||||
"datatype": "INTEGER",
|
|
||||||
"default": "0",
|
|
||||||
"notnull": true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
com.google.android.gms__keys.db__dbfp.json
|
|
||||||
REMOVED
|
|
||||||
"AccountEventIndex": "CREATE TABLE AccountEventIndex ( account_name TEXT NOT NULL, event_index INTEGER NOT NULL, UNIQUE(account_name))",
|
|
||||||
"AccountEventIndex": "c39a79a61eb08300945a8f88493c9c79",
|
|
||||||
"AccountEventIndex": {
|
|
||||||
"account_name": {
|
|
||||||
"datatype": "TEXT",
|
|
||||||
"notnull": true,
|
|
||||||
"unique": true
|
|
||||||
},
|
|
||||||
"event_index": {
|
|
||||||
"datatype": "INTEGER",
|
|
||||||
"notnull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
com.google.android.youtube__youtube_upload_service__dbfp.json
|
|
||||||
"OfflineHttpRequestProto": "162c915fb22c0efd19d6988215982a1a",
|
|
||||||
"transfers": "81cef0b7868db82186d659eb188d92e8"
|
|
||||||
REMOVED
|
|
||||||
"insertionOrder": {
|
|
||||||
"autoincrement": true,
|
|
||||||
"datatype": "INTEGER",
|
|
||||||
"primarykey": true
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
"network_uri": {
|
|
||||||
"datatype": "TEXT"
|
|
||||||
},
|
|
||||||
"output_extras": {
|
|
||||||
"datatype": "BLOB"
|
|
||||||
},
|
|
||||||
"priority": {
|
|
||||||
"datatype": "INTEGER",
|
|
||||||
"default": "0"
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"datatype": "INTEGER"
|
|
||||||
},
|
|
||||||
"status_reason": {
|
|
||||||
"datatype": "INTEGER"
|
|
||||||
}
|
|
||||||
|
|
||||||
ADDED
|
|
||||||
"addedField1" : {
|
|
||||||
"datatype": "INTEGER",
|
|
||||||
"default": "0",
|
|
||||||
"notnull": true
|
|
||||||
},
|
|
||||||
"addedField2" : {
|
|
||||||
"datatype": "INTEGER",
|
|
||||||
"default": "0",
|
|
||||||
"notnull": true
|
|
||||||
},
|
|
||||||
"addedField3" : {
|
|
||||||
"datatype": "INTEGER",
|
|
||||||
"default": "0",
|
|
||||||
"notnull": true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tv.periscope.android__com.localytics.android.c685a165210ff465709ae8d359bef6c90f17a12f344206db16d6f2f7f129e34f.profile.sqlite__dbfp.json
|
|
||||||
|
|
||||||
|
|
||||||
[[ Errors ]]
|
[[ Errors ]]
|
||||||
|
|
|
@ -35,7 +35,7 @@ class FingerprintDB:
|
||||||
|
|
||||||
sqlmaster = "SELECT name, sql FROM sqlite_master WHERE type='table'"
|
sqlmaster = "SELECT name, sql FROM sqlite_master WHERE type='table'"
|
||||||
# version of the scanner used to create the fingerprint
|
# version of the scanner used to create the fingerprint
|
||||||
scanner_ver = "0.95"
|
scanner_ver = "0.96"
|
||||||
# version of the json file format, this # is inserted in the json fingerprint file and can be used to determine what is supported at the time of that version
|
# version of the json file format, this # is inserted in the json fingerprint file and can be used to determine what is supported at the time of that version
|
||||||
format_ver = "0.91"
|
format_ver = "0.91"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue