From 85f7e474e2cd66d89004ca2e01cae7a69565408a Mon Sep 17 00:00:00 2001 From: JohnE Date: Tue, 12 Jan 2016 23:39:16 -0800 Subject: [PATCH] UPD: updated the documents, updated the version #, ready for release --- docs/README | 27 ++++++++++---- docs/RELEASE_NOTES | 16 ++++++--- docs/devnotes | 86 +-------------------------------------------- libs/fingerprint.py | 2 +- 4 files changed, 33 insertions(+), 98 deletions(-) diff --git a/docs/README b/docs/README index 6db84e2..ddfa9a4 100644 --- a/docs/README +++ b/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. 2. Compare a sqlite database with a fingerprint. 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 ***** ***** ***** ***** -usage: dbfp.py [-h] [-f FILE] [-fd FPDIR] [-fp FP] [-an APP_NAME] - [-av APP_VERSION] [-n NOTES] [-pull] [-v] +usage: dbfp.py [-h] [-db DATABASE] [-fd FPDIR] [-fp FINGERPRINT] + [-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 optional arguments: -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 - path to dirctory of fingerprint files - -fp FP, --fp FP fingerprint file to use in comparison + path to directory of fingerprint files + -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 -av APP_VERSION, --app_version APP_VERSION -n NOTES, --notes NOTES - -pull, --pull - -v, --verbose \ No newline at end of file + -pull automated pull of applications from a physical android + 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 diff --git a/docs/RELEASE_NOTES b/docs/RELEASE_NOTES index d8db282..398867c 100644 --- a/docs/RELEASE_NOTES +++ b/docs/RELEASE_NOTES @@ -2,17 +2,23 @@ --------------- Future Work --------------- -1. Folder Support - a. Read fingerprints from a folder - b. Create fingerprints from files in a folder - - Fuzzy Logic database schema detection -- Finish adding hash of each database table CREATE string + ------------ 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 -improve sql create parsing -improved database and fingerprint comparison diff --git a/docs/devnotes b/docs/devnotes index 3564e36..199b5fa 100644 --- a/docs/devnotes +++ b/docs/devnotes @@ -53,93 +53,9 @@ [[ Testing ]] -[ fingerprint modified by me for testing ] -com.google.android.gms__fitness.db.johnegq_gmail.com__dbfp.json - "Account143": "1921c8925235e313a92f2591f8d3c8b4", +[ Fingerprint modified by me for testing ] -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 ]] diff --git a/libs/fingerprint.py b/libs/fingerprint.py index 9803594..cd1536a 100644 --- a/libs/fingerprint.py +++ b/libs/fingerprint.py @@ -35,7 +35,7 @@ class FingerprintDB: sqlmaster = "SELECT name, sql FROM sqlite_master WHERE type='table'" # 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 format_ver = "0.91"