This commit is contained in:
Frank Xu
2026-01-31 18:32:06 -05:00
parent 8fbeceb03d
commit db04699615
167 changed files with 1313 additions and 213 deletions

View File

@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"id": "c2d824a6",
"metadata": {},
"outputs": [
@@ -10,59 +10,59 @@
"name": "stdout",
"output_type": "stream",
"text": [
"PII_A1_commerce_20260127T175911Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A1_commerce_20260127T175911Z.jsonl\n",
"PII_A1_msgstore_20260127T180043Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A1_msgstore_20260127T180043Z.jsonl\n",
"PII_A1_wa_20260127T180213Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A1_wa_20260127T180213Z.jsonl\n",
"PII_A2_core_20260127T180339Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A2_core_20260127T180339Z.jsonl\n",
"PII_A2_journal_20260127T180440Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A2_journal_20260127T180440Z.jsonl\n",
"PII_A2_main_20260127T180710Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A2_main_20260127T180710Z.jsonl\n",
"PII_A3_account1cache4_20260127T180745Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A3_account1cache4_20260127T180745Z.jsonl\n",
"PII_A3_account2cache4_20260127T180821Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A3_account2cache4_20260127T180821Z.jsonl\n",
"PII_A3_account3cache4_20260127T180857Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A3_account3cache4_20260127T180857Z.jsonl\n",
"PII_A4_gmm_myplaces_20260127T180935Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A4_gmm_myplaces_20260127T180935Z.jsonl\n",
"PII_A4_gmm_storage_20260127T181014Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A4_gmm_storage_20260127T181014Z.jsonl\n",
"PII_A4_peopleCache_sharononeil368@gmail.com_com.google_14_20260127T181121Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A4_peopleCache_sharononeil368@gmail.com_com.google_14_20260127T181121Z.jsonl\n",
"PII_A5_SBrowser2_20260127T181345Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A5_SBrowser2_20260127T181345Z.jsonl\n",
"PII_A5_SBrowser_20260127T181239Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A5_SBrowser_20260127T181239Z.jsonl\n",
"PII_A5_searchengine_20260127T181446Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_A5_searchengine_20260127T181446Z.jsonl\n",
"PII_I1_CallHistory_20260127T181557Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_I1_CallHistory_20260127T181557Z.jsonl\n",
"PII_I1_ChatStorage_20260127T181731Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_I1_ChatStorage_20260127T181731Z.jsonl\n",
"PII_I1_ContactsV2_20260127T182906Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_I1_ContactsV2_20260127T182906Z.jsonl\n",
"PII_I2_AddressBook_20260127T183457Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_I2_AddressBook_20260127T183457Z.jsonl\n",
"PII_I2_AddressBookImages_20260127T183526Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_I2_AddressBookImages_20260127T183526Z.jsonl\n",
"PII_I3_sms_20260127T183606Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_I3_sms_20260127T183606Z.jsonl\n",
"PII_I4_CloudTabs_20260127T183643Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_I4_CloudTabs_20260127T183643Z.jsonl\n",
"PII_I4_History_20260127T183727Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_I4_History_20260127T183727Z.jsonl\n",
"PII_I5_Calendar_20260127T183815Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_I5_Calendar_20260127T183815Z.jsonl\n",
"PII_I5_Extras_20260127T183857Z.jsonl: 5 records -> ..\\batch_results_normalized\\PII_I5_Extras_20260127T183857Z.jsonl\n",
"PII_A1_commerce_20260131T203324Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A1_commerce_20260131T203324Z.jsonl\n",
"PII_A1_msgstore_20260131T203502Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A1_msgstore_20260131T203502Z.jsonl\n",
"PII_A1_wa_20260131T203943Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A1_wa_20260131T203943Z.jsonl\n",
"PII_A2_core_20260131T204055Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A2_core_20260131T204055Z.jsonl\n",
"PII_A2_journal_20260131T204142Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A2_journal_20260131T204142Z.jsonl\n",
"PII_A2_main_20260131T204345Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A2_main_20260131T204345Z.jsonl\n",
"PII_A3_account1cache4_20260131T204410Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A3_account1cache4_20260131T204410Z.jsonl\n",
"PII_A3_account2cache4_20260131T204617Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A3_account2cache4_20260131T204617Z.jsonl\n",
"PII_A3_account3cache4_20260131T204642Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A3_account3cache4_20260131T204642Z.jsonl\n",
"PII_A4_gmm_myplaces_20260131T204709Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A4_gmm_myplaces_20260131T204709Z.jsonl\n",
"PII_A4_gmm_storage_20260131T204738Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A4_gmm_storage_20260131T204738Z.jsonl\n",
"PII_A4_peopleCache_sharononeil368@gmail.com_com.google_14_20260131T204833Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A4_peopleCache_sharononeil368@gmail.com_com.google_14_20260131T204833Z.jsonl\n",
"PII_A5_SBrowser2_20260131T205010Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A5_SBrowser2_20260131T205010Z.jsonl\n",
"PII_A5_SBrowser_20260131T204925Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A5_SBrowser_20260131T204925Z.jsonl\n",
"PII_A5_searchengine_20260131T205101Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_A5_searchengine_20260131T205101Z.jsonl\n",
"PII_I1_CallHistory_20260131T205155Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_I1_CallHistory_20260131T205155Z.jsonl\n",
"PII_I1_ChatStorage_20260131T205309Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_I1_ChatStorage_20260131T205309Z.jsonl\n",
"PII_I1_ContactsV2_20260131T210034Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_I1_ContactsV2_20260131T210034Z.jsonl\n",
"PII_I2_AddressBook_20260131T210607Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_I2_AddressBook_20260131T210607Z.jsonl\n",
"PII_I2_AddressBookImages_20260131T210641Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_I2_AddressBookImages_20260131T210641Z.jsonl\n",
"PII_I3_sms_20260131T210735Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_I3_sms_20260131T210735Z.jsonl\n",
"PII_I4_CloudTabs_20260131T210821Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_I4_CloudTabs_20260131T210821Z.jsonl\n",
"PII_I4_History_20260131T210912Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_I4_History_20260131T210912Z.jsonl\n",
"PII_I5_Calendar_20260131T211008Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_I5_Calendar_20260131T211008Z.jsonl\n",
"PII_I5_Extras_20260131T211054Z.jsonl: 5 records -> ..\\batch_results_gpt4o_normalized\\PII_I5_Extras_20260131T211054Z.jsonl\n",
"Done. Files: 25, Records: 125\n",
"Output folder: I:\\project2026\\llmagent\\RQs\\batch_results_gpt4o_normalized\n",
"PII_A1_commerce_20260127T175911Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A1_commerce_20260127T175911Z.jsonl\n",
"PII_A1_msgstore_20260127T180043Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A1_msgstore_20260127T180043Z.jsonl\n",
"PII_A1_wa_20260127T180213Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A1_wa_20260127T180213Z.jsonl\n",
"PII_A2_core_20260127T180339Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A2_core_20260127T180339Z.jsonl\n",
"PII_A2_journal_20260127T180440Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A2_journal_20260127T180440Z.jsonl\n",
"PII_A2_main_20260127T180710Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A2_main_20260127T180710Z.jsonl\n",
"PII_A3_account1cache4_20260127T180745Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A3_account1cache4_20260127T180745Z.jsonl\n",
"PII_A3_account2cache4_20260127T180821Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A3_account2cache4_20260127T180821Z.jsonl\n",
"PII_A3_account3cache4_20260127T180857Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A3_account3cache4_20260127T180857Z.jsonl\n",
"PII_A4_gmm_myplaces_20260127T180935Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A4_gmm_myplaces_20260127T180935Z.jsonl\n",
"PII_A4_gmm_storage_20260127T181014Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A4_gmm_storage_20260127T181014Z.jsonl\n",
"PII_A4_peopleCache_sharononeil368@gmail.com_com.google_14_20260127T181121Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A4_peopleCache_sharononeil368@gmail.com_com.google_14_20260127T181121Z.jsonl\n",
"PII_A5_SBrowser2_20260127T181345Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A5_SBrowser2_20260127T181345Z.jsonl\n",
"PII_A5_SBrowser_20260127T181239Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A5_SBrowser_20260127T181239Z.jsonl\n",
"PII_A5_searchengine_20260127T181446Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_A5_searchengine_20260127T181446Z.jsonl\n",
"PII_I1_CallHistory_20260127T181557Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_I1_CallHistory_20260127T181557Z.jsonl\n",
"PII_I1_ChatStorage_20260127T181731Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_I1_ChatStorage_20260127T181731Z.jsonl\n",
"PII_I1_ContactsV2_20260127T182906Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_I1_ContactsV2_20260127T182906Z.jsonl\n",
"PII_I2_AddressBook_20260127T183457Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_I2_AddressBook_20260127T183457Z.jsonl\n",
"PII_I2_AddressBookImages_20260127T183526Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_I2_AddressBookImages_20260127T183526Z.jsonl\n",
"PII_I3_sms_20260127T183606Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_I3_sms_20260127T183606Z.jsonl\n",
"PII_I4_CloudTabs_20260127T183643Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_I4_CloudTabs_20260127T183643Z.jsonl\n",
"PII_I4_History_20260127T183727Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_I4_History_20260127T183727Z.jsonl\n",
"PII_I5_Calendar_20260127T183815Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_I5_Calendar_20260127T183815Z.jsonl\n",
"PII_I5_Extras_20260127T183857Z.jsonl: 5 records -> ..\\ground_truth_normalized\\PII_I5_Extras_20260127T183857Z.jsonl\n",
"Done. Files: 25, Records: 125\n",
"Output folder: I:\\project2026\\llmagent\\RQs\\batch_results_normalized\n",
"PII_A1_commerce.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_A1_commerce.jsonl\n",
"PII_A1_msgstore.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_A1_msgstore.jsonl\n",
"PII_A1_wa.jsonl: 8 records -> ..\\ground_truth_normalized\\PII_A1_wa.jsonl\n",
"PII_A2_core.jsonl: 4 records -> ..\\ground_truth_normalized\\PII_A2_core.jsonl\n",
"PII_A2_journal.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_A2_journal.jsonl\n",
"PII_A2_main.jsonl: 10 records -> ..\\ground_truth_normalized\\PII_A2_main.jsonl\n",
"PII_A3_account1cache4.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_A3_account1cache4.jsonl\n",
"PII_A3_account2cache4.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_A3_account2cache4.jsonl\n",
"PII_A3_account3cache4.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_A3_account3cache4.jsonl\n",
"PII_A4_gmm_myplaces.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_A4_gmm_myplaces.jsonl\n",
"PII_A4_gmm_storage.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_A4_gmm_storage.jsonl\n",
"PII_A4_peopleCache_sharononeil368@gmail.com_com.google_14.jsonl: 6 records -> ..\\ground_truth_normalized\\PII_A4_peopleCache_sharononeil368@gmail.com_com.google_14.jsonl\n",
"PII_A5_SBrowser.jsonl: 3 records -> ..\\ground_truth_normalized\\PII_A5_SBrowser.jsonl\n",
"PII_A5_SBrowser2.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_A5_SBrowser2.jsonl\n",
"PII_A5_searchengine.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_A5_searchengine.jsonl\n",
"PII_I1_CallHistory.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_I1_CallHistory.jsonl\n",
"PII_I1_ChatStorage.jsonl: 4 records -> ..\\ground_truth_normalized\\PII_I1_ChatStorage.jsonl\n",
"PII_I1_ContactsV2.jsonl: 2 records -> ..\\ground_truth_normalized\\PII_I1_ContactsV2.jsonl\n",
"PII_I2_AddressBook.jsonl: 7 records -> ..\\ground_truth_normalized\\PII_I2_AddressBook.jsonl\n",
"PII_I2_AddressBookImages.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_I2_AddressBookImages.jsonl\n",
"PII_I3_sms.jsonl: 6 records -> ..\\ground_truth_normalized\\PII_I3_sms.jsonl\n",
"PII_I4_CloudTabs.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_I4_CloudTabs.jsonl\n",
"PII_I4_History.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_I4_History.jsonl\n",
"PII_I5_Calendar.jsonl: 6 records -> ..\\ground_truth_normalized\\PII_I5_Calendar.jsonl\n",
"PII_I5_Extras.jsonl: 1 records -> ..\\ground_truth_normalized\\PII_I5_Extras.jsonl\n",
"Done. Files: 25, Records: 71\n",
"Output folder: I:\\project2026\\llmagent\\RQs\\ground_truth_normalized\n"
]
}
@@ -139,7 +139,7 @@
"\n",
" from stats_utils import normalize_and_slim_record\n",
"\n",
" IN_DIR = Path(r\"..\\..\\batch_results\")\n",
" IN_DIR = Path(r\"..\\..\\batch_results_gpt4o\")\n",
" OUT_DIR = Path(r\"..\\batch_results_gpt4o_normalized\")\n",
"\n",
" normalize_jsonl_folder(IN_DIR, OUT_DIR, normalize_and_slim_record, delete_out_dir_first=True)\n",

View File

316
RQs/RQ1/RQ1_t4.ipynb Normal file
View File

@@ -0,0 +1,316 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "e15e3ffe",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ID Application Database Email Phone UserName PersonName PostalAddr Total\n",
"-------------------------------------------------------------------------------------------------\n",
"A1 WhatsApp commerce.db 0 0 0 0 0 0\n",
"A1 WhatsApp msgstore.db 0 7 2 22 0 31\n",
"A1 WhatsApp wa.db 0 16 0 10 0 26\n",
"A2 Snapchat core.db 0 1 12 1 0 14\n",
"A2 Snapchat journal.db 0 0 0 0 0 0\n",
"A2 Snapchat main.db 1 13 0 12 0 26\n",
"A3 Telegram account1cache4.db 0 0 0 0 0 0\n",
"A3 Telegram account2cache4.db 0 0 0 0 0 0\n",
"A3 Telegram account3cache4.db 0 0 0 0 0 0\n",
"A4 Google Maps gmm_myplaces.db 0 0 0 0 0 0\n",
"A4 Google Maps gmm_storage.db 0 0 0 0 0 0\n",
"A4 Google Maps peopleCache_sh....db 2 0 2 0 0 4\n",
"A5 Samsung Internet SBrowser.db 1 0 4 0 0 5\n",
"A5 Samsung Internet SBrowser2.db 0 0 0 0 0 0\n",
"A5 Samsung Internet searchengine.db 0 0 0 0 0 0\n",
"I1 WhatsApp CallHistory.sqlite 0 0 0 0 0 0\n",
"I1 WhatsApp ChatStorage.sqlite 0 0 0 14 2 16\n",
"I1 WhatsApp ContactsV2.sqlite 0 0 0 0 0 0\n",
"I2 Contacts AddressBook.sqlitedb 6 1012 0 865 0 1883\n",
"I2 Contacts AddressB....sqlitedb 0 0 0 0 0 0\n",
"I3 Apple Messages sms.db 1 20 2 10 0 33\n",
"I4 Safari CloudTabs.db 0 0 0 0 0 0\n",
"I4 Safari History.db 0 0 63 0 0 63\n",
"I5 Calendar Calendar.sqlitedb 1 0 0 0 0 1\n",
"I5 Calendar Extras.db 0 0 0 0 0 0\n",
"\n",
"Wrote LaTeX: I:\\project2026\\llmagent\\RQs\\RQ1\\RQ1_t4.tex\n"
]
}
],
"source": [
"import json\n",
"from pathlib import Path\n",
"from collections import defaultdict, OrderedDict\n",
"from typing import Dict, Tuple, List\n",
"\n",
"IN_DIR = Path(r\"..\\batch_results_gpt4o_normalized\")\n",
"OUT_TEX = Path(\"RQ1_t4.tex\")\n",
"\n",
"APP_NAME = OrderedDict([\n",
" (\"A1\", \"WhatsApp\"),\n",
" (\"A2\", \"Snapchat\"),\n",
" (\"A3\", \"Telegram\"),\n",
" (\"A4\", r\"\\begin{tabular}[c]{@{}l@{}}Google \\\\Maps\\end{tabular}\"),\n",
" (\"A5\", r\"\\begin{tabular}[c]{@{}l@{}}Samsung \\\\Internet\\end{tabular}\"),\n",
" (\"I1\", \"WhatsApp\"),\n",
" (\"I2\", \"Contacts\"),\n",
" (\"I3\", r\"\\begin{tabular}[c]{@{}l@{}}Apple \\\\Messages\\end{tabular}\"),\n",
" (\"I4\", \"Safari\"),\n",
" (\"I5\", \"Calendar\"),\n",
"])\n",
"\n",
"# Plain-text screen display names (no LaTeX newlines)\n",
"APP_NAME_PLAIN = OrderedDict([\n",
" (\"A1\", \"WhatsApp\"),\n",
" (\"A2\", \"Snapchat\"),\n",
" (\"A3\", \"Telegram\"),\n",
" (\"A4\", \"Google Maps\"),\n",
" (\"A5\", \"Samsung Internet\"),\n",
" (\"I1\", \"WhatsApp\"),\n",
" (\"I2\", \"Contacts\"),\n",
" (\"I3\", \"Apple Messages\"),\n",
" (\"I4\", \"Safari\"),\n",
" (\"I5\", \"Calendar\"),\n",
"])\n",
"\n",
"PII_COLS = OrderedDict([\n",
" (\"EMAIL\", \"Email\"),\n",
" (\"PHONE\", \"Phone\"),\n",
" (\"USERNAME\", \"User Name\"),\n",
" (\"PERSON_NAME\", \"Person Name\"),\n",
" (\"POSTAL_ADDRESS\", \"Postal Address\"),\n",
"])\n",
"\n",
"MAX_DB_NAME_LEN = 20\n",
"\n",
"\n",
"def get_app_code(db_path: str) -> str:\n",
" stem = Path(db_path).stem\n",
" return stem.split(\"_\", 1)[0] if \"_\" in stem else stem.split(\"-\", 1)[0]\n",
"\n",
"\n",
"def get_db_filename(db_path: str) -> str:\n",
" name = Path(db_path).name\n",
" if \"_\" in name:\n",
" return name.split(\"_\", 1)[1]\n",
" return name\n",
"\n",
"\n",
"def latex_escape(s: str) -> str:\n",
" return s.replace(\"\\\\\", r\"\\textbackslash{}\").replace(\"_\", r\"\\_\")\n",
"\n",
"\n",
"def shorten_db_name(db_file: str, max_len: int = MAX_DB_NAME_LEN) -> str:\n",
" s = db_file.strip()\n",
" if len(s) <= max_len:\n",
" return s\n",
"\n",
" p = Path(s)\n",
" stem = p.stem\n",
" suffix = p.suffix\n",
" if not suffix:\n",
" return s[: max_len - 3] + \"...\"\n",
"\n",
" keep = max_len - len(suffix) - 3\n",
" if keep <= 0:\n",
" return s[: max_len - 3] + \"...\"\n",
" return stem[:keep] + \"...\" + suffix\n",
"\n",
"\n",
"def load_db_level_counts(folder: Path) -> Dict[Tuple[str, str], Dict[str, int]]:\n",
" counts: Dict[Tuple[str, str], Dict[str, int]] = defaultdict(lambda: {t: 0 for t in PII_COLS.keys()})\n",
"\n",
" for fp in sorted(folder.glob(\"*.jsonl\")):\n",
" with fp.open(\"r\", encoding=\"utf-8\") as f:\n",
" for line in f:\n",
" line = line.strip()\n",
" if not line:\n",
" continue\n",
" rec = json.loads(line)\n",
" if not isinstance(rec, dict):\n",
" continue\n",
"\n",
" db_path = rec.get(\"db_path\", \"\")\n",
" pii_type = (rec.get(\"PII_type\") or \"\").strip().upper()\n",
" if not db_path or pii_type not in PII_COLS:\n",
" continue\n",
"\n",
" app = get_app_code(db_path)\n",
" db_file = get_db_filename(db_path)\n",
"\n",
" n = rec.get(\"Num_of_PII\", 0)\n",
" if isinstance(n, bool) or not isinstance(n, (int, float)):\n",
" n = 0\n",
" counts[(app, db_file)][pii_type] += int(n)\n",
"\n",
" return counts\n",
"\n",
"\n",
"def format_row_tex(\n",
" app_code: str,\n",
" app_display: str,\n",
" db_file: str,\n",
" counts_for_db: Dict[str, int],\n",
" is_first_row_for_app: bool,\n",
" nrows_for_app: int,\n",
") -> str:\n",
" email = counts_for_db[\"EMAIL\"]\n",
" phone = counts_for_db[\"PHONE\"]\n",
" uname = counts_for_db[\"USERNAME\"]\n",
" pname = counts_for_db[\"PERSON_NAME\"]\n",
" addr = counts_for_db[\"POSTAL_ADDRESS\"]\n",
" total = email + phone + uname + pname + addr\n",
"\n",
" db_show = shorten_db_name(db_file, MAX_DB_NAME_LEN)\n",
" db_tex = latex_escape(db_show)\n",
"\n",
" if is_first_row_for_app:\n",
" return (\n",
" rf\"\\multirow{{{nrows_for_app}}}{{*}}{{{app_code}}} & \"\n",
" rf\"\\multirow{{{nrows_for_app}}}{{*}}{{{app_display}}} & \"\n",
" rf\"{db_tex} & {email} & {phone} & {uname} & {pname} & {addr} & \\textbf{{{total}}} \\\\\"\n",
" )\n",
"\n",
" return rf\" & & {db_tex} & {email} & {phone} & {uname} & {pname} & {addr} & \\textbf{{{total}}} \\\\\"\n",
"\n",
"\n",
"def build_table_tex(counts: Dict[Tuple[str, str], Dict[str, int]]) -> str:\n",
" by_app: Dict[str, List[Tuple[str, Dict[str, int]]]] = defaultdict(list)\n",
" for (app, db_file), c in counts.items():\n",
" by_app[app].append((db_file, c))\n",
"\n",
" for app in by_app:\n",
" by_app[app].sort(key=lambda x: x[0].lower())\n",
"\n",
" lines: List[str] = []\n",
" lines.append(r\"\\begin{table*}[th]\")\n",
" lines.append(r\"\\centering\")\n",
" lines.append(r\"\\small\")\n",
" lines.append(r\"\\caption{PII Discovered Per Application and Database (ChatGPT 4o-mini)}\")\n",
" lines.append(r\"\\label{tab:pii_per_app_gpt_details}\")\n",
" lines.append(r\"\\begin{tabular}{|c|l|l|r|r|r|r|r|r|}\")\n",
" lines.append(r\"\\hline\")\n",
" lines.append(\n",
" r\"\\textbf{ID} & \\textbf{Application} & \\textbf{Database} & \"\n",
" r\"\\textbf{Email} & \\textbf{Phone} & \\textbf{User Name} & \\textbf{Person Name} & \"\n",
" r\"\\textbf{Postal Address} & \\textbf{Total PII} \\\\\"\n",
" )\n",
" lines.append(r\"\\hline\")\n",
"\n",
" app_order = list(APP_NAME.keys()) + [a for a in sorted(by_app.keys()) if a not in APP_NAME]\n",
"\n",
" for app in app_order:\n",
" if app not in by_app:\n",
" continue\n",
" db_rows = by_app[app]\n",
" nrows = len(db_rows)\n",
" app_display = APP_NAME.get(app, app)\n",
"\n",
" for i, (db_file, cdict) in enumerate(db_rows):\n",
" lines.append(format_row_tex(app, app_display, db_file, cdict, i == 0, nrows))\n",
" if i < nrows - 1:\n",
" lines.append(r\"\\cline{3-9}\")\n",
" else:\n",
" lines.append(r\"\\hline\")\n",
"\n",
" lines.append(r\"\\end{tabular}\")\n",
" lines.append(r\"\\end{table*}\")\n",
" return \"\\n\".join(lines)\n",
"\n",
"\n",
"def build_plain_text_table(counts: Dict[Tuple[str, str], Dict[str, int]]) -> str:\n",
" \"\"\"\n",
" Prints a simple readable table to the console (no LaTeX, no multirow).\n",
" One row per (app, db).\n",
" \"\"\"\n",
" by_app: Dict[str, List[Tuple[str, Dict[str, int]]]] = defaultdict(list)\n",
" for (app, db_file), c in counts.items():\n",
" by_app[app].append((db_file, c))\n",
"\n",
" for app in by_app:\n",
" by_app[app].sort(key=lambda x: x[0].lower())\n",
"\n",
" rows: List[List[str]] = []\n",
" header = [\"ID\", \"Application\", \"Database\", \"Email\", \"Phone\", \"UserName\", \"PersonName\", \"PostalAddr\", \"Total\"]\n",
" rows.append(header)\n",
"\n",
" app_order = list(APP_NAME_PLAIN.keys()) + [a for a in sorted(by_app.keys()) if a not in APP_NAME_PLAIN]\n",
"\n",
" for app in app_order:\n",
" if app not in by_app:\n",
" continue\n",
" app_disp = APP_NAME_PLAIN.get(app, app)\n",
"\n",
" for db_file, cdict in by_app[app]:\n",
" email = cdict[\"EMAIL\"]\n",
" phone = cdict[\"PHONE\"]\n",
" uname = cdict[\"USERNAME\"]\n",
" pname = cdict[\"PERSON_NAME\"]\n",
" addr = cdict[\"POSTAL_ADDRESS\"]\n",
" total = email + phone + uname + pname + addr\n",
"\n",
" db_show = shorten_db_name(db_file, MAX_DB_NAME_LEN)\n",
" rows.append([app, app_disp, db_show, str(email), str(phone), str(uname), str(pname), str(addr), str(total)])\n",
"\n",
" # compute column widths\n",
" widths = [0] * len(rows[0])\n",
" for r in rows:\n",
" for i, cell in enumerate(r):\n",
" widths[i] = max(widths[i], len(cell))\n",
"\n",
" def fmt_row(r: List[str]) -> str:\n",
" parts = []\n",
" for i, cell in enumerate(r):\n",
" if i <= 2:\n",
" parts.append(cell.ljust(widths[i]))\n",
" else:\n",
" parts.append(cell.rjust(widths[i]))\n",
" return \" \".join(parts)\n",
"\n",
" lines = [fmt_row(rows[0])]\n",
" lines.append(\"-\" * len(lines[0]))\n",
" for r in rows[1:]:\n",
" lines.append(fmt_row(r))\n",
" return \"\\n\".join(lines)\n",
"\n",
"\n",
"if __name__ == \"__main__\":\n",
" counts = load_db_level_counts(IN_DIR)\n",
"\n",
" # Write LaTeX\n",
" tex = build_table_tex(counts)\n",
" OUT_TEX.write_text(tex, encoding=\"utf-8\")\n",
"\n",
" # Print a plain-text preview to screen\n",
" print(build_plain_text_table(counts))\n",
" print(f\"\\nWrote LaTeX: {OUT_TEX.resolve()}\")\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.18"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

61
RQs/RQ1/RQ1_t4.tex Normal file
View File

@@ -0,0 +1,61 @@
\begin{table*}[th]
\centering
\small
\caption{PII Discovered Per Application and Database (ChatGPT 4o-mini)}
\label{tab:pii_per_app_gpt_details}
\begin{tabular}{|c|l|l|r|r|r|r|r|r|}
\hline
\textbf{ID} & \textbf{Application} & \textbf{Database} & \textbf{Email} & \textbf{Phone} & \textbf{User Name} & \textbf{Person Name} & \textbf{Postal Address} & \textbf{Total PII} \\
\hline
\multirow{3}{*}{A1} & \multirow{3}{*}{WhatsApp} & commerce.db & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\cline{3-9}
& & msgstore.db & 0 & 7 & 2 & 22 & 0 & \textbf{31} \\
\cline{3-9}
& & wa.db & 0 & 16 & 0 & 10 & 0 & \textbf{26} \\
\hline
\multirow{3}{*}{A2} & \multirow{3}{*}{Snapchat} & core.db & 0 & 1 & 12 & 1 & 0 & \textbf{14} \\
\cline{3-9}
& & journal.db & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\cline{3-9}
& & main.db & 1 & 13 & 0 & 12 & 0 & \textbf{26} \\
\hline
\multirow{3}{*}{A3} & \multirow{3}{*}{Telegram} & account1cache4.db & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\cline{3-9}
& & account2cache4.db & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\cline{3-9}
& & account3cache4.db & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\hline
\multirow{3}{*}{A4} & \multirow{3}{*}{\begin{tabular}[c]{@{}l@{}}Google \\Maps\end{tabular}} & gmm\_myplaces.db & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\cline{3-9}
& & gmm\_storage.db & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\cline{3-9}
& & peopleCache\_sh....db & 2 & 0 & 2 & 0 & 0 & \textbf{4} \\
\hline
\multirow{3}{*}{A5} & \multirow{3}{*}{\begin{tabular}[c]{@{}l@{}}Samsung \\Internet\end{tabular}} & SBrowser.db & 1 & 0 & 4 & 0 & 0 & \textbf{5} \\
\cline{3-9}
& & SBrowser2.db & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\cline{3-9}
& & searchengine.db & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\hline
\multirow{3}{*}{I1} & \multirow{3}{*}{WhatsApp} & CallHistory.sqlite & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\cline{3-9}
& & ChatStorage.sqlite & 0 & 0 & 0 & 14 & 2 & \textbf{16} \\
\cline{3-9}
& & ContactsV2.sqlite & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\hline
\multirow{2}{*}{I2} & \multirow{2}{*}{Contacts} & AddressBook.sqlitedb & 6 & 1012 & 0 & 865 & 0 & \textbf{1883} \\
\cline{3-9}
& & AddressB....sqlitedb & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\hline
\multirow{1}{*}{I3} & \multirow{1}{*}{\begin{tabular}[c]{@{}l@{}}Apple \\Messages\end{tabular}} & sms.db & 1 & 20 & 2 & 10 & 0 & \textbf{33} \\
\hline
\multirow{2}{*}{I4} & \multirow{2}{*}{Safari} & CloudTabs.db & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\cline{3-9}
& & History.db & 0 & 0 & 63 & 0 & 0 & \textbf{63} \\
\hline
\multirow{2}{*}{I5} & \multirow{2}{*}{Calendar} & Calendar.sqlitedb & 1 & 0 & 0 & 0 & 0 & \textbf{1} \\
\cline{3-9}
& & Extras.db & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
\hline
\end{tabular}
\end{table*}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,31 @@
\begin{table}[th]
\centering
\caption{Search space reduction during row-level PII extraction.}
\label{tab:search_space_reduction}
\small
\begin{tabular}{|l|l|p{1.3cm}|p{1.7cm}|p{1.0cm}|}
\hline
\textbf{ID} & \textbf{Apps} & \textbf{Candidate Cols (Total)} & \textbf{Cols Scanned (Extraction)} & \textbf{Reduc. (\%)} \\
\hline
A1 & WhatsApp & 1637 & 14 & 99.14\% \\
\hline
A2 & Snapchat & 848 & 2 & 99.76\% \\
\hline
A3 & Telegram & 1197 & 0 & 100.00\% \\
\hline
A4 & Google Maps & 80 & 2 & 97.50\% \\
\hline
A5 & Samsung Internet & 185 & 11 & 94.05\% \\
\hline
I1 & WhatsApp & 328 & 6 & 98.17\% \\
\hline
I2 & Contacts & 13 & 13 & 0.00\% \\
\hline
I3 & Apple Messages & 186 & 0 & 100.00\% \\
\hline
I4 & Safari & 74 & 7 & 90.54\% \\
\hline
I5 & Calendar & 541 & 0 & 100.00\% \\
\hline
\end{tabular}
\end{table}

View File

@@ -0,0 +1,166 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "2c488f9e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[WARN] ..\\..\\selectedDBs\\I2_AddressBook.sqlitedb: unknown tokenizer: ab_cf_tokenizer\n",
"Wrote: I:\\project2026\\llmagent\\RQs\\RQ2\\app_total_columns.csv\n"
]
}
],
"source": [
"import sqlite3\n",
"from pathlib import Path\n",
"from collections import defaultdict, OrderedDict\n",
"from typing import Dict, Iterable, Optional, Tuple\n",
"\n",
"APP_NAME_PLAIN = OrderedDict([\n",
" (\"A1\", \"WhatsApp\"),\n",
" (\"A2\", \"Snapchat\"),\n",
" (\"A3\", \"Telegram\"),\n",
" (\"A4\", \"Google Maps\"),\n",
" (\"A5\", \"Samsung Internet\"),\n",
" (\"I1\", \"WhatsApp\"),\n",
" (\"I2\", \"Contacts\"),\n",
" (\"I3\", \"Apple Messages\"),\n",
" (\"I4\", \"Safari\"),\n",
" (\"I5\", \"Calendar\"),\n",
"])\n",
"\n",
"PATTERNS = (\"*.db\", \"*.sqlite\", \"*.sqlitedb\", \"*.sqlite3\")\n",
"\n",
"\n",
"def get_app_code_from_filename(db_file: Path) -> str:\n",
" stem = db_file.stem\n",
" if \"_\" in stem:\n",
" return stem.split(\"_\", 1)[0]\n",
" if \"-\" in stem:\n",
" return stem.split(\"-\", 1)[0]\n",
" return stem\n",
"\n",
"\n",
"def count_columns_in_db(db_path: Path) -> int:\n",
" conn: Optional[sqlite3.Connection] = None\n",
" total_cols = 0\n",
" try:\n",
" conn = sqlite3.connect(str(db_path))\n",
" cur = conn.cursor()\n",
"\n",
" cur.execute(\"SELECT name FROM sqlite_master WHERE type='table';\")\n",
" tables = [row[0] for row in cur.fetchall()]\n",
"\n",
" for table_name in tables:\n",
" cur.execute(f\"PRAGMA table_info('{table_name}');\")\n",
" total_cols += len(cur.fetchall())\n",
"\n",
" except sqlite3.Error as e:\n",
" print(f\"[WARN] {db_path}: {e}\")\n",
" return 0\n",
"\n",
" finally:\n",
" if conn is not None:\n",
" conn.close()\n",
"\n",
" return total_cols\n",
"\n",
"\n",
"def iter_db_files(in_dir: Path, patterns: Iterable[str]) -> Iterable[Path]:\n",
" seen = set()\n",
" for pat in patterns:\n",
" for fp in in_dir.glob(pat):\n",
" p = fp.resolve()\n",
" if p in seen:\n",
" continue\n",
" seen.add(p)\n",
" yield fp\n",
"\n",
"\n",
"def write_app_column_totals(\n",
" in_dir: str | Path,\n",
" out_csv: str | Path,\n",
" patterns: Tuple[str, ...] = PATTERNS,\n",
") -> Path:\n",
" \"\"\"\n",
" Writes a CSV with strict columns (easy to parse later):\n",
"\n",
" app_code,app_name,total_columns\n",
"\n",
" Notes:\n",
" - app_name is quoted if it contains commas/quotes.\n",
" - total_columns is an integer.\n",
" \"\"\"\n",
" in_dir = Path(in_dir)\n",
" out_csv = Path(out_csv)\n",
" out_csv.parent.mkdir(parents=True, exist_ok=True)\n",
"\n",
" if not in_dir.exists():\n",
" raise FileNotFoundError(f\"Input folder not found: {in_dir.resolve()}\")\n",
"\n",
" totals_by_app: Dict[str, int] = defaultdict(int)\n",
"\n",
" files = list(iter_db_files(in_dir, patterns))\n",
" if not files:\n",
" out_csv.write_text(\"app_code,app_name,total_columns\\n\", encoding=\"utf-8\")\n",
" return out_csv\n",
"\n",
" for fp in sorted(files):\n",
" app_code = get_app_code_from_filename(fp)\n",
" totals_by_app[app_code] += count_columns_in_db(fp)\n",
"\n",
" app_order = list(APP_NAME_PLAIN.keys()) + [a for a in sorted(totals_by_app.keys()) if a not in APP_NAME_PLAIN]\n",
"\n",
" def csv_escape(s: str) -> str:\n",
" # Minimal CSV escaping: wrap in quotes if needed\n",
" if any(ch in s for ch in [\",\", '\"', \"\\n\", \"\\r\"]):\n",
" return '\"' + s.replace('\"', '\"\"') + '\"'\n",
" return s\n",
"\n",
" lines = [\"app_code,app_name,total_columns\"]\n",
" for app_code in app_order:\n",
" if app_code not in totals_by_app:\n",
" continue\n",
" app_name = APP_NAME_PLAIN.get(app_code, app_code)\n",
" lines.append(f\"{csv_escape(app_code)},{csv_escape(app_name)},{totals_by_app[app_code]}\")\n",
"\n",
" out_csv.write_text(\"\\n\".join(lines) + \"\\n\", encoding=\"utf-8\")\n",
" return out_csv\n",
"\n",
"\n",
"if __name__ == \"__main__\":\n",
" IN_DIR = Path(r\"..\\..\\selectedDBs\") # change to your folder\n",
" OUT_CSV = Path(\"app_total_columns.csv\")\n",
"\n",
" out = write_app_column_totals(IN_DIR, OUT_CSV, patterns=PATTERNS)\n",
" print(f\"Wrote: {out.resolve()}\")\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.18"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 2,
"id": "234eed3f",
"metadata": {},
"outputs": [
@@ -10,8 +10,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Wrote: I:\\project2026\\llmagent\\RQs\\RQ3\\RQ3_app_level_gpt4o.jsonl\n",
"Wrote: I:\\project2026\\llmagent\\RQs\\RQ3\\RQ3_app_level_ground_truth.jsonl\n"
"Wrote: I:\\project2026\\llmagent\\RQs\\RQ2\\RQ2_app_level_gpt4o.jsonl\n",
"Wrote: I:\\project2026\\llmagent\\RQs\\RQ2\\RQ2_app_level_ground_truth.jsonl\n"
]
}
],
@@ -186,7 +186,7 @@
" OUT_DIR = Path(r\".\") # pick whatever folder you want\n",
" OUT_DIR.mkdir(parents=True, exist_ok=True)\n",
"\n",
" out_path = OUT_DIR / \"RQ3_app_level_gpt4o.jsonl\"\n",
" out_path = OUT_DIR / \"RQ2_app_level_gpt4o.jsonl\"\n",
"\n",
" out = aggregate_jsonl_folder(IN_DIR, out_path)\n",
" print(f\"Wrote: {out.resolve()}\")\n",
@@ -197,7 +197,7 @@
" OUT_DIR = Path(r\".\") # pick whatever folder you want\n",
" OUT_DIR.mkdir(parents=True, exist_ok=True)\n",
"\n",
" out_path = OUT_DIR / \"RQ3_app_level_ground_truth.jsonl\"\n",
" out_path = OUT_DIR / \"RQ2_app_level_ground_truth.jsonl\"\n",
"\n",
" out = aggregate_jsonl_folder(IN_DIR, out_path)\n",
" print(f\"Wrote: {out.resolve()}\")\n",

238
RQs/RQ2/RQ2_t6_3.ipynb Normal file
View File

@@ -0,0 +1,238 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "a30eef73",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ID Apps CandidateCols ColsScanned Reduc(%)\n",
"----------------------------------------------------------\n",
"A1 WhatsApp 1637 14 99.14%\n",
"A2 Snapchat 848 2 99.76%\n",
"A3 Telegram 1197 0 100.00%\n",
"A4 Google Maps 80 2 97.50%\n",
"A5 Samsung Internet 185 11 94.05%\n",
"I1 WhatsApp 328 6 98.17%\n",
"I2 Contacts 13 13 0.00%\n",
"I3 Apple Messages 186 0 100.00%\n",
"I4 Safari 74 7 90.54%\n",
"I5 Calendar 541 0 100.00%\n",
"\n",
"Wrote LaTeX: I:\\project2026\\llmagent\\RQs\\RQ2\\search_space_reduction_gpt4o.tex\n"
]
}
],
"source": [
"import csv\n",
"import json\n",
"from pathlib import Path\n",
"from collections import OrderedDict\n",
"from typing import Dict\n",
"\n",
"CSV_PATH = Path(r\"app_total_columns.csv\")\n",
"JSONL_PATH = Path(r\"RQ2_app_level_gpt4o.jsonl\")\n",
"OUT_TEX = Path(\"RQ2_search_space_reduction_gpt4o.tex\")\n",
"\n",
"APP_NAME_PLAIN = OrderedDict([\n",
" (\"A1\", \"WhatsApp\"),\n",
" (\"A2\", \"Snapchat\"),\n",
" (\"A3\", \"Telegram\"),\n",
" (\"A4\", \"Google Maps\"),\n",
" (\"A5\", \"Samsung Internet\"),\n",
" (\"I1\", \"WhatsApp\"),\n",
" (\"I2\", \"Contacts\"),\n",
" (\"I3\", \"Apple Messages\"),\n",
" (\"I4\", \"Safari\"),\n",
" (\"I5\", \"Calendar\"),\n",
"])\n",
"\n",
"\n",
"def get_app_code_from_db_path(db_path: str) -> str:\n",
" p = Path(db_path)\n",
" stem = p.stem\n",
" if \"_\" in stem:\n",
" return stem.split(\"_\", 1)[0]\n",
" if \"-\" in stem:\n",
" return stem.split(\"-\", 1)[0]\n",
" return stem\n",
"\n",
"\n",
"def read_candidate_totals(csv_path: Path) -> Dict[str, int]:\n",
" totals: Dict[str, int] = {}\n",
" with csv_path.open(\"r\", encoding=\"utf-8\", newline=\"\") as f:\n",
" reader = csv.DictReader(f)\n",
" for row in reader:\n",
" code = (row.get(\"app_code\") or \"\").strip()\n",
" tc = row.get(\"total_columns\")\n",
" if not code or tc is None:\n",
" continue\n",
" totals[code] = int(tc)\n",
" return totals\n",
"\n",
"\n",
"def read_scanned_cols_from_app_jsonl(jsonl_path: Path) -> Dict[str, int]:\n",
" scanned: Dict[str, int] = {}\n",
" with jsonl_path.open(\"r\", encoding=\"utf-8\") as f:\n",
" for line_no, line in enumerate(f, start=1):\n",
" line = line.strip()\n",
" if not line:\n",
" continue\n",
"\n",
" try:\n",
" rec = json.loads(line)\n",
" except json.JSONDecodeError as e:\n",
" raise ValueError(f\"Bad JSON in {jsonl_path} line {line_no}: {e}\") from e\n",
"\n",
" if not isinstance(rec, dict):\n",
" continue\n",
"\n",
" db_path = rec.get(\"db_path\", \"\")\n",
" if not isinstance(db_path, str) or not db_path:\n",
" continue\n",
"\n",
" app = get_app_code_from_db_path(db_path)\n",
"\n",
" n_scanned = rec.get(\"Num_of_source_columns\", None)\n",
" if isinstance(n_scanned, bool) or (n_scanned is not None and not isinstance(n_scanned, (int, float))):\n",
" n_scanned = None\n",
"\n",
" if n_scanned is None:\n",
" cols = rec.get(\"source_columns\", [])\n",
" n_scanned = len(cols) if isinstance(cols, list) else 0\n",
"\n",
" scanned[app] = int(n_scanned)\n",
"\n",
" return scanned\n",
"\n",
"\n",
"def format_reduction(total: int, scanned: int) -> float:\n",
" if total <= 0:\n",
" return 0.0\n",
" if scanned <= 0:\n",
" return 100.0\n",
" red = (1.0 - (scanned / total)) * 100.0\n",
" if red < 0:\n",
" red = 0.0\n",
" if red > 100:\n",
" red = 100.0\n",
" return red\n",
"\n",
"\n",
"def build_latex_table(candidate_totals: Dict[str, int], scanned_cols: Dict[str, int]) -> str:\n",
" lines = []\n",
" lines.append(r\"\\begin{table}[th]\")\n",
" lines.append(r\"\\centering\")\n",
" lines.append(r\"\\caption{Search space reduction during row-level PII extraction.}\")\n",
" lines.append(r\"\\label{tab:search_space_reduction}\")\n",
" lines.append(r\"\\small\")\n",
" lines.append(r\"\\begin{tabular}{|l|l|p{1.3cm}|p{1.7cm}|p{1.0cm}|}\")\n",
" lines.append(r\"\\hline\")\n",
" lines.append(\n",
" r\"\\textbf{ID} & \\textbf{Apps} & \"\n",
" r\"\\textbf{Candidate Cols (Total)} & \"\n",
" r\"\\textbf{Cols Scanned (Extraction)} & \"\n",
" r\"\\textbf{Reduc. (\\%)} \\\\\"\n",
" )\n",
" lines.append(r\"\\hline\")\n",
"\n",
" app_order = list(APP_NAME_PLAIN.keys())\n",
" extra = sorted((set(candidate_totals) | set(scanned_cols)) - set(app_order))\n",
" app_order += extra\n",
"\n",
" for app in app_order:\n",
" if app not in candidate_totals and app not in scanned_cols:\n",
" continue\n",
"\n",
" app_name = APP_NAME_PLAIN.get(app, app)\n",
" total = int(candidate_totals.get(app, 0))\n",
" scanned = int(scanned_cols.get(app, 0))\n",
" reduc = format_reduction(total, scanned)\n",
"\n",
" lines.append(f\"{app} & {app_name} & {total} & {scanned} & {reduc:.2f}\\\\% \\\\\\\\\")\n",
" lines.append(r\"\\hline\")\n",
"\n",
" lines.append(r\"\\end{tabular}\")\n",
" lines.append(r\"\\end{table}\")\n",
" return \"\\n\".join(lines)\n",
"\n",
"\n",
"def build_plaintext_table(candidate_totals: Dict[str, int], scanned_cols: Dict[str, int]) -> str:\n",
" headers = [\"ID\", \"Apps\", \"CandidateCols\", \"ColsScanned\", \"Reduc(%)\"]\n",
"\n",
" app_order = list(APP_NAME_PLAIN.keys())\n",
" extra = sorted((set(candidate_totals) | set(scanned_cols)) - set(app_order))\n",
" app_order += extra\n",
"\n",
" rows = [headers]\n",
" for app in app_order:\n",
" if app not in candidate_totals and app not in scanned_cols:\n",
" continue\n",
" app_name = APP_NAME_PLAIN.get(app, app)\n",
" total = int(candidate_totals.get(app, 0))\n",
" scanned = int(scanned_cols.get(app, 0))\n",
" reduc = format_reduction(total, scanned)\n",
" rows.append([app, app_name, str(total), str(scanned), f\"{reduc:.2f}%\"])\n",
"\n",
" # column widths\n",
" widths = [0] * len(headers)\n",
" for r in rows:\n",
" for i, cell in enumerate(r):\n",
" widths[i] = max(widths[i], len(cell))\n",
"\n",
" def fmt_row(r):\n",
" out = []\n",
" for i, cell in enumerate(r):\n",
" # left align text cols, right align numeric cols\n",
" if i in (0, 1):\n",
" out.append(cell.ljust(widths[i]))\n",
" else:\n",
" out.append(cell.rjust(widths[i]))\n",
" return \" \".join(out)\n",
"\n",
" lines = [fmt_row(rows[0]), \"-\" * len(fmt_row(rows[0]))]\n",
" for r in rows[1:]:\n",
" lines.append(fmt_row(r))\n",
" return \"\\n\".join(lines)\n",
"\n",
"\n",
"if __name__ == \"__main__\":\n",
" candidate_totals = read_candidate_totals(CSV_PATH)\n",
" scanned_cols = read_scanned_cols_from_app_jsonl(JSONL_PATH)\n",
"\n",
" # Write LaTeX to file\n",
" tex = build_latex_table(candidate_totals, scanned_cols)\n",
" OUT_TEX.write_text(tex, encoding=\"utf-8\")\n",
"\n",
" # Print ONLY plaintext table to screen\n",
" print(build_plaintext_table(candidate_totals, scanned_cols))\n",
" print(f\"\\nWrote LaTeX: {OUT_TEX.resolve()}\")\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.18"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@@ -0,0 +1,11 @@
app_code,app_name,total_columns
A1,WhatsApp,1637
A2,Snapchat,848
A3,Telegram,1197
A4,Google Maps,80
A5,Samsung Internet,185
I1,WhatsApp,328
I2,Contacts,13
I3,Apple Messages,186
I4,Safari,74
I5,Calendar,541
1 app_code app_name total_columns
2 A1 WhatsApp 1637
3 A2 Snapchat 848
4 A3 Telegram 1197
5 A4 Google Maps 80
6 A5 Samsung Internet 185
7 I1 WhatsApp 328
8 I2 Contacts 13
9 I3 Apple Messages 186
10 I4 Safari 74
11 I5 Calendar 541

View File

@@ -0,0 +1,118 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "346b7f2a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"==================================================\n",
"DATABASE INVENTORY: users4.db\n",
"==================================================\n",
"\n",
"TABLE: users\n",
"COLUMNS (10): user_id, first_name, last_name, email, phone, street, city, state, zip_code, created_at\n",
"--------------------------------------------------\n",
"TABLE: messages\n",
"COLUMNS (4): message_id, sender_id, content, sent_at\n",
"--------------------------------------------------\n",
"\n",
"SUMMARY:\n",
"Total Tables: 2\n",
"Total Columns: 14\n",
"==================================================\n",
"\n"
]
}
],
"source": [
"import sqlite3\n",
"\n",
"def print_database_inventory(db_path: str):\n",
" \"\"\"\n",
" Connects to a SQLite database and prints every table \n",
" along with its associated columns.\n",
" \"\"\"\n",
" try:\n",
" # 1. Connect to the database\n",
" conn = sqlite3.connect(db_path)\n",
" cur = conn.cursor()\n",
"\n",
" # 2. Get all table names\n",
" cur.execute(\"SELECT name FROM sqlite_master WHERE type='table';\")\n",
" tables = [row[0] for row in cur.fetchall()]\n",
"\n",
" print(f\"\\n{'='*50}\")\n",
" print(f\"DATABASE INVENTORY: {db_path}\")\n",
" print(f\"{'='*50}\\n\")\n",
"\n",
" total_cols = 0\n",
"\n",
" # 3. Iterate through each table to find columns\n",
" for table_name in tables:\n",
" # PRAGMA table_info returns (id, name, type, notnull, default_value, pk)\n",
" cur.execute(f\"PRAGMA table_info('{table_name}');\")\n",
" columns = cur.fetchall()\n",
" \n",
" col_names = [col[1] for col in columns]\n",
" total_cols += len(col_names)\n",
"\n",
" # 4. Print the result in a clean format\n",
" print(f\"TABLE: {table_name}\")\n",
" print(f\"COLUMNS ({len(col_names)}): {', '.join(col_names)}\")\n",
" print(\"-\" * 50)\n",
"\n",
" print(f\"\\nSUMMARY:\")\n",
" print(f\"Total Tables: {len(tables)}\")\n",
" print(f\"Total Columns: {total_cols}\")\n",
" print(f\"{'='*50}\\n\")\n",
"\n",
" except sqlite3.Error as e:\n",
" print(f\"Database error: {e}\")\n",
" finally:\n",
" if conn:\n",
" conn.close()\n",
"\n",
"# Usage:\n",
"# print_database_inventory(\"msgstore.db\")\n",
"# Example usage:\n",
"DB_PATH = r\"users4.db\"\n",
"count = print_database_inventory(DB_PATH)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6f200703",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.18"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

File diff suppressed because one or more lines are too long

View File

@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"id": "234eed3f",
"metadata": {},
"outputs": [

View File

@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 3,
"id": "234eed3f",
"metadata": {},
"outputs": [
@@ -17,7 +17,7 @@
"\\textbf{Recall} &\n",
"\\textbf{Precision} \\\\\n",
"\\hline\n",
"Email Address & 10 & 10 & 10 & 100.0\\% & 100.0\\% \\\\\n",
"Email Address & 10 & 9 & 9 & 90.0\\% & 100.0\\% \\\\\n",
"\\hline\n",
"Phone Number & 1050 & 1050 & 1050 & 100.0\\% & 100.0\\% \\\\\n",
"\\hline\n",

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A1_msgstore.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A1_msgstore.db", "PII_type": "PHONE", "PII": ["2023133725", "9106995488", "14244990541", "14359905938", "16467602090", "13346095713", "17622338037"], "Num_of_PII": 7, "source_columns": ["message.text_data", "chat.subject", "call_log.call_id", "message_text.description"], "Num_of_source_columns": 4}
{"db_path": "selectedDBs\\A1_msgstore.db", "PII_type": "USERNAME", "PII": ["wealthbuildersclub", "bitcoinmastersjiminvestmentteam", "marygarcia", "jimanderson", "btcointradingcenter"], "Num_of_PII": 5, "source_columns": ["chat.subject", "message.text_data", "message_text.description", "user_device.user_jid_row_id", "user_device_info.user_jid_row_id"], "Num_of_source_columns": 5}
{"db_path": "selectedDBs\\A1_msgstore.db", "PII_type": "PERSON_NAME", "PII": ["jim investment team", "professor jim", "jim anderson", "mary garcia", "benjamin", "lorie logan", "biden", "yellen", "ron desantis", "michael saylor", "cathy wood", "harvey jones", "gary gensler", "abbas al qattan", "jw verret"], "Num_of_PII": 15, "source_columns": ["chat.subject", "message.text_data", "message_text.description", "message_vcard.vcard"], "Num_of_source_columns": 4}
{"db_path": "selectedDBs\\A1_msgstore.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A2_core.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A2_core.db", "PII_type": "PHONE", "PII": ["18624338329"], "Num_of_PII": 1, "source_columns": ["configetag.etag", "configrule.config_id", "deltaforcesync.client_key", "preferences.key", "snapuserstore.textval", "snapchatuserproperties.textval", "android_metadata.locale"], "Num_of_source_columns": 7}
{"db_path": "selectedDBs\\A2_core.db", "PII_type": "USERNAME", "PII": ["oneil3607", "sharononeil368", "no_skin_tone", "static_image", "memories_and_camera_roll"], "Num_of_PII": 5, "source_columns": ["snapuserstore.textval", "snapchatuserproperties.textval"], "Num_of_source_columns": 2}
{"db_path": "selectedDBs\\A2_core.db", "PII_type": "PERSON_NAME", "PII": ["sharon oneil"], "Num_of_PII": 1, "source_columns": ["preferences.stringvalue", "snapuserstore.textval", "snapchatuserproperties.textval"], "Num_of_source_columns": 3}
{"db_path": "selectedDBs\\A2_core.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "EMAIL", "PII": ["copyright@snap.com"], "Num_of_PII": 1, "source_columns": ["billboardstrings.message", "combinedusername.originalusername", "contact.displayname", "notificationdata.userid", "story.userid", "suggestedfriend.userid"], "Num_of_source_columns": 6}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "PHONE", "PII": ["2065937224", "8624338328", "9199037779", "8085096467", "5713298742", "2028177932", "2025692832", "5713349815", "5715917168", "6106046786", "6263678865", "8056377243", "7423794330"], "Num_of_PII": 13, "source_columns": ["contact.phone", "contact.rawphone", "billboardstrings.stringkey", "billboardstrings.message", "friend.displayname", "feed.specifiedname", "storysnap.captiontextdisplay"], "Num_of_source_columns": 7}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "PERSON_NAME", "PII": ["abe rudder", "karen tate", "russ philby", "capt don wayne", "svetlana chernoff", "brian reynolds", "vladamir stravinsky", "ltc whalen", "goldie kahn", "joey", "mary garcia"], "Num_of_PII": 11, "source_columns": ["contact.displayname", "combinedusername.originalusername", "billboardstrings.stringkey", "friend.userid", "story.username", "storysnap.displayname", "suggestedfriend.suggestionreason"], "Num_of_source_columns": 7}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A4_peopleCache_sharononeil368@gmail.com_com.google_14.db", "PII_type": "EMAIL", "PII": ["heather@cellebrite.com", "hmahalik@gmail.com"], "Num_of_PII": 2, "source_columns": ["tokens.value", "tokens_content.c1value", "tokens_stat.value"], "Num_of_source_columns": 3}
{"db_path": "selectedDBs\\A4_peopleCache_sharononeil368@gmail.com_com.google_14.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": ["tokens.value", "tokens_content.c1value", "cacheinfo.affinity_response_context"], "Num_of_source_columns": 3}
{"db_path": "selectedDBs\\A4_peopleCache_sharononeil368@gmail.com_com.google_14.db", "PII_type": "USERNAME", "PII": ["heather", "hmahalik"], "Num_of_PII": 2, "source_columns": ["tokens.value", "tokens_content.c1value"], "Num_of_source_columns": 2}
{"db_path": "selectedDBs\\A4_peopleCache_sharononeil368@gmail.com_com.google_14.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": ["tokens.value", "tokens_content.c1value", "tokens_stat.value", "cacheinfo.affinity_response_context", "android_metadata.locale"], "Num_of_source_columns": 5}
{"db_path": "selectedDBs\\A4_peopleCache_sharononeil368@gmail.com_com.google_14.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A5_SBrowser.db", "PII_type": "EMAIL", "PII": ["sharononeil368@gmail.com"], "Num_of_PII": 1, "source_columns": ["bookmarks.account_name", "internet_sync.sync_key", "sync_state.account_name", "tabs.account_name"], "Num_of_source_columns": 4}
{"db_path": "selectedDBs\\A5_SBrowser.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A5_SBrowser.db", "PII_type": "USERNAME", "PII": ["sharononeil368", "sync_internet_data", "sync_bookmarks", "sync_open_pages", "sync_saved_pages"], "Num_of_PII": 5, "source_columns": ["bookmarks.account_name", "tabs.account_name", "sync_state.account_name", "internet_sync.sync_key"], "Num_of_source_columns": 4}
{"db_path": "selectedDBs\\A5_SBrowser.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": ["bookmarks.title", "bookmarks.account_name", "bookmarks.account_type", "sync_state.data", "tabs.tab_title", "tabs.account_name", "tabs.account_type", "internet_sync.sync_key", "internet_sync.sync_value"], "Num_of_source_columns": 9}
{"db_path": "selectedDBs\\A5_SBrowser.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A5_searchengine.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A5_searchengine.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A5_searchengine.db", "PII_type": "USERNAME", "PII": ["google", "duckduckgo", "yahoo", "youtube", "bing", "so360", "qwant", "toutiao", "startpage", "shenma", "naver", "yandex", "mailru", "seznam", "yandexru", "daum", "baidu"], "Num_of_PII": 17, "source_columns": ["android_metadata.locale", "searchengine.title", "searchengine.url", "searchengine.image_url", "searchengine.extra1", "searchengine.extra2", "searchengine.extra3"], "Num_of_source_columns": 7}
{"db_path": "selectedDBs\\A5_searchengine.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A5_searchengine.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\I1_CallHistory.sqlite", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": ["zwaaggregatecallevent.zlinktoken", "zwacdcallevent.zcallidstring", "zwacdcallevent.zgroupcallcreatoruserjidstring", "zwacdcallevent.zgroupjidstring", "zwacdcalleventparticipant.zjidstring"], "Num_of_source_columns": 5}
{"db_path": "selectedDBs\\I1_CallHistory.sqlite", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": ["zwacdcallevent.zcallidstring", "zwacdcalleventparticipant.zjidstring", "zwaaggregatecallevent.zlinktoken"], "Num_of_source_columns": 3}
{"db_path": "selectedDBs\\I1_CallHistory.sqlite", "PII_type": "USERNAME", "PII": ["19735203731", "923402582955", "14847353029", "19199037779", "waaggregatecallevent", "wacdcallevent", "wacdcalleventparticipant", "wajoinablecallevent", "wajoinablecalleventparticipant", "waupcomingcallevent"], "Num_of_PII": 10, "source_columns": ["zwaaggregatecallevent.zlinktoken", "zwacdcallevent.zcallidstring", "zwacdcallevent.zgroupcallcreatoruserjidstring", "zwacdcallevent.zgroupjidstring", "zwacdcalleventparticipant.zjidstring", "z_primarykey.z_name"], "Num_of_source_columns": 6}
{"db_path": "selectedDBs\\I1_CallHistory.sqlite", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I1_CallHistory.sqlite", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\I3_sms.db", "PII_type": "EMAIL", "PII": ["ottomatik1234@gmail.com"], "Num_of_PII": 1, "source_columns": ["message.text", "chat.account_login", "kvtable.key", "attachment.guid", "chat.display_name"], "Num_of_source_columns": 5}
{"db_path": "selectedDBs\\I3_sms.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": ["message.text", "attachment.guid", "chat.chat_identifier", "chat.account_login", "chat.display_name", "handle.person_centric_id"], "Num_of_source_columns": 6}
{"db_path": "selectedDBs\\I3_sms.db", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I3_sms.db", "PII_type": "PERSON_NAME", "PII": ["anya", "william", "eddie v", "otto", "tracy", "anna", "ronen engler", "joe church", "ella rutman doligo", "sharon oneil"], "Num_of_PII": 10, "source_columns": ["chat.display_name", "handle.id", "message.text"], "Num_of_source_columns": 3}
{"db_path": "selectedDBs\\I3_sms.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\I4_CloudTabs.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I4_CloudTabs.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I4_CloudTabs.db", "PII_type": "USERNAME", "PII": ["cellebrite", "falafelhardboiledeggisrael", "dickenscider", "bluebite", "mapat", "snackwithdairykids", "figsgrowinggreennotripen", "hersheypark", "howtochangealightbulb", "tolls", "ravensmanorexperience", "cooldryplacestorage", "haifaairport", "whats thesalestaxinnyconclothing", "canyoucopyamiibowithflipperzero", "jackalope", "ambarrestaurant", "ravensmanor", "usecrashdetectiononiphoneorapplewatch", "figstre won'tripengreen", "airtag", "catfishcops", "myfilesdownload", "serverchangetoken", "usemanateecontainer"], "Num_of_PII": 25, "source_columns": ["cloud_tab_devices.device_name", "cloud_tabs.title", "metadata.key"], "Num_of_source_columns": 3}
{"db_path": "selectedDBs\\I4_CloudTabs.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I4_CloudTabs.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\I4_History.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I4_History.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I4_History.db", "PII_type": "USERNAME", "PII": ["17ebu7rghueusrylzr6u3ccjwmmqprk28k", "a&e nails", "hersheypark hours", "hersheypark tickets"], "Num_of_PII": 4, "source_columns": ["history_event_listeners.listener_name", "history_items.url", "history_tags.identifier", "history_visits.title"], "Num_of_source_columns": 4}
{"db_path": "selectedDBs\\I4_History.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I4_History.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\A1_commerce.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A1_commerce.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A1_commerce.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A1_commerce.db", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A1_commerce.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A1_commerce.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\A1_msgstore.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["business_name"], "Num_of_source_columns": 1}

View File

@@ -1,8 +0,0 @@
{"db_path": "selectedDBs\\A1_wa.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["number"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A1_wa.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["given_name+family_name", "sort_name"], "Num_of_source_columns": 2}
{"db_path": "selectedDBs\\A1_wa.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["display_name"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A1_wa.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["number"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A1_wa.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["display_name", "wa_name"], "Num_of_source_columns": 2}
{"db_path": "selectedDBs\\A1_wa.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["given_name+family_name", "sort_name"], "Num_of_source_columns": 2}
{"db_path": "selectedDBs\\A1_wa.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["verified_name"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A1_wa.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["creator_name"], "Num_of_source_columns": 1}

View File

@@ -1,4 +0,0 @@
{"db_path": "selectedDBs\\A2_core.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["textval"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A2_core.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["textval"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A2_core.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["textval"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A2_core.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["textval"], "Num_of_source_columns": 1}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\A2_journal.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A2_journal.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A2_journal.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A2_journal.db", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A2_journal.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A2_journal.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1,10 +0,0 @@
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["encodedusername", "mutableusername", "originalusername"], "Num_of_source_columns": 3}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["phone", "rawphone"], "Num_of_source_columns": 2}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["displayname"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["displayname", "serverdisplayname", "username"], "Num_of_source_columns": 3}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["displayname"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["captiontextdisplay"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["displayname", "serverdisplayname", "username", "usernameforsorting"], "Num_of_source_columns": 4}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["displayinteractionuserusername", "frienddisplayusername"], "Num_of_source_columns": 2}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["displayinteractionuserdisplayname"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A2_main.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["frienddisplayname", "friendusername"], "Num_of_source_columns": 2}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\A3_account1cache4.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A3_account1cache4.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account1cache4.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account1cache4.db", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account1cache4.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account1cache4.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\A3_account2cache4.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A3_account2cache4.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account2cache4.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account2cache4.db", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account2cache4.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account2cache4.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\A3_account3cache4.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A3_account3cache4.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account3cache4.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account3cache4.db", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account3cache4.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A3_account3cache4.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\A4_gmm_myplaces.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A4_gmm_myplaces.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A4_gmm_myplaces.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A4_gmm_myplaces.db", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A4_gmm_myplaces.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A4_gmm_myplaces.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\A4_gmm_storage.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A4_gmm_storage.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A4_gmm_storage.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A4_gmm_storage.db", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A4_gmm_storage.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A4_gmm_storage.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1,6 +0,0 @@
{"db_path": "selectedDBs\\A4_peopleCache_sharononeil368@gmail.com_com.google_14.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["value"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A4_peopleCache_sharononeil368@gmail.com_com.google_14.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["value"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A4_peopleCache_sharononeil368@gmail.com_com.google_14.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["value"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A4_peopleCache_sharononeil368@gmail.com_com.google_14.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["c1value"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A4_peopleCache_sharononeil368@gmail.com_com.google_14.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["c1value"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A4_peopleCache_sharononeil368@gmail.com_com.google_14.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["c1value"], "Num_of_source_columns": 1}

View File

@@ -1,3 +0,0 @@
{"db_path": "selectedDBs\\A5_SBrowser.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["account_name"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A5_SBrowser.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["account_name"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\A5_SBrowser.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["account_name"], "Num_of_source_columns": 1}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\A5_SBrowser2.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\A5_SBrowser2.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A5_SBrowser2.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A5_SBrowser2.db", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A5_SBrowser2.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\A5_SBrowser2.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\A5_searchengine.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\I1_CallHistory.sqlite", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1,4 +0,0 @@
{"db_path": "selectedDBs\\I1_ChatStorage.sqlite", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["zpartnername"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I1_ChatStorage.sqlite", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["zpartnername"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I1_ChatStorage.sqlite", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["zpushname"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I1_ChatStorage.sqlite", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["zpushname"], "Num_of_source_columns": 1}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\I1_ChatStorage.sqlite", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I1_ChatStorage.sqlite", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I1_ChatStorage.sqlite", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I1_ChatStorage.sqlite", "PII_type": "PERSON_NAME", "PII": ["rick", "otto", "reynolds", "emily", "sharon", "lisena gocaj", "andy sieg", "christian justiniano", "david wilson", "robechucks raul", "abner", "nia yuniar", "william stevenson", "amit sharma"], "Num_of_PII": 14, "source_columns": ["zwamessage.ztext", "zwamessagedataitem.zcontent1", "zwaprofilepushname.zpushname"], "Num_of_source_columns": 3}
{"db_path": "selectedDBs\\I1_ChatStorage.sqlite", "PII_type": "POSTAL_ADDRESS", "PII": ["12503 e via de palmas, chandler, az", "8500 peña blvd, denver, co"], "Num_of_PII": 2, "source_columns": ["zwamessage.ztext", "zwamessagedataitem.zcontent1", "zwamessagedataitem.zcontent2"], "Num_of_source_columns": 3}

View File

@@ -1,2 +0,0 @@
{"db_path": "selectedDBs\\I1_ContactsV2.sqlite", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["zfullname"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I1_ContactsV2.sqlite", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["zphonenumber"], "Num_of_source_columns": 1}

View File

@@ -1,7 +0,0 @@
{"db_path": "selectedDBs\\I2_AddressBook.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["first+last"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I2_AddressBook.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["value"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I2_AddressBook.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["value"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I2_AddressBook.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["c17email"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I2_AddressBook.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["c0first+c1last+c2middle"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I2_AddressBook.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["value"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I2_AddressBook.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["c18address"], "Num_of_source_columns": 1}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\I2_AddressBookImages.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\I2_AddressBookImages.sqlitedb", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I2_AddressBookImages.sqlitedb", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I2_AddressBookImages.sqlitedb", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I2_AddressBookImages.sqlitedb", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I2_AddressBookImages.sqlitedb", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1,6 +0,0 @@
{"db_path": "selectedDBs\\I3_sms.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["account_login", "chat_identifier", "guid", "last_addressed_handle"], "Num_of_source_columns": 4}
{"db_path": "selectedDBs\\I3_sms.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["account_login", "chat_identifier", "guid"], "Num_of_source_columns": 3}
{"db_path": "selectedDBs\\I3_sms.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["account", "destination_caller_id"], "Num_of_source_columns": 2}
{"db_path": "selectedDBs\\I3_sms.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["account"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I3_sms.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["id", "uncanonicalized_id"], "Num_of_source_columns": 2}
{"db_path": "selectedDBs\\I3_sms.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["id"], "Num_of_source_columns": 1}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\I4_CloudTabs.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\I4_History.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1,6 +0,0 @@
{"db_path": "selectedDBs\\I5_Calendar.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["last_sync_title", "notes", "owner_identity_email", "self_identity_email", "shared_owner_address", "title"], "Num_of_source_columns": 6}
{"db_path": "selectedDBs\\I5_Calendar.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["shared_owner_name"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I5_Calendar.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["address"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I5_Calendar.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["display_name"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I5_Calendar.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["owner_name"], "Num_of_source_columns": 1}
{"db_path": "selectedDBs\\I5_Calendar.sqlitedb", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": ["cached_end_date_tz"], "Num_of_source_columns": 1}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\I5_Calendar.sqlitedb", "PII_type": "EMAIL", "PII": ["ottomatik1234@gmail.com"], "Num_of_PII": 1, "source_columns": ["alarm.email_address", "calendar.shared_owner_address", "calendar.self_identity_email", "calendar.owner_identity_email"], "Num_of_source_columns": 4}
{"db_path": "selectedDBs\\I5_Calendar.sqlitedb", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I5_Calendar.sqlitedb", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I5_Calendar.sqlitedb", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I5_Calendar.sqlitedb", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -1 +0,0 @@
{"db_path": "selectedDBs\\I5_Extras.db", "PII_type": "", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}

View File

@@ -0,0 +1,5 @@
{"db_path": "selectedDBs\\I5_Extras.db", "PII_type": "EMAIL", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I5_Extras.db", "PII_type": "PHONE", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I5_Extras.db", "PII_type": "USERNAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I5_Extras.db", "PII_type": "PERSON_NAME", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}
{"db_path": "selectedDBs\\I5_Extras.db", "PII_type": "POSTAL_ADDRESS", "PII": [], "Num_of_PII": 0, "source_columns": [], "Num_of_source_columns": 0}