[[ TODO ]] Action Items from the code review: -Add function to query the index for a specific MD5 table (database schema) -Add a feature to add a fingerprint to the existing index (it currently recreates an index) -Add a table to the Index to list all the applications that have a fingerprint (include the app version) -more functionality can result from this information in the index -Create a document describing the index file and include an example -Create an example of the FingerprintDB class usage with a standalone tool -Add automated app version discovery to the android pull feature Get App Version http://stackoverflow.com/questions/11942762/get-application-version-name-using-adb com.google.android.gms__node.db 0b48447805d645966439e1b4042d2625 "sqlite_sequence": "079355c84d8b3b1511a504e08aab7fd2" [ Regression Testing ] android pull, data dir, comparison [ Pull Apps from Internet ] http://www.aptoide.com/webservices/docs/2/getApkInfo [ Static Code Analysis ] AFL (python port) http://lcamtuf.coredump.cx/afl/ https://bitbucket.org/jwilk/python-afl/src/af96425344b992ba6b8ea2c446e8eeea5dc43ccd/doc/?at=default [ Hashing ] Hash the SQL create string. Also hash the json schema created. [ Android Pull ] -test android pull (regression testing) -try VM android pull? -use adb bridging technique [ MD5 Index ] -test modified databases and the fingerprints created -index integrity -get number of fingerprints processed, compared to # in folder SELECT SUM (fp_count) FROM md5_all -add "-idxf" "--index_force" to force a re-index -first give info about current index -next, create a new index -give info about new index "152 fingerprints in the index" "Creating a new index. Moved previous to backup" "Creating... FINISHED." "168 fingerprints in the new index" [ Android Data ] -Processing of android data -removed verbose messsage for each fingerprint -fix error message to look good [ Module Cleanup ] -remove print statements (from modules) -add logging statements -add exception throwing -add unit testing -test md5 sum create of tables -test md5 sum create of entire db (tables concatenated) [ Incorporate with another Product ] -add module to other python project -add unit test to other python project [[ Code Snippets ]] self.db_conn.execute(''' CREATE TABLE md5_index ( md5_all TEXT PRIMARY KEY, md5_list TEXT, file_name TEXT); ''') [[ Testing ]] [ Fingerprint modified by me for testing ] [ Regression testing of Android pull ] [ Regression testing of data directory parse ] [[ Errors ]] file is encrypted or is not a database WARN: field definition not recognized: "[version] INTEGER" WARN: field definition not recognized: "[corpus_name] STRING PRIMARY KEY" WARN: field definition not recognized: "[incarnation] STRING" WARN: field definition not recognized: "[seqno_table_complete] INTEGER" file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database file is encrypted or is not a database