From 97db31dfbe4649e4f096587584db7d05ed92b788 Mon Sep 17 00:00:00 2001 From: puffyCid Date: Tue, 30 Sep 2025 21:38:46 -0400 Subject: [PATCH 01/47] support for extracting windows wifi networks --- artemis-docs/docs/API/Artifacts/windows.md | 9 + .../docs/Artifacts/Windows Artfacts/wifi.md | 72 ++++++ .../docs/Artifacts/macOS Artifacts/wifi.md | 2 +- artemis-docs/docs/Artifacts/overview.md | 2 +- mod.ts | 1 + src/windows/errors.ts | 3 +- src/windows/registry/recently_used.ts | 1 - src/windows/registry/usb.ts | 50 ++-- src/windows/registry/wifi.ts | 218 ++++++++++++++++++ tests/test.ts | 2 +- tests/windows/usbs/main.ts | 4 + tests/windows/wifi/main.ts | 21 ++ types/windows/registry/wifi.ts | 36 +++ 13 files changed, 395 insertions(+), 26 deletions(-) create mode 100644 artemis-docs/docs/Artifacts/Windows Artfacts/wifi.md create mode 100644 src/windows/registry/wifi.ts create mode 100644 tests/windows/wifi/main.ts create mode 100644 types/windows/registry/wifi.ts diff --git a/artemis-docs/docs/API/Artifacts/windows.md b/artemis-docs/docs/API/Artifacts/windows.md index 65e8d6f8..62730201 100644 --- a/artemis-docs/docs/API/Artifacts/windows.md +++ b/artemis-docs/docs/API/Artifacts/windows.md @@ -593,6 +593,15 @@ You may provide an optional alternative SYSTEM file. Parses the Windows Security.evtx file and attempts to construct process trees for 4688 events. You may provided an optional alternative path to Security.evtx. +| Param | Type | Description | +| ----- | ------ | ------------------------------------------ | +| path | string | Optional alternative path to Security.evtx | + +#### wifiNetworksWindows(path) -> Wifi[] | WindowsError + +Parses the Windows SOFTWARE Registry file and attempts extract WiFi networks connected to. +You may provided an optional alternative path to the SOFTWARE Registry file. + | Param | Type | Description | | ----- | ------ | ------------------------------------------ | | path | string | Optional alternative path to Security.evtx | \ No newline at end of file diff --git a/artemis-docs/docs/Artifacts/Windows Artfacts/wifi.md b/artemis-docs/docs/Artifacts/Windows Artfacts/wifi.md new file mode 100644 index 00000000..629a3dea --- /dev/null +++ b/artemis-docs/docs/Artifacts/Windows Artfacts/wifi.md @@ -0,0 +1,72 @@ +--- +description: Windows WiFi connections +keywords: + - windows + - registry +--- + +# WiFi + +Artemis supports extracting WiFi access points that the Windows system has connected +to. By default it will try to parse WiFi networks at SOFTWARE Registry file. + +# Collection + +You have to use the artemis [api](../../API/overview.md) in order to get WiFi +network. + +# Sample API Script + +```typescript +import { wifiNetworksWindows } from "./artemis-api/mod"; + +function main() { + const results = wifiNetworksWindows(); + console.log(JSON.stringify(results)); +} + +main(); +``` + +# Output Structure + +An array of `Wifi` + +```typescript +export interface Wifi { + name: string; + description: string; + managed: boolean; + category: WifiCategory; + created_local_time: string; + name_type: NameType; + id: string; + last_connected_local_time: string; + registry_path: string; + registry_file: string; + message: string; + datetime: string; + timestamp_desc: "Registry Key Modified"; + artifact: "WiFi Network"; + data_type: "windows:registry:wifi:entry"; +} + +export enum WifiCategory { + Public = "Public", + Private = "Private", + Domain = "Domain", + Unknown = "Unknown", +} + +/** + * From: https://community.spiceworks.com/t/what-are-the-nametype-values-for-the-networklist-registry-keys/526112/6 + */ +export enum NameType { + Wired = "Wired", + Vpn = "VPN", + Wireless = "Wireless", + Mobile = "Mobile", + Unknown = "Unknown", + +} +``` diff --git a/artemis-docs/docs/Artifacts/macOS Artifacts/wifi.md b/artemis-docs/docs/Artifacts/macOS Artifacts/wifi.md index d7212e9a..9d181156 100644 --- a/artemis-docs/docs/Artifacts/macOS Artifacts/wifi.md +++ b/artemis-docs/docs/Artifacts/macOS Artifacts/wifi.md @@ -7,7 +7,7 @@ keywords: # WiFi -Artemis supports extract WiFi access points that the macOS system has connected +Artemis supports extracting WiFi access points that the macOS system has connected to. By default it will try to parse WiFi networks at /Library/Preferences/com.apple.wifi.known-networks.plist. diff --git a/artemis-docs/docs/Artifacts/overview.md b/artemis-docs/docs/Artifacts/overview.md index 666bd978..c99ccaef 100644 --- a/artemis-docs/docs/Artifacts/overview.md +++ b/artemis-docs/docs/Artifacts/overview.md @@ -18,7 +18,7 @@ A breakdown of artifacts by OS is below. | OS | Number of Artifacts | | --------------------------------- | ------------------- | -| [Windows](./windows.md) | 42 | +| [Windows](./windows.md) | 43 | | [macOS](./macos.md) | 43 | | [Linux](./linux.md) | 23 | | [FreeBSD](./freebsd.md) | 8 | diff --git a/mod.ts b/mod.ts index 4eb375be..f5eb7295 100644 --- a/mod.ts +++ b/mod.ts @@ -140,6 +140,7 @@ export { Outlook } from "./src/windows/outlook"; export { assembleScriptblocks } from "./src/windows/eventlogs/scriptblocks"; export { firewallRules } from "./src/windows/registry/firewall_rules"; export { processTreeEventLogs } from "./src/windows/eventlogs/processtree"; +export { wifiNetworksWindows } from "./src/windows/registry/wifi"; /** * FreeBSD diff --git a/src/windows/errors.ts b/src/windows/errors.ts index 49698bde..1e9897a5 100644 --- a/src/windows/errors.ts +++ b/src/windows/errors.ts @@ -38,6 +38,7 @@ export type ErrorName = | "BAM" | "SCRIPTBLOCK" | "FIREWALL_RULES" - | "EVENTLOG_PROCESSTREE"; + | "EVENTLOG_PROCESSTREE" + | "WIFI"; export class WindowsError extends ErrorBase {} diff --git a/src/windows/registry/recently_used.ts b/src/windows/registry/recently_used.ts index 82cceedc..4566603f 100644 --- a/src/windows/registry/recently_used.ts +++ b/src/windows/registry/recently_used.ts @@ -196,5 +196,4 @@ export function testParseMru(): void { } console.info(` Function assembleMru ✅`); - } \ No newline at end of file diff --git a/src/windows/registry/usb.ts b/src/windows/registry/usb.ts index 16b9c20e..4b781883 100644 --- a/src/windows/registry/usb.ts +++ b/src/windows/registry/usb.ts @@ -59,13 +59,17 @@ function usbSystem(path: string): UsbDevices[] | WindowsError { } for (let i = 0; i < usbs.length; i++) { + const usb_info = usbs[i]; + if(usb_info === undefined) { + continue; + } for (const reg of reg_data) { - if (reg.path.includes(usbs[ i ].tracking_id) && "Partmg") { + if (reg.path.includes(usb_info.tracking_id) && "Partmg") { for (const value of reg.values) { - if (value.value !== "DiskId" || usbs[ i ].disk_id !== "") { + if (value.value !== "DiskId" ||usb_info.disk_id !== "") { continue; } - usbs[ i ].disk_id = value.data.replace("{", "").replace("}", ""); + usb_info.disk_id = value.data.replace("{", "").replace("}", ""); } } else if (reg.path.includes(mounts) && reg.values.length !== 0) { for (const value of reg.values) { @@ -75,50 +79,50 @@ function usbSystem(path: string): UsbDevices[] | WindowsError { } const value_string = extractUtf16String(data); if ( - value_string.includes(usbs[ i ].tracking_id) && + value_string.includes(usb_info.tracking_id) && value.value.includes(":") ) { - usbs[ i ].drive_letter = value.value.split("\\").pop() as string; + usb_info.drive_letter = value.value.split("\\").pop() as string; } } } if ( - reg.path.includes(usbs[ i ].tracking_id) && + reg.path.includes(usb_info.tracking_id) && reg.path.includes("\\USBSTOR\\") && reg.name === "0064" ) { for (const value of reg.values) { - usbs[ i ].first_install = unixEpochToISO( + usb_info.first_install = unixEpochToISO( filetimeToUnixEpoch(BigInt(value.data)), ); } } else if ( - reg.path.includes(usbs[ i ].tracking_id) && + reg.path.includes(usb_info.tracking_id) && reg.path.includes("\\USBSTOR\\") && reg.name === "0065" ) { for (const value of reg.values) { - usbs[ i ].install = unixEpochToISO( + usb_info.install = unixEpochToISO( filetimeToUnixEpoch(BigInt(value.data)), ); } } else if ( - reg.path.includes(usbs[ i ].tracking_id) && + reg.path.includes(usb_info.tracking_id) && reg.path.includes("\\USBSTOR\\") && reg.name === "0066" ) { for (const value of reg.values) { - usbs[ i ].last_connected = unixEpochToISO( + usb_info.last_connected = unixEpochToISO( filetimeToUnixEpoch(BigInt(value.data)), ); } } else if ( - reg.path.includes(usbs[ i ].tracking_id) && + reg.path.includes(usb_info.tracking_id) && reg.path.includes("\\USBSTOR\\") && reg.name === "0067" ) { for (const value of reg.values) { - usbs[ i ].last_removal = unixEpochToISO( + usb_info.last_removal = unixEpochToISO( filetimeToUnixEpoch(BigInt(value.data)), ); } @@ -154,25 +158,29 @@ function usbStor(data: Registry): UsbDevices { const info = (data.key.split("\\").pop() as string).split("&"); for (let i = 0; i < info.length; i++) { + const value = info[i]; + if(value === undefined) { + continue; + } if (i === 0) { - entry.usb_type = info[ i ]; + entry.usb_type = value; } - if (info[ i ].includes("Ven_")) { - entry.vendor = info[ i ].slice(4); + if (value.includes("Ven_")) { + entry.vendor = value.slice(4); } - if (info[ i ].includes("Prod_")) { - entry.product = info[ i ].slice(5); + if (value.includes("Prod_")) { + entry.product = value.slice(5); } - if (info[ i ].includes("Rev_")) { - entry.revision = info[ i ].slice(4); + if (value.includes("Rev_")) { + entry.revision = value.slice(4); } } if (data.name.at(1) !== undefined && data.name.at(1) !== "&") { - entry.tracking_id = data.name.split("&")[ 0 ]; + entry.tracking_id = data.name.split("&")[ 0 ] ?? ""; } for (const value of data.values) { diff --git a/src/windows/registry/wifi.ts b/src/windows/registry/wifi.ts new file mode 100644 index 00000000..9aee83a0 --- /dev/null +++ b/src/windows/registry/wifi.ts @@ -0,0 +1,218 @@ +import { Registry } from "../../../types/windows/registry"; +import { NameType, Wifi, WifiCategory } from "../../../types/windows/registry/wifi"; +import { decode } from "../../encoding/base64"; +import { EncodingError } from "../../encoding/errors"; +import { getEnvValue } from "../../environment/mod"; +import { NomError } from "../../nom/error"; +import { Endian, nomUnsignedTwoBytes } from "../../nom/helpers"; +import { WindowsError } from "../errors"; +import { getRegistry } from "../registry"; + +/** + * Function to list connected Windows WiFi networks + * @param alt_path Optional alternative path to the `SOFTWARE` Registry file + * @returns Array of `Wifi` entries or `WindowsError` + */ +export function wifiNetworksWindows(alt_path?: string): Wifi[] | WindowsError { + let path = "\\Windows\\System32\\config\\SOFTWARE"; + if (alt_path !== undefined) { + path = alt_path; + } else { + let drive = getEnvValue("SystemDrive"); + if (drive === "") { + drive = "C:"; + } + path = `${drive}${path}`; + } + + const reg_entries = getRegistry(path); + if (reg_entries instanceof WindowsError) { + return new WindowsError(`WIFI`, `could not parse the SOFTWARE Registry file ${reg_entries}`); + } + + const profiles: Registry[] = []; + for (const entry of reg_entries) { + if (!entry.path.toLowerCase().includes("\\currentversion\\networklist\\profiles\\{")) { + continue; + } + + profiles.push(entry); + } + + const networks: Wifi[] = []; + for (const entry of profiles) { + const net: Wifi = { + name: "", + description: "", + managed: false, + category: WifiCategory.Unknown, + created_local_time: "", + name_type: NameType.Unknown, + id: entry.name.replace("{", "").replace("}", ""), + last_connected_local_time: "", + registry_path: entry.path, + registry_file: path, + message: "", + datetime: entry.last_modified, + timestamp_desc: "Registry Key Modified", + artifact: "WiFi Network", + data_type: "windows:registry:wifi:entry" + }; + + for (const value of entry.values) { + if (value.value.toLowerCase() === "profilename") { + net.name = value.data; + } else if (value.value.toLowerCase() === "description") { + net.description = value.data; + net.message = `WiFi network '${value.data}'`; + } else if (value.value.toLowerCase() === "managed") { + net.managed = Boolean(Number(value.data)); + } else if (value.value.toLowerCase() === "category") { + switch (value.data) { + case "0": { + net.category = WifiCategory.Public; + break; + } + case "1": { + net.category = WifiCategory.Private; + break; + } + case "2": { + net.category = WifiCategory.Domain; + break; + } + default: net.category = WifiCategory.Unknown; + } + } else if (value.value.toLowerCase() === "datecreated") { + const bytes = decode(value.data); + if (bytes instanceof EncodingError) { + continue; + } + const time_value = decodeTime(bytes); + if (time_value instanceof NomError) { + continue; + } + net.created_local_time = time_value; + } else if (value.value.toLowerCase() === "nametype") { + switch (value.data) { + case "6": { + net.name_type = NameType.Wired; + break; + } + case "23": { + net.name_type = NameType.Vpn; + break; + } + case "71": { + net.name_type = NameType.Wireless; + break; + } + case "243": { + net.name_type = NameType.Mobile; + break; + } + default: net.name_type = NameType.Unknown; + } + } else if (value.value.toLowerCase() === "datelastconnected") { + const bytes = decode(value.data); + if (bytes instanceof EncodingError) { + continue; + } + const time_value = decodeTime(bytes); + if (time_value instanceof NomError) { + continue; + } + net.last_connected_local_time = time_value; + } + } + networks.push(net); + } + + return networks; +} + +/** + * Function to convert Network time bytes to proper timestamp. + * It uses a weird format: https://superuser.com/questions/1572038/ms-regedit-hex-to-date-conversion + * @param bytes Timestamp bytes + * @returns Timestamp or `NomError` + */ +function decodeTime(bytes: Uint8Array): string | NomError { + let input = nomUnsignedTwoBytes(bytes, Endian.Le); + if (input instanceof NomError) { + return input; + } + + const year = input.value; + input = nomUnsignedTwoBytes(input.remaining, Endian.Le); + if (input instanceof NomError) { + return input; + } + let month: number | string = input.value; + if (month < 10) { + month = `0${month}`; + } + + // Day of week (ex: Thursday) + input = nomUnsignedTwoBytes(input.remaining, Endian.Le); + if (input instanceof NomError) { + return input; + } + + input = nomUnsignedTwoBytes(input.remaining, Endian.Le); + if (input instanceof NomError) { + return input; + } + let day: number | string = input.value; + if (day < 10) { + day = `0${day}`; + } + + input = nomUnsignedTwoBytes(input.remaining, Endian.Le); + if (input instanceof NomError) { + return input; + } + let hour: number | string = input.value; + if (hour < 10) { + hour = `0${hour}`; + } + + input = nomUnsignedTwoBytes(input.remaining, Endian.Le); + if (input instanceof NomError) { + return input; + } + let mins: number | string = input.value; + if (mins < 10) { + mins = `0${mins}`; + } + + input = nomUnsignedTwoBytes(input.remaining, Endian.Le); + if (input instanceof NomError) { + return input; + } + let seconds: number | string = input.value; + if (seconds < 10) { + seconds = `0${seconds}`; + } + + return `${year}-${month}-${day}T${hour}:${mins}:${seconds}`; +} + +/** + * Function to test Windows WiFi parsing + * This function should not be called unless you are developing the artemis-api + * Or want to validate the Windows WiFi parsing + */ +export function testWindowsWifiNetworks(): void { + const test = new Uint8Array([233, 7, 7, 0, 4, 0, 10, 0, 1, 0, 10, 0, 43, 0, 94, 3]); + const results = decodeTime(test); + if (results instanceof NomError) { + throw results; + } + + if (results !== "2025-07-10T01:10:43") { + throw `Got ${results} expected "2025-07-10T01:10:43".......decodeTime ❌` + } + console.info(` Function decodeTime ✅`); + +} \ No newline at end of file diff --git a/tests/test.ts b/tests/test.ts index dcc6b66e..b4b50dfa 100644 --- a/tests/test.ts +++ b/tests/test.ts @@ -21,7 +21,7 @@ export { testFirmwareHistory } from "../src/linux/firmware"; export { testPowerShellHistory } from "../src/windows/powershell"; export { testLogonsWindows } from "../src/windows/eventlogs/logons"; export { testParseMru } from "../src/windows/registry/recently_used"; - +export { testWindowsWifiNetworks } from "../src/windows/registry/wifi"; /** * macOS exported test functions */ diff --git a/tests/windows/usbs/main.ts b/tests/windows/usbs/main.ts index afc9bf81..3ed63bb1 100644 --- a/tests/windows/usbs/main.ts +++ b/tests/windows/usbs/main.ts @@ -2,11 +2,15 @@ import { listUsbDevices } from "../../../mod"; import { WindowsError } from "../../../src/windows/errors"; function main() { + console.log('Running Windows USB devices tests....'); + console.log(' Starting live test....'); const results = listUsbDevices(); if (results instanceof WindowsError) { throw results; } + console.log(' Live test passed! 🥳\n'); + console.log('All Windows USB devices tests passed! 🥳💃🕺'); } main(); diff --git a/tests/windows/wifi/main.ts b/tests/windows/wifi/main.ts new file mode 100644 index 00000000..7c8c42da --- /dev/null +++ b/tests/windows/wifi/main.ts @@ -0,0 +1,21 @@ +import { wifiNetworksWindows } from "../../../mod"; +import { WindowsError } from "../../../src/windows/errors"; +import { testWindowsWifiNetworks } from "../../test"; + +function main() { + console.log('Running Windows WiFi networks tests....'); + console.log(' Starting live test....'); + const results = wifiNetworksWindows(); + + if (results instanceof WindowsError) { + throw results; + } + + console.log(' Live test passed! 🥳\n'); + console.log(' Starting Windows Wifi network test....'); + testWindowsWifiNetworks(); + + console.log('All Windows WiFi networks tests passed! 🥳💃🕺'); +} + +main(); diff --git a/types/windows/registry/wifi.ts b/types/windows/registry/wifi.ts new file mode 100644 index 00000000..81762ce7 --- /dev/null +++ b/types/windows/registry/wifi.ts @@ -0,0 +1,36 @@ +export interface Wifi { + name: string; + description: string; + managed: boolean; + category: WifiCategory; + created_local_time: string; + name_type: NameType; + id: string; + last_connected_local_time: string; + registry_path: string; + registry_file: string; + message: string; + datetime: string; + timestamp_desc: "Registry Key Modified"; + artifact: "WiFi Network"; + data_type: "windows:registry:wifi:entry"; +} + +export enum WifiCategory { + Public = "Public", + Private = "Private", + Domain = "Domain", + Unknown = "Unknown", +} + +/** + * From: https://community.spiceworks.com/t/what-are-the-nametype-values-for-the-networklist-registry-keys/526112/6 + */ +export enum NameType { + Wired = "Wired", + Vpn = "VPN", + Wireless = "Wireless", + Mobile = "Mobile", + Unknown = "Unknown", + +} \ No newline at end of file From 13ed9d7fb2cc967ef76c0f6d36ffde78d02cdc86 Mon Sep 17 00:00:00 2001 From: puffycid Date: Wed, 1 Oct 2025 00:59:04 -0400 Subject: [PATCH 02/47] timelining updates --- .../docs/Artifacts/Linux Artifacts/abrt.md | 5 +++ .../docs/Artifacts/Linux Artifacts/rpm.md | 10 +++-- src/linux/abrt.ts | 9 ++++- src/linux/rpm.ts | 7 ++++ src/macos/plist/policies.ts | 2 +- src/macos/plist/system_extensions.ts | 4 +- src/timesketch/artifacts/linux/abrt.ts | 26 ------------ src/timesketch/artifacts/linux/rpm.ts | 26 ------------ src/timesketch/timeline.ts | 8 ---- src/windows/eventlogs/logons.ts | 40 +++++++++++-------- src/windows/sqlite/updates.ts | 2 +- types/linux/abrt.ts | 5 +++ types/linux/rpm.ts | 5 +++ 13 files changed, 65 insertions(+), 84 deletions(-) delete mode 100644 src/timesketch/artifacts/linux/abrt.ts delete mode 100644 src/timesketch/artifacts/linux/rpm.ts diff --git a/artemis-docs/docs/Artifacts/Linux Artifacts/abrt.md b/artemis-docs/docs/Artifacts/Linux Artifacts/abrt.md index 1e51e541..47fea832 100644 --- a/artemis-docs/docs/Artifacts/Linux Artifacts/abrt.md +++ b/artemis-docs/docs/Artifacts/Linux Artifacts/abrt.md @@ -45,5 +45,10 @@ export interface Abrt { backtrace: string | Record; environment: string; home: string; + message: string; + datetime: string; + timestamp_desc: "Abrt Last Occurrence"; + artifact: "Abrt"; + data_type: "linux:abrt:entry"; } ``` diff --git a/artemis-docs/docs/Artifacts/Linux Artifacts/rpm.md b/artemis-docs/docs/Artifacts/Linux Artifacts/rpm.md index 6253d2b2..cd0a814c 100644 --- a/artemis-docs/docs/Artifacts/Linux Artifacts/rpm.md +++ b/artemis-docs/docs/Artifacts/Linux Artifacts/rpm.md @@ -38,8 +38,7 @@ function main() { let offset = 0; const limit = 100; - let count = 1; - while (count !== 0) { + while (true) { const status = getRpmInfo(offset, limit); if (status instanceof LinuxError) { break; @@ -49,7 +48,6 @@ function main() { } offset += limit; - count = status.length; console.log(JSON.stringify(status)); } } @@ -75,5 +73,11 @@ export interface RpmPackages { package_group: string; summary: string; url: string; + message: string; + datetime: string; + timestamp_desc: "RPM Package Installed"; + artifact: "RPM Package"; + data_type: "linux:rpm:entry"; } + ``` diff --git a/src/linux/abrt.ts b/src/linux/abrt.ts index 5a7e9370..719653f8 100644 --- a/src/linux/abrt.ts +++ b/src/linux/abrt.ts @@ -65,7 +65,12 @@ async function readAbrtDir(path: string): Promise { data_directory: path, backtrace: "", environment: "", - home: "" + home: "", + message: "", + datetime: "", + timestamp_desc: "Abrt Last Occurrence", + artifact: "Abrt", + data_type: "linux:abrt:entry" }; for (const entry of entries) { if (!entry.is_file) { @@ -75,6 +80,7 @@ async function readAbrtDir(path: string): Promise { switch (entry.filename) { case "executable": { abrt_entry.executable = readLine(entry.full_path); + abrt_entry.message = `${abrt_entry.executable} crashed`; break; } case "cmdline": { @@ -103,6 +109,7 @@ async function readAbrtDir(path: string): Promise { } case "last_occurrence": { abrt_entry.last_occurrence = unixEpochToISO(Number(readLine(entry.full_path))); + abrt_entry.datetime = abrt_entry.last_occurrence; break; } case "backtrace": { diff --git a/src/linux/rpm.ts b/src/linux/rpm.ts index 399444b9..9e3ac449 100644 --- a/src/linux/rpm.ts +++ b/src/linux/rpm.ts @@ -77,6 +77,11 @@ export function getRpmInfo( package_group: "", summary: "", url: "", + message: "", + datetime: "", + timestamp_desc: "RPM Package Installed", + artifact: "RPM Package", + data_type: "linux:rpm:entry" }; // Extract the tag values @@ -135,6 +140,8 @@ export function getRpmInfo( } } + rpm.message = `${rpm.name}-v${rpm.version} installed`; + rpm.datetime = rpm.install_time; rpm_entries.push(rpm); } diff --git a/src/macos/plist/policies.ts b/src/macos/plist/policies.ts index eda6e697..9a833a92 100644 --- a/src/macos/plist/policies.ts +++ b/src/macos/plist/policies.ts @@ -51,7 +51,7 @@ export function passwordPolicy( const pass_policy: PasswordPolicy = { policy_id: policy_entry[ "policyIdentifier" ] as string, policy_content: policy_entry[ "policyContent" ] as string, - policy_description: policy_description[ "en" ], + policy_description: policy_description[ "en" ] ?? "", }; policies.push(pass_policy); } diff --git a/src/macos/plist/system_extensions.ts b/src/macos/plist/system_extensions.ts index 1a593e53..260d8b85 100644 --- a/src/macos/plist/system_extensions.ts +++ b/src/macos/plist/system_extensions.ts @@ -37,9 +37,9 @@ export function systemExtensions( uuid: ext[ "uniqueID" ] as string, state: ext[ "state" ] as string, id: ext[ "identifier" ] as string, - version: ver[ "CFBundleVersion" ], + version: ver[ "CFBundleVersion" ] ?? "", categories: ext[ "categories" ] as string[], - bundle_path: bundle[ "bundlePath" ], + bundle_path: bundle[ "bundlePath" ] ?? "", team: ext[ "teamID" ] as string, }; exts.push(sys_ext); diff --git a/src/timesketch/artifacts/linux/abrt.ts b/src/timesketch/artifacts/linux/abrt.ts deleted file mode 100644 index bc9db142..00000000 --- a/src/timesketch/artifacts/linux/abrt.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Abrt } from "../../../../types/linux/abrt"; -import { TimesketchTimeline } from "../../../../types/timesketch/timeline"; - -/** - * Function to timeline abrt process entries - * @param data Array of `Abrt` - * @returns Array of `TimesketchTimeline` - */ -export function timelineAbrt(data: Abrt[]): TimesketchTimeline[] { - const entries: TimesketchTimeline[] = []; - for (const item of data) { - let entry: TimesketchTimeline = { - datetime: item.last_occurrence, - timestamp_desc: "Abrt Last Occurrence", - message: item.executable, - artifact: "Abrt", - data_type: "linux:abrt:entry", - }; - - entry = { ...entry, ...item }; - entries.push(entry); - - } - - return entries; -} \ No newline at end of file diff --git a/src/timesketch/artifacts/linux/rpm.ts b/src/timesketch/artifacts/linux/rpm.ts deleted file mode 100644 index 34517bd5..00000000 --- a/src/timesketch/artifacts/linux/rpm.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { RpmPackages } from "../../../../types/linux/rpm"; -import type { TimesketchTimeline } from "../../../../types/timesketch/timeline"; - -/** - * Function to timeline RPM packages - * @param data Array of `RpmPackages` - * @returns Array `TimesketchTimeline` of RPM packages - */ -export function timelineRpm(data: RpmPackages[]): TimesketchTimeline[] { - const entries = []; - for (const item of data) { - let entry: TimesketchTimeline = { - datetime: item.install_time, - timestamp_desc: "RPM Package Installed", - message: `${item.name} - Version: ${item.version} installed`, - artifact: "RPM Package", - data_type: "linux:rpm:entry", - }; - - entry = { ...entry, ...item }; - - entries.push(entry); - } - - return entries; -} diff --git a/src/timesketch/timeline.ts b/src/timesketch/timeline.ts index 1fe203de..8611bbdb 100644 --- a/src/timesketch/timeline.ts +++ b/src/timesketch/timeline.ts @@ -74,10 +74,6 @@ import { GatekeeperEntries } from "../../types/macos/sqlite/gatekeeper"; * Linux artifact timelines */ import { timelineJournals } from "./artifacts/linux/journals"; -import type { RpmPackages } from "../../types/linux/rpm"; -import { timelineAbrt } from "./artifacts/linux/abrt"; -import { Abrt } from "../../types/linux/abrt"; -import { timelineRpm } from "./artifacts/linux/rpm"; import { timelineGnomeExtensions } from "./artifacts/linux/gnome/extensions"; import { Extension } from "../../types/linux/gnome/extensions"; import { timelineGnomeVirtualFilesystem } from "./artifacts/linux/gnome/gvfs"; @@ -234,14 +230,10 @@ export function timelineArtifact( case TimesketchArtifact.CHROME_HISTORY: case TimesketchArtifact.EDGE_HISTORY: return timelineChromiumHistory(data as ChromiumHistory[], artifact); - case TimesketchArtifact.RPM: - return timelineRpm(data as RpmPackages[]); case TimesketchArtifact.VSCODE_FILEHISTORY: return timelineFileHistory(data as FileHistory[]); case TimesketchArtifact.LIBREOFFICE_RECENTFILES: return timelineRecentFiles(data as RecentFilesLibreOffice[]); - case TimesketchArtifact.ABRT: - return timelineAbrt(data as Abrt[]); case TimesketchArtifact.GNOME_EXTENSIONS: return timelineGnomeExtensions(data as Extension[]); case TimesketchArtifact.GNOME_VIRTUAL_FILESYSTEM: diff --git a/src/windows/eventlogs/logons.ts b/src/windows/eventlogs/logons.ts index 54e783cd..5a90164a 100644 --- a/src/windows/eventlogs/logons.ts +++ b/src/windows/eventlogs/logons.ts @@ -30,7 +30,7 @@ export function logonsWindows(path: string): LogonsWindows[] | WindowsError { `failed to parse eventlog ${path}: ${logs}`, ); } - const recordsData = logs[1]; + const recordsData = logs[ 1 ]; if (recordsData.length === 0) { break; } @@ -68,16 +68,21 @@ export function logonsWindows(path: string): LogonsWindows[] | WindowsError { // Try to correlate logon/logoff events for (let i = 0; i < logon_entries.length; i++) { + const entry = logon_entries[ i ]; + if (entry === undefined) { + continue; + } + for (const logoff of logoff_entries) { if ( - logon_entries[i].logon_id === logoff.data.Event.EventData.TargetLogonId + entry.logon_id === logoff.data.Event.EventData.TargetLogonId ) { - logon_entries[i].logoff_time = logoff.timestamp; - const duration = new Date(logon_entries[i].logoff_time).getTime() - - new Date(logon_entries[i].logon_time).getTime(); - logon_entries[i].duration = Number(duration); - if (logon_entries[i].duration === null) { - logon_entries[i].duration = 0; + entry.logoff_time = logoff.timestamp; + const duration = new Date(entry.logoff_time).getTime() - + new Date(entry.logon_time).getTime(); + entry.duration = Number(duration); + if (entry.duration === null) { + entry.duration = 0; } } } @@ -167,31 +172,34 @@ export function testLogonsWindows(): void { } if (results.length !== 198) { - throw `Got ${results.length} logon events, expected 198.......logonsWindows ❌` + throw `Got ${results.length} logon events, expected 198.......logonsWindows ❌`; + } + if (results[ 1 ] === undefined) { + throw `Got undefined logon event.......logonsWindows ❌`; } - if (results[1].logon_time != "2022-10-31T03:30:46.218854000Z") { - throw `Got ${results[1].logon_time} for logon time, expected 2022-10-31T03:30:46.218854000Z.......logonsWindows ❌` + if (results[ 1 ].logon_time != "2022-10-31T03:30:46.218854000Z") { + throw `Got ${results[ 1 ].logon_time} for logon time, expected 2022-10-31T03:30:46.218854000Z.......logonsWindows ❌`; } - const logon_types = [2, 3, 4, 5, 7, 8, 9, 10, 11]; + const logon_types = [ 2, 3, 4, 5, 7, 8, 9, 10, 11 ]; for (const entry of logon_types) { const type_result = checkLogonType(entry); if (type_result === LogonType.Unknown) { - throw `Got Unknown logon type ${type_result}.......checkLogonType ❌` + throw `Got Unknown logon type ${type_result}.......checkLogonType ❌`; } } console.info(` Function checkLogonType ✅`); const logon = `{"event_record_id":84182,"timestamp":"2025-08-31T03:06:46.605720000Z","data":{"Event":{"#attributes":{"xmlns":"http://schemas.microsoft.com/win/2004/08/events/event"},"System":{"Provider":{"#attributes":{"Name":"Microsoft-Windows-Security-Auditing","Guid":"54849625-5478-4994-A5BA-3E3B0328C30D"}},"EventID":4624,"Version":3,"Level":0,"Task":12544,"Opcode":0,"Keywords":"0x8020000000000000","TimeCreated":{"#attributes":{"SystemTime":"2025-08-31T03:06:46.605720Z"}},"EventRecordID":84182,"Correlation":null,"Execution":{"#attributes":{"ProcessID":876,"ThreadID":1340}},"Channel":"Security","Computer":"win","Security":null},"EventData":{"SubjectUserSid":"S-1-0-0","SubjectUserName":"-","SubjectDomainName":"-","SubjectLogonId":"0x0","TargetUserSid":"S-1-5-18","TargetUserName":"SYSTEM","TargetDomainName":"NT AUTHORITY","TargetLogonId":"0x3e7","LogonType":0,"LogonProcessName":"-","AuthenticationPackageName":"-","WorkstationName":"-","LogonGuid":"00000000-0000-0000-0000-000000000000","TransmittedServices":"-","LmPackageName":"-","KeyLength":0,"ProcessId":"0x4","ProcessName":"","IpAddress":"-","IpPort":"-","ImpersonationLevel":"-","RestrictedAdminMode":"-","RemoteCredentialGuard":"-","TargetOutboundUserName":"-","TargetOutboundDomainName":"-","VirtualAccount":"%%1843","TargetLinkedLogonId":"0x0","ElevatedToken":"%%1842"}}}}`; if (!isLogon(JSON.parse(logon))) { - throw `Did not get logon event.......isLogon ❌` + throw `Did not get logon event.......isLogon ❌`; } console.info(` Function isLogon ✅`); - const logoff = `{"event_record_id":84336,"timestamp":"2025-08-31T03:07:39.322481000Z","data":{"Event":{"#attributes":{"xmlns":"http://schemas.microsoft.com/win/2004/08/events/event"},"System":{"Provider":{"#attributes":{"Name":"Microsoft-Windows-Security-Auditing","Guid":"54849625-5478-4994-A5BA-3E3B0328C30D"}},"EventID":4634,"Version":0,"Level":0,"Task":12545,"Opcode":0,"Keywords":"0x8020000000000000","TimeCreated":{"#attributes":{"SystemTime":"2025-08-31T03:07:39.322481Z"}},"EventRecordID":84336,"Correlation":null,"Execution":{"#attributes":{"ProcessID":876,"ThreadID":2132}},"Channel":"Security","Computer":"win","Security":null},"EventData":{"TargetUserSid":"S-1-5-96-0-1","TargetUserName":"UMFD-1","TargetDomainName":"Font Driver Host","TargetLogonId":"0x1381d","LogonType":2}}}}` + const logoff = `{"event_record_id":84336,"timestamp":"2025-08-31T03:07:39.322481000Z","data":{"Event":{"#attributes":{"xmlns":"http://schemas.microsoft.com/win/2004/08/events/event"},"System":{"Provider":{"#attributes":{"Name":"Microsoft-Windows-Security-Auditing","Guid":"54849625-5478-4994-A5BA-3E3B0328C30D"}},"EventID":4634,"Version":0,"Level":0,"Task":12545,"Opcode":0,"Keywords":"0x8020000000000000","TimeCreated":{"#attributes":{"SystemTime":"2025-08-31T03:07:39.322481Z"}},"EventRecordID":84336,"Correlation":null,"Execution":{"#attributes":{"ProcessID":876,"ThreadID":2132}},"Channel":"Security","Computer":"win","Security":null},"EventData":{"TargetUserSid":"S-1-5-96-0-1","TargetUserName":"UMFD-1","TargetDomainName":"Font Driver Host","TargetLogonId":"0x1381d","LogonType":2}}}}`; if (!isLogoff(JSON.parse(logoff))) { - throw `Did not get logoff event.......isLogoff ❌` + throw `Did not get logoff event.......isLogoff ❌`; } console.info(` Function isLogoff ✅`); } \ No newline at end of file diff --git a/src/windows/sqlite/updates.ts b/src/windows/sqlite/updates.ts index 44f37512..fba16eaf 100644 --- a/src/windows/sqlite/updates.ts +++ b/src/windows/sqlite/updates.ts @@ -2,7 +2,7 @@ import { UpdateHistoryV2 } from "../../../types/windows/ese/updates"; import { ApplicationError } from "../../applications/errors"; import { querySqlite } from "../../applications/sqlite"; import { getEnvValue } from "../../environment/env"; -import { filetimeToUnixEpoch, unixEpochToISO } from "../../time/conversion"; +import { unixEpochToISO } from "../../time/conversion"; import { WindowsError } from "../errors"; /** diff --git a/types/linux/abrt.ts b/types/linux/abrt.ts index 513a6797..c94b12a3 100644 --- a/types/linux/abrt.ts +++ b/types/linux/abrt.ts @@ -10,4 +10,9 @@ export interface Abrt { backtrace: string | Record; environment: string; home: string; + message: string; + datetime: string; + timestamp_desc: "Abrt Last Occurrence"; + artifact: "Abrt"; + data_type: "linux:abrt:entry"; } \ No newline at end of file diff --git a/types/linux/rpm.ts b/types/linux/rpm.ts index e822d1f6..f3a2a032 100644 --- a/types/linux/rpm.ts +++ b/types/linux/rpm.ts @@ -11,4 +11,9 @@ export interface RpmPackages { package_group: string; summary: string; url: string; + message: string; + datetime: string; + timestamp_desc: "RPM Package Installed"; + artifact: "RPM Package"; + data_type: "linux:rpm:entry"; } From 3df533df30cbc94d4af2d5cc96860f591a22f510 Mon Sep 17 00:00:00 2001 From: puffycid Date: Wed, 1 Oct 2025 22:41:22 -0400 Subject: [PATCH 03/47] app usage test --- .../Linux Artifacts/gnomeappusage.md | 22 +++++---- src/linux/gnome/usage.ts | 45 ++++++++++++++++++- .../artifacts/linux/gnome/appusage.ts | 28 ------------ src/timesketch/timeline.ts | 4 -- tests/linux/usage/main.ts | 22 +++++++++ tests/test.ts | 1 + tests/test_data/linux/gnome/usage.xml | 28 ++++++++++++ types/linux/gnome/usage.ts | 5 +++ 8 files changed, 114 insertions(+), 41 deletions(-) delete mode 100644 src/timesketch/artifacts/linux/gnome/appusage.ts create mode 100644 tests/linux/usage/main.ts create mode 100644 tests/test_data/linux/gnome/usage.xml diff --git a/artemis-docs/docs/Artifacts/Linux Artifacts/gnomeappusage.md b/artemis-docs/docs/Artifacts/Linux Artifacts/gnomeappusage.md index 9e4f3b47..507cb1ba 100644 --- a/artemis-docs/docs/Artifacts/Linux Artifacts/gnomeappusage.md +++ b/artemis-docs/docs/Artifacts/Linux Artifacts/gnomeappusage.md @@ -35,13 +35,19 @@ An array of `AppUsage` entries. * Information about GNOME Application usage */ export interface AppUsage { - /**Application ID */ - id: string; - /**Application rank score */ - score: number; - /**Application last seen timestamp */ - "last-seen": string; - /**Path to the parsed application_state file */ - source: string; + /**Application ID */ + id: string; + /**Application rank score */ + score: number; + /**Application last seen timestamp */ + "last-seen": string; + /**Path to the parsed application_state file */ + source: string; + message: string; + datetime: string; + timestamp_desc: "Last Seen"; + artifact: "GNOME Application Usage"; + data_type: "linux:gnome:usage:entry", } + ``` diff --git a/src/linux/gnome/usage.ts b/src/linux/gnome/usage.ts index 6f51b66f..980fef9e 100644 --- a/src/linux/gnome/usage.ts +++ b/src/linux/gnome/usage.ts @@ -40,23 +40,38 @@ export function gnomeAppUsage(alt_path?: string): AppUsage[] | LinuxError { const context = data[ "application-state" ] as Record; const context_entries = context[ "context" ]; + if (context_entries === undefined) { + continue; + } + for (const value of context_entries) { const applications = value as Record< string, unknown[] >; + if (applications[ "application" ] === undefined) { + continue; + } for (const app_entry of applications[ "application" ]) { const app = app_entry as Record< string, Record >; + if (app[ "$" ] === undefined) { + continue; + } const app_usage: AppUsage = { - id: app[ "$" ][ "id" ], + id: app[ "$" ][ "id" ] ?? "", score: Number(app[ "$" ][ "score" ]), "last-seen": unixEpochToISO(Number(app[ "$" ][ "last-seen" ])), source: entry.full_path, + message: app[ "$" ][ "id" ] ?? "", + datetime: unixEpochToISO(Number(app[ "$" ][ "last-seen" ])), + timestamp_desc: "Last Seen", + artifact: "GNOME Application Usage", + data_type: "linux:gnome:usage:entry" }; apps.push(app_usage); @@ -66,3 +81,31 @@ export function gnomeAppUsage(alt_path?: string): AppUsage[] | LinuxError { return apps; } + +/** + * Function to test GNOME App usage parsing + * This function should not be called unless you are developing the artemis-api + * Or want to validate the GNOME App usage parsing + */ +export function testGnomeAppUsage(): void { + const app = "../../test_data/linux/gnome/usage.xml"; + const results = gnomeAppUsage(app); + if (results instanceof LinuxError) { + throw results; + } + + if (results.length !== 23) { + throw `Got ${results.length} entries expected 23.......gnomeAppUsage ❌`; + } + + if (results[ 2 ]?.id !== "libreoffice-startcenter.desktop") { + throw `Got ${results[ 2 ]?.id} entries expected "libreoffice-startcenter.desktop".......gnomeAppUsage ❌`; + } + + if (results[ 3 ]?.[ "last-seen" ] !== "2025-09-22T01:39:36.000Z") { + throw `Got ${results[ 3 ]?.[ "last-seen" ]} entries expected "2025-09-22T01:39:36.000Z".......gnomeAppUsage ❌`; + } + + console.info(` Function gnomeAppUsage ✅`); + +} \ No newline at end of file diff --git a/src/timesketch/artifacts/linux/gnome/appusage.ts b/src/timesketch/artifacts/linux/gnome/appusage.ts deleted file mode 100644 index da773f96..00000000 --- a/src/timesketch/artifacts/linux/gnome/appusage.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { AppUsage } from "../../../../../types/linux/gnome/usage"; -import { TimesketchTimeline } from "../../../../../types/timesketch/timeline"; - -/** - * Function to timeline GNOME AppUsage - * @param data Array of `AppUsage` - * @returns Array of `TimesketchTimeline` - */ -export function timelineGnomeAppUsage(data: AppUsage[]): TimesketchTimeline[] { - const entries: TimesketchTimeline[] = []; - for (const item of data) { - let entry: TimesketchTimeline = { - datetime: item[ "last-seen" ], - timestamp_desc: "Last Seen", - message: item.id, - artifact: "GNOME Application Usage", - data_type: "linux:gnome:applicationusage:entry", - id: item.id, - last_seen: item[ "last-seen" ], - score: item.score, - source: item.source, - }; - - entries.push(entry); - } - - return entries; -} \ No newline at end of file diff --git a/src/timesketch/timeline.ts b/src/timesketch/timeline.ts index 8611bbdb..4ce5744d 100644 --- a/src/timesketch/timeline.ts +++ b/src/timesketch/timeline.ts @@ -78,8 +78,6 @@ import { timelineGnomeExtensions } from "./artifacts/linux/gnome/extensions"; import { Extension } from "../../types/linux/gnome/extensions"; import { timelineGnomeVirtualFilesystem } from "./artifacts/linux/gnome/gvfs"; import { GvfsEntry } from "../../types/linux/gnome/gvfs"; -import { timelineGnomeAppUsage } from "./artifacts/linux/gnome/appusage"; -import { AppUsage } from "../../types/linux/gnome/usage"; /** * Application artifact timelines @@ -238,8 +236,6 @@ export function timelineArtifact( return timelineGnomeExtensions(data as Extension[]); case TimesketchArtifact.GNOME_VIRTUAL_FILESYSTEM: return timelineGnomeVirtualFilesystem(data as GvfsEntry[]); - case TimesketchArtifact.GNOME_APPLICATION_USAGE: - return timelineGnomeAppUsage(data as AppUsage[]); default: return new TimesketchError(`ARTIFACT`, `unknown artifact ${artifact}`); } diff --git a/tests/linux/usage/main.ts b/tests/linux/usage/main.ts new file mode 100644 index 00000000..a43736a6 --- /dev/null +++ b/tests/linux/usage/main.ts @@ -0,0 +1,22 @@ +import { gnomeAppUsage } from "../../../mod"; +import { LinuxError } from "../../../src/linux/errors"; +import { testGnomeAppUsage } from "../../test"; + +function main() { + console.log('Running GNOME Application Usage tests....'); + console.log(' Starting live test....'); + const results = gnomeAppUsage(); + if (results instanceof LinuxError) { + throw results; + return; + } + console.log(' Live test passed! 🥳\n'); + + console.log(' Starting GNOME Application Usage test....'); + testGnomeAppUsage(); + + console.log(' GNOME Application Usage test passed! 🥳'); + console.log('All GNOME Application Usage tests passed! 🥳💃🕺'); +} + +main(); diff --git a/tests/test.ts b/tests/test.ts index b4b50dfa..7593b1e8 100644 --- a/tests/test.ts +++ b/tests/test.ts @@ -14,6 +14,7 @@ export { testGetGnomeExtensions } from "../src/linux/gnome/extensions"; export { testGeditRecentFiles } from "../src/linux/gnome/gedit"; export { testRpmInfo } from "../src/linux/rpm"; export { testFirmwareHistory } from "../src/linux/firmware"; +export { testGnomeAppUsage } from "../src/linux/gnome/usage"; /** * Windows exported test functions diff --git a/tests/test_data/linux/gnome/usage.xml b/tests/test_data/linux/gnome/usage.xml new file mode 100644 index 00000000..02cf477d --- /dev/null +++ b/tests/test_data/linux/gnome/usage.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/types/linux/gnome/usage.ts b/types/linux/gnome/usage.ts index e0c30997..44894ed7 100644 --- a/types/linux/gnome/usage.ts +++ b/types/linux/gnome/usage.ts @@ -10,4 +10,9 @@ export interface AppUsage { "last-seen": string; /**Path to the parsed application_state file */ source: string; + message: string; + datetime: string; + timestamp_desc: "Last Seen"; + artifact: "GNOME Application Usage"; + data_type: "linux:gnome:usage:entry", } From c194db72374a68c3abc6c385c98fe12af70091da Mon Sep 17 00:00:00 2001 From: puffycid Date: Thu, 2 Oct 2025 00:07:30 -0400 Subject: [PATCH 04/47] more tests --- .../Linux Artifacts/gnomeextensions.md | 59 ++++---- .../docs/Artifacts/Linux Artifacts/gvfs.md | 37 ++--- src/linux/gnome/extensions.ts | 3 +- src/linux/gnome/gvfs.ts | 129 +++++++++++++++++- .../artifacts/linux/gnome/extensions.ts | 72 ---------- src/timesketch/artifacts/linux/gnome/gvfs.ts | 29 ---- src/timesketch/timeline.ts | 8 -- src/windows/chocolatey.ts | 22 +-- tests/linux/gvfs/main.ts | 22 +++ tests/test.ts | 2 +- tests/test_data/linux/gnome/gvfs.raw | Bin 0 -> 328 bytes types/linux/gnome/extensions.ts | 7 +- types/linux/gnome/gvfs.ts | 5 + 13 files changed, 229 insertions(+), 166 deletions(-) delete mode 100644 src/timesketch/artifacts/linux/gnome/extensions.ts delete mode 100644 src/timesketch/artifacts/linux/gnome/gvfs.ts create mode 100644 tests/linux/gvfs/main.ts create mode 100644 tests/test_data/linux/gnome/gvfs.raw diff --git a/artemis-docs/docs/Artifacts/Linux Artifacts/gnomeextensions.md b/artemis-docs/docs/Artifacts/Linux Artifacts/gnomeextensions.md index eb97ac73..90683693 100644 --- a/artemis-docs/docs/Artifacts/Linux Artifacts/gnomeextensions.md +++ b/artemis-docs/docs/Artifacts/Linux Artifacts/gnomeextensions.md @@ -40,35 +40,40 @@ An array of `Extension` entries. * Information about installed GNOME extensions */ export interface Extension { - /**Path to extension metadata.json file */ - extension_path: string; - /**Name of the extension */ - name: string; - /**Extension description */ - description: string; - /**Author (UUID) of the extension */ - uuid: string; - /**Extension version */ - version: number; - /**Supported GNOME Shell versions */ - "shell-version": string[]; - /**Extension Type: User or System */ - extension_type: ExtensionType; - /**Other JSON key entries */ - [key: string]: unknown; - /**metadata.json created */ - created: string; - /**metadata.json modified */ - modified: string; - /**metadata.json accessed */ - accessed: string; - /**metadata.json changed */ - changed: string; + /**Path to extension metadata.json file */ + extension_path: string; + /**Name of the extension */ + name: string; + /**Extension description */ + description: string; + /**Author (UUID) of the extension */ + uuid: string; + /**Extension version */ + version: number; + /**Supported GNOME Shell versions */ + "shell-version": string[]; + /**Extension Type: User or System */ + extension_type: ExtensionType; + /**Other JSON key entries */ + [ key: string ]: unknown; + /**metadata.json created */ + created: string; + /**metadata.json modified */ + modified: string; + /**metadata.json accessed */ + accessed: string; + /**metadata.json changed */ + changed: string; + message: string; + datetime: string; + timestamp_desc: "Created"; + artifact: "GNOME Extension"; + data_type: "linux:gnome:extensions:entry", } export enum ExtensionType { - User = "User", - System = "System", - Unknown = "Unknown", + User = "User", + System = "System", + Unknown = "Unknown", } ``` diff --git a/artemis-docs/docs/Artifacts/Linux Artifacts/gvfs.md b/artemis-docs/docs/Artifacts/Linux Artifacts/gvfs.md index e2f8d967..c13c06ee 100644 --- a/artemis-docs/docs/Artifacts/Linux Artifacts/gvfs.md +++ b/artemis-docs/docs/Artifacts/Linux Artifacts/gvfs.md @@ -83,21 +83,26 @@ An array of `GvfsEntry` entries. ````typescript export interface GvfsEntry { - /**Name of GvfsEntry */ - name: string; - /**Attributes associated with the entry. Example: - * ```json - * "metadata": { - "download-uri": "https://download.freebsd.org/releases/amd64/amd64/ISO-IMAGES/14.1/FreeBSD-14.1-RELEASE-amd64-disc1.iso" - }, - * ``` - */ - metadata: Record; - /**Full path of the GvfsEntry */ - path: string; - /**Last change timestamp of the **metadata** */ - last_change: string; - /**GFVS file source */ - source: string; + /**Name of GvfsEntry */ + name: string; + /**Attributes associated with the entry. Example: + * ```json + * "metadata": { + "download-uri": "https://download.freebsd.org/releases/amd64/amd64/ISO-IMAGES/14.1/FreeBSD-14.1-RELEASE-amd64-disc1.iso" + }, + * ``` + */ + metadata: Record; + /**Full path of the GvfsEntry */ + path: string; + /**Last change timestamp of the **metadata** */ + last_change: string; + /**GFVS file source */ + source: string; + message: string; + datetime: string; + timestamp_desc: "Last Changed"; + artifact: "GNOME Virtual Filesystem"; + data_type: "linux:gnome:gvfs:entry", } ```` diff --git a/src/linux/gnome/extensions.ts b/src/linux/gnome/extensions.ts index 09281f1f..b9124053 100644 --- a/src/linux/gnome/extensions.ts +++ b/src/linux/gnome/extensions.ts @@ -59,6 +59,8 @@ export function getGnomeExtensions( } else { ext_data.extension_type = ExtensionType.Unknown; } + ext_data.message = ext_data.name; + ext_data.datetime = ext_data.created; extensions.push(ext_data); } } @@ -87,5 +89,4 @@ export function testGetGnomeExtensions(): void { } console.info(` Function getGnomeExtensions ✅`); - } \ No newline at end of file diff --git a/src/linux/gnome/gvfs.ts b/src/linux/gnome/gvfs.ts index 232df15f..80c3726d 100644 --- a/src/linux/gnome/gvfs.ts +++ b/src/linux/gnome/gvfs.ts @@ -16,7 +16,7 @@ import { unixEpochToISO } from "../../time/conversion"; import { LinuxError } from "../errors"; /** - * Function to parse GVFS metadata files. By default will parse all GVFS metadata files at `/home/%/.local/share/gvfs-metadata/%` + * Function to parse GVFS metadata files. By default will parse all GVFS metadata files at `/home/%/.local/share/gvfs-metadata/*` * @param alt_path Alternative path (or glob) to a GVFS file * @returns Array of `GVFSEntry` or `LinuxError` */ @@ -169,7 +169,11 @@ function extractHeader(data: Uint8Array): Header | NomError { let magic_sig = 0; for (let i = 0; i < magic.nommed.length; i++) { - magic_sig |= (magic.nommed as Uint8Array)[ i ] << (i * 8); + const entry = (magic.nommed as Uint8Array)[ i ]; + if (entry === undefined) { + continue; + } + magic_sig |= entry << (i * 8); } const header: Header = { @@ -508,6 +512,11 @@ function getChildren( last_change: unixEpochToISO(last_change.value + base_time), path: `${parents.join("/")}/${name}`.replace("//", "/"), source, + message: `${parents.join("/")}/${name}`.replace("//", "/"), + datetime: unixEpochToISO(last_change.value + base_time), + timestamp_desc: "Last Changed", + artifact: "GNOME Virtual Filesystem", + data_type: "linux:gnome:gvfs:entry" }; children.push(child); @@ -557,3 +566,119 @@ function getName(offset: number, data: Uint8Array): string | NomError { const name = extractUtf8String(name_data.nommed as Uint8Array); return name; } + +/** + * Function to test GNOME GVFS parsing + * This function should not be called unless you are developing the artemis-api + * Or want to validate the GNOME GVFS parsing + */ +export function testParseGvfs(): void { + const test = "../../test_data/linux/gnome/gvfs.raw"; + const result = parseGvfs(test); + if (result instanceof LinuxError) { + throw result; + } + + if (result.length != 5) { + throw `Got ${result.length} expected 5.......parseGvfs ❌`; + } + if (result[ 4 ] === undefined) { + throw `Got GVFS path undefined expected "/storage/emulated/0/Music/NewPipe".......parseGvfs ❌`; + } + + if (result[ 4 ].path != "/storage/emulated/0/Music/NewPipe") { + throw `Got path ${result[ 4 ].path} expected "/storage/emulated/0/Music/NewPipe".......parseGvfs ❌`; + } + + console.info(` Function parseGvfs ✅`); + + const header = new Uint8Array([ 218, 26, 109, 101, 116, 97, 1, 0, 0, 0, 0, 0, 158, 169, 70, 67, 0, 0, 0, 104, 0, 0, 0, 32, 0, 0, 0, 0, 103, 15, 6, 27, 0, 0, 0, 2, 0, 0, 0, 77, 0, 0, 0, 44, 110, 97, 117, 116, 105, 108, 117, 115, 45, 105, 99, 111, 110, 45, 118, 105, 101, 119, 45, 115, 111, 114, 116, 45, 114, 101, 118, 101, 114, 115, 101, 100, 0, 110, 97, 117, 116, 105, 108, 117, 115, 45, 105, 99, 111, 110, 45, 118, 105, 101, 119, 45, 115, 111, 114, 116, 45, 98, 121, 0, 0, 0, 0, 120, 0, 0, 0, 124, 0, 0, 1, 12, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 144, 0, 0, 0, 152, 0, 0, 1, 16, 0, 0, 0, 0, 115, 116, 111, 114, 97, 103, 101, 0, 0, 0, 0, 1, 0, 0, 0, 172, 0, 0, 0, 184, 0, 0, 1, 20, 0, 0, 0, 0, 101, 109, 117, 108, 97, 116, 101, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 204, 0, 0, 0, 208, 0, 0, 1, 24, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 228, 0, 0, 0, 236, 0, 0, 1, 28, 0, 0, 0, 0, 77, 117, 115, 105, 99, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 8, 0, 0, 1, 32, 0, 0, 0, 1, 78, 101, 119, 80, 105, 112, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 52, 0, 0, 0, 1, 0, 0, 1, 66, 100, 97, 116, 101, 95, 109, 111, 100, 105, 102, 105, 101, 100, 0, 116, 114, 117, 101, 0, 0 ]); + const header_results = extractHeader(header); + if (header_results instanceof NomError) { + throw header_results; + } + + if (header_results.base_time !== 1729037851) { + throw `Got base time ${header_results.base_time} expected "1729037851".......extractHeader ❌`; + } + + console.info(` Function extractHeader ✅`); + + const bytes = readFile(test); + if (bytes instanceof FileError) { + throw bytes; + } + + const keywords = getKeywords(bytes, 32); + if (keywords instanceof NomError) { + throw keywords; + } + + if (keywords.length !== 2) { + throw `Got ${keywords.length} expected 2.......getKeywords ❌`; + } + + if (keywords[ 1 ] === undefined) { + throw `Got GVFS keyworkds undefined expected "nautilus-icon-view-sort-reversed".......getKeywords ❌`; + } + + if (keywords[ 1 ] != "nautilus-icon-view-sort-reversed") { + throw `Got ${keywords[ 1 ]} expected "nautilus-icon-view-sort-reversed".......getKeywords ❌`; + } + console.info(` Function getKeywords ✅`); + + const root = getRoot(bytes, 104, 1729037851); + if (root instanceof NomError) { + throw root; + } + + if (root.name !== "/") { + throw `Got ${root.name} expected "/".......getRoot ❌`; + } + + if (root.last_change != "2024-10-16T00:17:31.000Z") { + throw `Got ${root.last_change} expected "2024-10-16T00:17:31.000Z".......getRoot ❌`; + } + console.info(` Function getRoot ✅`); + + const meta = extractMetadata(288, bytes, [ "nautilus-icon-view-sort-by", "nautilus-icon-view-sort-reversed" ]); + if (meta instanceof NomError) { + throw meta; + } + + + if (meta[ "nautilus-icon-view-sort-by" ] !== "date_modified") { + throw `Got ${meta[ "nautilus-icon-view-sort-by" ]} expected "date_modified".......extractMetadata ❌`; + } + + if (meta[ "nautilus-icon-view-sort-reversed" ] !== "true") { + throw `Got ${meta[ "nautilus-icon-view-sort-reversed" ]} expected "true".......extractMetadata ❌`; + } + console.info(` Function extractMetadata ✅`); + + const child = getChildren(124, bytes, [ "/" ], 1729037851, [ "nautilus-icon-view-sort-by", "nautilus-icon-view-sort-reversed" ], "test"); + if (child instanceof NomError) { + throw child; + } + + if (child.length !== 5) { + throw `Got ${child.length} expected 5.......getChildren ❌`; + } + + if (child[ 0 ]?.message !== "/storage") { + throw `Got ${child[ 0 ]?.message} expected "/storage".......getChildren ❌`; + } + console.info(` Function getChildren ✅`); + + const name = getName(120, bytes); + if (name instanceof NomError) { + throw name; + } + + + if (name !== "/") { + throw `Got ${name} expected "/".......getName ❌`; + } + console.info(` Function getName ✅`); + +} \ No newline at end of file diff --git a/src/timesketch/artifacts/linux/gnome/extensions.ts b/src/timesketch/artifacts/linux/gnome/extensions.ts deleted file mode 100644 index 2748d415..00000000 --- a/src/timesketch/artifacts/linux/gnome/extensions.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { Extension } from "../../../../../types/linux/gnome/extensions"; -import { TimesketchTimeline } from "../../../../../types/timesketch/timeline"; - -/** - * Function to timeline GNOME Extensions - * @param data Array of `Extension` - * @returns Array of `TimesketchTimeline` - */ -export function timelineGnomeExtensions(data: Extension[]): TimesketchTimeline[] { - const entries: TimesketchTimeline[] = []; - for (const item of data) { - let entry: TimesketchTimeline = { - datetime: "", - timestamp_desc: "", - message: item.name, - artifact: "GNOME Extension", - data_type: "linux:gnome:extensions:entry", - }; - - entry = { ...entry, ...item }; - // Extract each unique timestamp to their own entry - const time_entries = extractApiTimes(item); - for (const time_entry of time_entries) { - entry.datetime = time_entry.datetime; - entry.timestamp_desc = time_entry.desc; - entries.push(Object.assign({}, entry)); - } - } - - return entries; -} - -interface TimeEntries { - datetime: string; - desc: string; -} - -/** - * Function to extract timestamps from file info - * @param entry A file info object. Can be `MacosFileInfo` or `WindowsFileInfo` or `LinuxFileInfo` - * @returns Array of `TimeEntries` - */ -function extractApiTimes( - entry: Extension, -): TimeEntries[] { - const check_times: Record = {}; - const entries: TimeEntries[] = []; - - check_times[ entry.created ] = "Created"; - check_times[ entry.modified ] === undefined - ? (check_times[ entry.modified ] = "Modified") - : (check_times[ entry.modified ] = `${check_times[ entry.modified ]} Modified`); - - check_times[ entry.changed ] === undefined - ? (check_times[ entry.changed ] = "Changed") - : (check_times[ entry.changed ] = `${check_times[ entry.changed ]} Changed`); - - - check_times[ entry.accessed ] === undefined - ? (check_times[ entry.accessed ] = "Accessed") - : (check_times[ entry.accessed ] = `${check_times[ entry.accessed ]} Accessed`); - - for (const value in check_times) { - const entry: TimeEntries = { - datetime: value, - desc: check_times[ value ] ?? "Undefined", - }; - entries.push(entry); - } - - return entries; -} \ No newline at end of file diff --git a/src/timesketch/artifacts/linux/gnome/gvfs.ts b/src/timesketch/artifacts/linux/gnome/gvfs.ts deleted file mode 100644 index 6bb82184..00000000 --- a/src/timesketch/artifacts/linux/gnome/gvfs.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { GvfsEntry } from "../../../../../types/linux/gnome/gvfs"; -import { TimesketchTimeline } from "../../../../../types/timesketch/timeline"; - -/** - * Function to timeline GNOME Virtual Filesystem entries - * @param data Array of `GvfsEntry` - * @returns Array of `TimesketchTimeline` - */ -export function timelineGnomeVirtualFilesystem(data: GvfsEntry[]): TimesketchTimeline[] { - const entries: TimesketchTimeline[] = []; - for (const item of data) { - let entry: TimesketchTimeline = { - datetime: item.last_change, - timestamp_desc: "Last Changed", - message: item.path, - artifact: "GNOME Virtual Filesystem", - data_type: "linux:gnome:gvfs:entry", - name: item.name, - last_change: item.last_change, - path: item.path, - source: item.source, - }; - - entry = { ...entry, ...item.metadata }; - entries.push(entry); - } - - return entries; -} \ No newline at end of file diff --git a/src/timesketch/timeline.ts b/src/timesketch/timeline.ts index 4ce5744d..728f0b00 100644 --- a/src/timesketch/timeline.ts +++ b/src/timesketch/timeline.ts @@ -74,10 +74,6 @@ import { GatekeeperEntries } from "../../types/macos/sqlite/gatekeeper"; * Linux artifact timelines */ import { timelineJournals } from "./artifacts/linux/journals"; -import { timelineGnomeExtensions } from "./artifacts/linux/gnome/extensions"; -import { Extension } from "../../types/linux/gnome/extensions"; -import { timelineGnomeVirtualFilesystem } from "./artifacts/linux/gnome/gvfs"; -import { GvfsEntry } from "../../types/linux/gnome/gvfs"; /** * Application artifact timelines @@ -232,10 +228,6 @@ export function timelineArtifact( return timelineFileHistory(data as FileHistory[]); case TimesketchArtifact.LIBREOFFICE_RECENTFILES: return timelineRecentFiles(data as RecentFilesLibreOffice[]); - case TimesketchArtifact.GNOME_EXTENSIONS: - return timelineGnomeExtensions(data as Extension[]); - case TimesketchArtifact.GNOME_VIRTUAL_FILESYSTEM: - return timelineGnomeVirtualFilesystem(data as GvfsEntry[]); default: return new TimesketchError(`ARTIFACT`, `unknown artifact ${artifact}`); } diff --git a/src/windows/chocolatey.ts b/src/windows/chocolatey.ts index d17da8ec..0a78430e 100644 --- a/src/windows/chocolatey.ts +++ b/src/windows/chocolatey.ts @@ -43,21 +43,25 @@ export function getChocolateyInfo( console.warn(`failed to parse ${path.full_path}: ${xml_data.message}`); continue; } + const entry = xml_data.package.metadata.at(0); + if (entry === undefined) { + continue; + } // Try to grab some info const chocolate: ChocolateyInfo = { - name: xml_data.package.metadata[ 0 ].id[ 0 ], - version: xml_data.package.metadata[ 0 ].version[ 0 ], - summary: typeof xml_data.package.metadata[ 0 ].summary === "undefined" + name: entry.id[ 0 ] ?? "", + version: entry.version[ 0 ] ?? "", + summary: typeof entry.summary === "undefined" ? "" - : xml_data.package.metadata[ 0 ].summary[ 0 ], - author: xml_data.package.metadata[ 0 ].authors[ 0 ], - license: typeof xml_data.package.metadata[ 0 ].licenseUrl === "undefined" + : entry.summary[ 0 ] ?? "", + author: entry.authors[ 0 ] ?? "", + license: typeof entry.licenseUrl === "undefined" ? "" - : xml_data.package.metadata[ 0 ].licenseUrl[ 0 ], - tags: typeof xml_data.package.metadata[ 0 ].tags === "undefined" + : entry.licenseUrl[ 0 ] ?? "", + tags: typeof entry.tags === "undefined" ? [] - : xml_data.package.metadata[ 0 ].tags[ 0 ].split(" "), + : (entry.tags[ 0 ] ?? "").split(" "), path: path.full_path, }; packages.push(chocolate); diff --git a/tests/linux/gvfs/main.ts b/tests/linux/gvfs/main.ts new file mode 100644 index 00000000..d4d36bf8 --- /dev/null +++ b/tests/linux/gvfs/main.ts @@ -0,0 +1,22 @@ +import { parseGvfs } from "../../../mod"; +import { LinuxError } from "../../../src/linux/errors"; +import { testParseGvfs } from "../../test"; + +function main() { + console.log('Running GNOME GVFS tests....'); + console.log(' Starting live test....'); + const results = parseGvfs(); + if (results instanceof LinuxError) { + throw results; + } + + console.log(' Live test passed! 🥳\n'); + + console.log(' Starting GNOME GVFS test....'); + testParseGvfs(); + + console.log(' GNOME GVFS test passed! 🥳'); + console.log('All GNOME GVFS tests passed! 🥳💃🕺'); +} + +main(); diff --git a/tests/test.ts b/tests/test.ts index 7593b1e8..b8ee25f6 100644 --- a/tests/test.ts +++ b/tests/test.ts @@ -15,7 +15,7 @@ export { testGeditRecentFiles } from "../src/linux/gnome/gedit"; export { testRpmInfo } from "../src/linux/rpm"; export { testFirmwareHistory } from "../src/linux/firmware"; export { testGnomeAppUsage } from "../src/linux/gnome/usage"; - +export { testParseGvfs } from "../src/linux/gnome/gvfs"; /** * Windows exported test functions */ diff --git a/tests/test_data/linux/gnome/gvfs.raw b/tests/test_data/linux/gnome/gvfs.raw new file mode 100644 index 0000000000000000000000000000000000000000..a164abeba8c3fdc3d20eb43732a8c9175719ccc2 GIT binary patch literal 328 zcmca5m77|U$jAT!^H#b!1E~xkRsdp#bbdBzAjJg4zCf&#msnbonNwP7`kDFYJlEiKMW z1~I^LAZ?5sK&${__@$NyWEOz!19GtfkpF>z(F8;Qky8rL5%IbCDVb@RK*y96l>)T` E0QitMNdN!< literal 0 HcmV?d00001 diff --git a/types/linux/gnome/extensions.ts b/types/linux/gnome/extensions.ts index 832e9981..617326d8 100644 --- a/types/linux/gnome/extensions.ts +++ b/types/linux/gnome/extensions.ts @@ -17,7 +17,7 @@ export interface Extension { /**Extension Type: User or System */ extension_type: ExtensionType; /**Other JSON key entries */ - [key: string]: unknown; + [ key: string ]: unknown; /**metadata.json created */ created: string; /**metadata.json modified */ @@ -26,6 +26,11 @@ export interface Extension { accessed: string; /**metadata.json changed */ changed: string; + message: string; + datetime: string; + timestamp_desc: "Created"; + artifact: "GNOME Extension"; + data_type: "linux:gnome:extensions:entry", } export enum ExtensionType { diff --git a/types/linux/gnome/gvfs.ts b/types/linux/gnome/gvfs.ts index 6b94c417..3b3aba21 100644 --- a/types/linux/gnome/gvfs.ts +++ b/types/linux/gnome/gvfs.ts @@ -25,4 +25,9 @@ export interface GvfsEntry { last_change: string; /**GFVS file source */ source: string; + message: string; + datetime: string; + timestamp_desc: "Last Changed"; + artifact: "GNOME Virtual Filesystem"; + data_type: "linux:gnome:gvfs:entry", } From 21e5a788015ca53493790988cc9b05d216f4f4e7 Mon Sep 17 00:00:00 2001 From: puffycid Date: Thu, 2 Oct 2025 00:12:44 -0400 Subject: [PATCH 05/47] cleanup --- tests/applications/anydesk/main.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/applications/anydesk/main.ts b/tests/applications/anydesk/main.ts index cc9c25ec..0ae4fdf8 100644 --- a/tests/applications/anydesk/main.ts +++ b/tests/applications/anydesk/main.ts @@ -1,4 +1,4 @@ -import { AnyDesk, dumpData, Format, Output, OutputType, PlatformType } from "../../../mod"; +import { AnyDesk, PlatformType } from "../../../mod"; import { testReadConfig, testReadTrace } from "../../test"; function main() { @@ -11,7 +11,7 @@ function main() { throw `Got ${hits.length} rows. Expected 2872`; } const configs = results.configs(used_alt_dir); - if(configs.length !== 2) { + if (configs.length !== 2) { throw `Got ${hits.length} rows. Expected 2`; } From 9ddae00a0101c7a1d867699c58c8af3228abe2f6 Mon Sep 17 00:00:00 2001 From: puffycid Date: Thu, 2 Oct 2025 00:29:50 -0400 Subject: [PATCH 06/47] cleanup --- src/linux/kde/falkon/falkon.ts | 53 +++++++++++++++--------------- src/linux/kde/falkon/sqlite.ts | 60 ++++++++++++++++------------------ 2 files changed, 55 insertions(+), 58 deletions(-) diff --git a/src/linux/kde/falkon/falkon.ts b/src/linux/kde/falkon/falkon.ts index 15e37d81..aab7a538 100644 --- a/src/linux/kde/falkon/falkon.ts +++ b/src/linux/kde/falkon/falkon.ts @@ -10,7 +10,7 @@ import { falkonCookie, falkonHistory } from "./sqlite"; * Class to parse KDE Falkon browser data */ export class Falkon { - protected paths: FalkonProfile[]; + protected paths: FalkonProfile[] = []; protected platform: PlatformType; protected unfold: boolean; @@ -21,7 +21,7 @@ export class Falkon { * @param alt_path Optional alternative path to directory contain Falkon data * @returns `Falkon` instance class */ - constructor(platform: PlatformType, unfold = false, alt_path?: string) { + constructor (platform: PlatformType, unfold = false, alt_path?: string) { this.platform = platform; this.unfold = unfold; @@ -38,10 +38,10 @@ export class Falkon { return; } - this.paths = [{ + this.paths = [ { full_path: alt_path, version: browser_version, - }]; + } ]; } /** @@ -114,17 +114,17 @@ export class Falkon { created = meta.created; } // Get bookmarks in bar - for (const entry of json_data["roots"]["bookmark_bar"]["children"] as Record[]) { + for (const entry of json_data[ "roots" ][ "bookmark_bar" ][ "children" ] as Record[]) { const value: FalkonBookmark = { - bookmark_type: entry["type"] as string, - description: entry["description"] as string, - name: entry["description"] as string, + bookmark_type: entry[ "type" ] as string, + description: entry[ "description" ] as string, + name: entry[ "description" ] as string, location: BookmarkLocation.Bar, - url: entry["description"] as string, - visit_count: entry["visit_count"] as number, + url: entry[ "description" ] as string, + visit_count: entry[ "visit_count" ] as number, path: book_path, version: path.version, - message: entry["description"] as string, + message: entry[ "description" ] as string, datetime: created, timestamp_desc: "Falkon Bookmark File Created", artifact: "KDE Falkon Bookmark", @@ -134,17 +134,17 @@ export class Falkon { } // Get bookmarks in menu folder - for (const entry of json_data["roots"]["bookmark_menu"]["children"] as Record[]) { + for (const entry of json_data[ "roots" ][ "bookmark_menu" ][ "children" ] as Record[]) { const value: FalkonBookmark = { - bookmark_type: entry["type"] as string, - description: entry["description"] as string, - name: entry["name"] as string, + bookmark_type: entry[ "type" ] as string, + description: entry[ "description" ] as string, + name: entry[ "name" ] as string, location: BookmarkLocation.Menu, - url: entry["url"] as string, - visit_count: entry["visit_count"] as number, + url: entry[ "url" ] as string, + visit_count: entry[ "visit_count" ] as number, path: book_path, version: path.version, - message: entry["url"] as string, + message: entry[ "url" ] as string, datetime: created, timestamp_desc: "Falkon Bookmark File Created", artifact: "KDE Falkon Bookmark", @@ -154,17 +154,17 @@ export class Falkon { } // Get bookmarks in other - for (const entry of json_data["roots"]["other"]["children"] as Record[]) { + for (const entry of json_data[ "roots" ][ "other" ][ "children" ] as Record[]) { const value: FalkonBookmark = { - bookmark_type: entry["type"] as string, - description: entry["description"] as string, - name: entry["description"] as string, + bookmark_type: entry[ "type" ] as string, + description: entry[ "description" ] as string, + name: entry[ "description" ] as string, location: BookmarkLocation.Other, - url: entry["description"] as string, - visit_count: entry["visit_count"] as number, + url: entry[ "description" ] as string, + visit_count: entry[ "visit_count" ] as number, path: book_path, version: path.version, - message: entry["description"] as string, + message: entry[ "description" ] as string, datetime: created, timestamp_desc: "Falkon Bookmark File Created", artifact: "KDE Falkon Bookmark", @@ -175,7 +175,6 @@ export class Falkon { } return hits; - } /** @@ -192,7 +191,7 @@ export class Falkon { break; } if (!this.unfold) { - entries.forEach(x=> delete x["unfold"]); + entries.forEach(x => delete x[ "unfold" ]); } const status = dumpData(entries, "retrospect_falkon_history", output); if (status instanceof SystemError) { diff --git a/src/linux/kde/falkon/sqlite.ts b/src/linux/kde/falkon/sqlite.ts index 3fe40fad..5e10e515 100644 --- a/src/linux/kde/falkon/sqlite.ts +++ b/src/linux/kde/falkon/sqlite.ts @@ -24,21 +24,19 @@ export function falkonHistory(paths: FalkonProfile[], platform: PlatformType, un continue; } - - // Loop through history rows for (const entry of results) { const history_row: FalkonHistory = { - id: entry["id"] as number, - url: entry["url"] as string, + id: entry[ "id" ] as number, + url: entry[ "url" ] as string, unfold: undefined, db_path: full_path, version: path.version, - title: entry["title"] as string | null, - visited: unixEpochToISO(entry["date"] as number), - count: entry["count"] as number, - message: entry["url"] as string, - datetime: unixEpochToISO(entry["date"] as number), + title: entry[ "title" ] as string | null, + visited: unixEpochToISO(entry[ "date" ] as number), + count: entry[ "count" ] as number, + message: entry[ "url" ] as string, + datetime: unixEpochToISO(entry[ "date" ] as number), timestamp_desc: "Falkon URL Visited", artifact: "KDE Falkon History", data_type: "linux:browser:kde:history:entry" @@ -76,30 +74,30 @@ export function falkonCookie(paths: FalkonProfile[], platform: PlatformType, que // Loop through history rows for (const entry of results) { const history_row: FalkonCookie = { - created: unixEpochToISO(webkitToUnixEpoch(entry["creation_utc"] as number)), - host_key: entry["host_key"] as string, - top_frame_site_key: entry["top_frame_site_key"] as string, - name: entry["name"] as string, - value: entry["value"] as string, - encrypted_value: entry["encrypted_value"] as string, - path: entry["path"] as string, - expires: unixEpochToISO(webkitToUnixEpoch(entry["expires_utc"] as number)), - is_secure: !!(entry["is_secure"] as number), - is_httponly: !!(entry["is_httponly"] as number), - last_access: unixEpochToISO(webkitToUnixEpoch(entry["last_access_utc"] as number)), - has_expires: !!(entry["has_expires"] as number), - is_persistent: !!(entry["is_persistent"] as number), - priority: entry["priority"] as number, - samesite: entry["samesite"] as number, - source_scheme: entry["source_scheme"] as number, - source_port: entry["source_port"] as number, - last_update: unixEpochToISO(webkitToUnixEpoch(entry["last_access_utc"] as number)), - source_type: getChromiumCookieType(entry["source_type"] as number), - has_cross_site_ancestor: !!(entry["has_cross_site_ancestor"] as number), - message: entry["host_key"] as string, + created: unixEpochToISO(webkitToUnixEpoch(entry[ "creation_utc" ] as number)), + host_key: entry[ "host_key" ] as string, + top_frame_site_key: entry[ "top_frame_site_key" ] as string, + name: entry[ "name" ] as string, + value: entry[ "value" ] as string, + encrypted_value: entry[ "encrypted_value" ] as string, + path: entry[ "path" ] as string, + expires: unixEpochToISO(webkitToUnixEpoch(entry[ "expires_utc" ] as number)), + is_secure: !!(entry[ "is_secure" ] as number), + is_httponly: !!(entry[ "is_httponly" ] as number), + last_access: unixEpochToISO(webkitToUnixEpoch(entry[ "last_access_utc" ] as number)), + has_expires: !!(entry[ "has_expires" ] as number), + is_persistent: !!(entry[ "is_persistent" ] as number), + priority: entry[ "priority" ] as number, + samesite: entry[ "samesite" ] as number, + source_scheme: entry[ "source_scheme" ] as number, + source_port: entry[ "source_port" ] as number, + last_update: unixEpochToISO(webkitToUnixEpoch(entry[ "last_access_utc" ] as number)), + source_type: getChromiumCookieType(entry[ "source_type" ] as number), + has_cross_site_ancestor: !!(entry[ "has_cross_site_ancestor" ] as number), + message: entry[ "host_key" ] as string, db_path: full_path, version: path.version, - datetime: unixEpochToISO(webkitToUnixEpoch(entry["creation_utc"] as number)), + datetime: unixEpochToISO(webkitToUnixEpoch(entry[ "creation_utc" ] as number)), timestamp_desc: "Falkon Cookie Created", artifact: "KDE Falkon Cookie", data_type: "linux:browser:kde:cookie:entry" From 10bc651f539e5f825965dd98fe6ba8d5144f6c19 Mon Sep 17 00:00:00 2001 From: puffyCid Date: Wed, 8 Oct 2025 21:38:07 -0400 Subject: [PATCH 07/47] update --- tests/linux/compile_tests.py | 150 +++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 tests/linux/compile_tests.py diff --git a/tests/linux/compile_tests.py b/tests/linux/compile_tests.py new file mode 100644 index 00000000..e46f94cf --- /dev/null +++ b/tests/linux/compile_tests.py @@ -0,0 +1,150 @@ +# AI took my simple 15 line bash script and turned it into a nice ~180 line Python script XD + +from pathlib import Path +import subprocess +import sys +import os +import time +from datetime import datetime +from contextlib import contextmanager +from statistics import mean, median, quantiles + +from colorama import init, Fore, Style + +# Initialize colorama (needed for Windows) +init(autoreset=True) + +@contextmanager +def pushd(new_dir: Path): + """Temporarily change working directory like `cd` in Bash.""" + prev_dir = Path.cwd() + try: + os.chdir(new_dir) + yield + finally: + os.chdir(prev_dir) + +def run_tests(): + base_dir = Path.cwd() + total_start = time.perf_counter() + + total_projects = 0 + passed_projects = 0 + durations = [] # (project_name, elapsed_time) + + for entry in base_dir.iterdir(): + if not entry.is_dir(): + continue + + total_projects += 1 + with pushd(entry): + start_time = time.perf_counter() + timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + print(f"\n{Fore.CYAN}[{timestamp}] 🔥 Running test for {entry.name} 🔥{Style.RESET_ALL}") + + # Run esbuild + try: + subprocess.run( + ["esbuild", "--log-level=silent", "--bundle", "--outfile=main.js", "main.ts"], + check=True + ) + except subprocess.CalledProcessError: + print(f"{Fore.RED}❌ Failed to build {entry.name}{Style.RESET_ALL}") + break + + # Run script_tester + try: + subprocess.run( + [str(base_dir / "script_tester"), "main.js"], + check=True + ) + except subprocess.CalledProcessError: + print(f"{Fore.RED}❌ Failed test for {entry.name}{Style.RESET_ALL}") + break + else: + passed_projects += 1 + + # Duration reporting + elapsed = time.perf_counter() - start_time + durations.append((entry.name, elapsed)) + print(f"{Fore.GREEN}✅ Completed {entry.name} in {elapsed:.2f} seconds{Style.RESET_ALL}") + + # Totals + total_elapsed = time.perf_counter() - total_start + print(f"\n{Fore.MAGENTA}📊 Test Summary{Style.RESET_ALL}") + print(f" Total projects: {total_projects}") + print(f" {Fore.GREEN}Passed: {passed_projects}{Style.RESET_ALL}") + print(f" {Fore.RED}Failed: {total_projects - passed_projects}{Style.RESET_ALL}") + print(f" Total time: {total_elapsed:.2f} seconds") + + # Stats + if durations: + slowest = max(durations, key=lambda x: x[1]) + fastest = min(durations, key=lambda x: x[1]) + times = [d[1] for d in durations] + + avg_time = mean(times) + q25, q50, q75 = quantiles(times, n=4) # quartiles + + print(f" {Fore.YELLOW}🐢 Slowest project: {slowest[0]} " + f"({slowest[1]:.2f} seconds){Style.RESET_ALL}") + print(f" {Fore.CYAN}⚡ Fastest project: {fastest[0]} " + f"({fastest[1]:.2f} seconds){Style.RESET_ALL}") + print(f" {Fore.BLUE}📈 Average duration: {avg_time:.2f} seconds{Style.RESET_ALL}") + print(f" {Fore.BLUE}📊 Median duration: {median(times):.2f} seconds{Style.RESET_ALL}") + + # Pareto 80% cumulative time + sorted_durations = sorted(durations, key=lambda x: x[1], reverse=True) + cumulative = 0.0 + cutoff = 0.8 * sum(times) + pareto_list = [] + for name, t in sorted_durations: + cumulative += t + pareto_list.append((name, t)) + if cumulative >= cutoff: + break + + print(f"\n{Fore.MAGENTA}📌 Top 80% time contributors (Pareto){Style.RESET_ALL}") + for name, t in pareto_list: + print(f" {Fore.YELLOW}{name:<20}{t:.2f} sec{Style.RESET_ALL}") + + # Histogram chart with color coding + percentile + cumulative % + print(f"\n{Fore.MAGENTA}📊 Runtime Histogram (with percentiles & cumulative){Style.RESET_ALL}") + max_time = slowest[1] + scale = 40 / max_time if max_time > 0 else 1 + total_time = sum(times) + cumulative = 0.0 + + for name, t in sorted_durations: + cumulative += t + bar = "█" * int(t * scale) + # Color by relative speed + if t <= 0.75 * avg_time: + color = Fore.GREEN + elif t <= 1.25 * avg_time: + color = Fore.YELLOW + else: + color = Fore.RED + + # Percentile marker + if t <= q25: + marker = " (≤25th %ile)" + elif t <= q50: + marker = " (≤50th %ile)" + elif t <= q75: + marker = " (≤75th %ile)" + else: + marker = " (>75th %ile)" + + # Cumulative percentage + cum_pct = (cumulative / total_time) * 100 + print(f" {name:<20} {color}{bar}{Style.RESET_ALL} {t:.2f}s{marker} " + f"→ {cum_pct:5.1f}% total") + + # Exit code mirrors success/failure + if passed_projects < total_projects: + sys.exit(1) + +if __name__ == "__main__": + run_tests() \ No newline at end of file From 281fbdfd733ee5527b646f116354e63fed3fa8b6 Mon Sep 17 00:00:00 2001 From: puffycid Date: Thu, 9 Oct 2025 01:46:24 -0400 Subject: [PATCH 08/47] fixes --- .github/workflows/pullrequest.yml | 14 +-- src/linux/gnome/epiphany.ts | 14 ++- src/linux/gnome/gedit.ts | 12 ++- src/unfold/plugins/bing.ts | 3 + src/unfold/plugins/discord.ts | 2 +- src/unfold/plugins/dropbox.ts | 6 ++ src/unfold/plugins/yahoo.ts | 3 + tests/applications/compile_tests.py | 150 ++++++++++++++++++++++++++++ tests/macos/compile_tests.py | 150 ++++++++++++++++++++++++++++ 9 files changed, 341 insertions(+), 13 deletions(-) create mode 100644 tests/applications/compile_tests.py create mode 100644 tests/macos/compile_tests.py diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index fa1bc9d3..d9ac9fb5 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -47,13 +47,13 @@ jobs: if: matrix.info.os == 'ubuntu-24.04' run: git clone https://github.com/puffyCid/artemis.git && cd artemis/forensics && cargo build --release --examples && cp ../target/release/examples/script_tester ../../tests/linux && cp ../target/release/examples/script_tester ../../tests/applications - - name: Install esbuild macOS + - name: Install esbuild and colorama macOS if: matrix.info.os == 'macOS-latest' - run: brew install esbuild + run: brew install esbuild && pip3 install --user colorama - - name: Install esbuild Linux + - name: Install esbuild and colorama Linux if: matrix.info.os == 'ubuntu-24.04' - run: sudo apt install esbuild + run: sudo apt install esbuild && pip3 install --user colorama - name: Install esbuild Windows if: matrix.info.os == 'windows-latest' @@ -61,7 +61,7 @@ jobs: - name: Compile and run macOS tests if: matrix.info.os == 'macOS-latest' - run: cd tests/macos && sudo bash compile_tests.sh + run: cd tests/macos && sudo python3 compile_tests.py - name: Compile and run Windows tests if: matrix.info.os == 'windows-latest' @@ -69,8 +69,8 @@ jobs: - name: Compile and run Linux tests if: matrix.info.os == 'ubuntu-24.04' - run: cd tests/linux && sudo bash compile_tests.sh + run: cd tests/linux && sudo python3 compile_tests.py - name: Compile and run Application tests if: matrix.info.os == 'ubuntu-24.04' - run: cd tests/applications && sudo bash compile_tests.sh + run: cd tests/applications && sudo python3 compile_tests.py diff --git a/src/linux/gnome/epiphany.ts b/src/linux/gnome/epiphany.ts index 00aae65d..c4fb2b9c 100644 --- a/src/linux/gnome/epiphany.ts +++ b/src/linux/gnome/epiphany.ts @@ -168,13 +168,19 @@ export class Epiphany { } const entries = xml_data[ "session" ] as Record[]>; + if (entries[ "window" ] === undefined) { + continue; + } for (const values of entries[ "window" ]) { const embed = values[ "embed" ] as Record>[]; for (const value of embed) { + if (value[ "$" ] === undefined) { + continue; + } const session: EpiphanySessions = { - url: value[ "$" ][ "url" ], - title: value[ "$" ][ "title" ], - history: value[ "$" ][ "history" ], + url: value[ "$" ][ "url" ] ?? "", + title: value[ "$" ][ "title" ] ?? "", + history: value[ "$" ][ "history" ] ?? "", session_path: xml_file }; @@ -220,7 +226,7 @@ export class Epiphany { } else if (line.includes("=")) { const perm_line = line.replace("'", ""); const perm_types = perm_line.split("="); - if (perm_types.length > 1) { + if (perm_types.length > 1 && perm_types[ 0 ] !== undefined) { perms.permissions[ perm_types[ 0 ] ] = perm_types.at(1) ?? ""; } } diff --git a/src/linux/gnome/gedit.ts b/src/linux/gnome/gedit.ts index 9dcfc5bc..f1c3738b 100644 --- a/src/linux/gnome/gedit.ts +++ b/src/linux/gnome/gedit.ts @@ -46,9 +46,15 @@ export function geditRecentFiles( >; const docs = meta[ "document" ]; + if (docs === undefined) { + continue; + } for (const doc of docs) { + if (doc[ "$" ] === undefined) { + continue; + } const recent: RecentFiles = { - path: doc[ "$" ][ "uri" ], + path: doc[ "$" ][ "uri" ] ?? "", accessed: unixEpochToISO(Number(doc[ "$" ][ "atime" ])), gedit_source: entry.full_path, }; @@ -71,6 +77,10 @@ export function testGeditRecentFiles(): void { throw result; } + if (result[ 0 ] === undefined) { + throw `Got undefined results`; + } + if (result[ 0 ].path != "file:///home/devel/Downloads/analyzeMFT-3.0.7.1/src/analyzeMFT/__init__.py") { throw `Got path ${result[ 0 ].path} expected file:///home/devel/Downloads/analyzeMFT-3.0.7.1/src/analyzeMFT/__init__.py.......geditRecentFiles ❌`; } diff --git a/src/unfold/plugins/bing.ts b/src/unfold/plugins/bing.ts index df9a87f3..dd056db6 100644 --- a/src/unfold/plugins/bing.ts +++ b/src/unfold/plugins/bing.ts @@ -22,6 +22,9 @@ export class Bing { public parseBing() { for (const entry of this.url.query_pairs) { const [ key, ...param ] = entry.split("="); + if (key === undefined) { + continue; + } const value = param.join("="); switch (key.toLowerCase()) { case "form": { diff --git a/src/unfold/plugins/discord.ts b/src/unfold/plugins/discord.ts index 682dacf7..26f980b0 100644 --- a/src/unfold/plugins/discord.ts +++ b/src/unfold/plugins/discord.ts @@ -16,7 +16,7 @@ export class Discord { if (this.url.url.includes("/channels/")) { for (let i = 0; i < this.url.segments.length; i++) { const value = this.url.segments[ i ]; - if (value === "channels") { + if (value === "channels" || value === undefined) { continue; } diff --git a/src/unfold/plugins/dropbox.ts b/src/unfold/plugins/dropbox.ts index bc990bef..0eb41172 100644 --- a/src/unfold/plugins/dropbox.ts +++ b/src/unfold/plugins/dropbox.ts @@ -37,6 +37,9 @@ export class Dropbox { for (const entry of this.url.query_pairs) { const [ key, ...param ] = entry.split("="); + if (key === undefined) { + continue; + } const value = param.join("="); switch (key.toLowerCase()) { case "rlkey": { @@ -70,6 +73,9 @@ export class Dropbox { for (const entry of this.url.query_pairs) { const [ key, ...param ] = entry.split("="); + if (key === undefined) { + continue; + } const value = param.join("="); switch (key.toLowerCase()) { case "preview": { diff --git a/src/unfold/plugins/yahoo.ts b/src/unfold/plugins/yahoo.ts index 65673c5b..829e7354 100644 --- a/src/unfold/plugins/yahoo.ts +++ b/src/unfold/plugins/yahoo.ts @@ -17,6 +17,9 @@ export class Yahoo { public parseYahoo() { for (const entry of this.url.query_pairs) { const [ key, ...param ] = entry.split("="); + if (key === undefined) { + continue; + } const value = param.join("="); switch (key.toLowerCase()) { case "p": { diff --git a/tests/applications/compile_tests.py b/tests/applications/compile_tests.py new file mode 100644 index 00000000..e46f94cf --- /dev/null +++ b/tests/applications/compile_tests.py @@ -0,0 +1,150 @@ +# AI took my simple 15 line bash script and turned it into a nice ~180 line Python script XD + +from pathlib import Path +import subprocess +import sys +import os +import time +from datetime import datetime +from contextlib import contextmanager +from statistics import mean, median, quantiles + +from colorama import init, Fore, Style + +# Initialize colorama (needed for Windows) +init(autoreset=True) + +@contextmanager +def pushd(new_dir: Path): + """Temporarily change working directory like `cd` in Bash.""" + prev_dir = Path.cwd() + try: + os.chdir(new_dir) + yield + finally: + os.chdir(prev_dir) + +def run_tests(): + base_dir = Path.cwd() + total_start = time.perf_counter() + + total_projects = 0 + passed_projects = 0 + durations = [] # (project_name, elapsed_time) + + for entry in base_dir.iterdir(): + if not entry.is_dir(): + continue + + total_projects += 1 + with pushd(entry): + start_time = time.perf_counter() + timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + print(f"\n{Fore.CYAN}[{timestamp}] 🔥 Running test for {entry.name} 🔥{Style.RESET_ALL}") + + # Run esbuild + try: + subprocess.run( + ["esbuild", "--log-level=silent", "--bundle", "--outfile=main.js", "main.ts"], + check=True + ) + except subprocess.CalledProcessError: + print(f"{Fore.RED}❌ Failed to build {entry.name}{Style.RESET_ALL}") + break + + # Run script_tester + try: + subprocess.run( + [str(base_dir / "script_tester"), "main.js"], + check=True + ) + except subprocess.CalledProcessError: + print(f"{Fore.RED}❌ Failed test for {entry.name}{Style.RESET_ALL}") + break + else: + passed_projects += 1 + + # Duration reporting + elapsed = time.perf_counter() - start_time + durations.append((entry.name, elapsed)) + print(f"{Fore.GREEN}✅ Completed {entry.name} in {elapsed:.2f} seconds{Style.RESET_ALL}") + + # Totals + total_elapsed = time.perf_counter() - total_start + print(f"\n{Fore.MAGENTA}📊 Test Summary{Style.RESET_ALL}") + print(f" Total projects: {total_projects}") + print(f" {Fore.GREEN}Passed: {passed_projects}{Style.RESET_ALL}") + print(f" {Fore.RED}Failed: {total_projects - passed_projects}{Style.RESET_ALL}") + print(f" Total time: {total_elapsed:.2f} seconds") + + # Stats + if durations: + slowest = max(durations, key=lambda x: x[1]) + fastest = min(durations, key=lambda x: x[1]) + times = [d[1] for d in durations] + + avg_time = mean(times) + q25, q50, q75 = quantiles(times, n=4) # quartiles + + print(f" {Fore.YELLOW}🐢 Slowest project: {slowest[0]} " + f"({slowest[1]:.2f} seconds){Style.RESET_ALL}") + print(f" {Fore.CYAN}⚡ Fastest project: {fastest[0]} " + f"({fastest[1]:.2f} seconds){Style.RESET_ALL}") + print(f" {Fore.BLUE}📈 Average duration: {avg_time:.2f} seconds{Style.RESET_ALL}") + print(f" {Fore.BLUE}📊 Median duration: {median(times):.2f} seconds{Style.RESET_ALL}") + + # Pareto 80% cumulative time + sorted_durations = sorted(durations, key=lambda x: x[1], reverse=True) + cumulative = 0.0 + cutoff = 0.8 * sum(times) + pareto_list = [] + for name, t in sorted_durations: + cumulative += t + pareto_list.append((name, t)) + if cumulative >= cutoff: + break + + print(f"\n{Fore.MAGENTA}📌 Top 80% time contributors (Pareto){Style.RESET_ALL}") + for name, t in pareto_list: + print(f" {Fore.YELLOW}{name:<20}{t:.2f} sec{Style.RESET_ALL}") + + # Histogram chart with color coding + percentile + cumulative % + print(f"\n{Fore.MAGENTA}📊 Runtime Histogram (with percentiles & cumulative){Style.RESET_ALL}") + max_time = slowest[1] + scale = 40 / max_time if max_time > 0 else 1 + total_time = sum(times) + cumulative = 0.0 + + for name, t in sorted_durations: + cumulative += t + bar = "█" * int(t * scale) + # Color by relative speed + if t <= 0.75 * avg_time: + color = Fore.GREEN + elif t <= 1.25 * avg_time: + color = Fore.YELLOW + else: + color = Fore.RED + + # Percentile marker + if t <= q25: + marker = " (≤25th %ile)" + elif t <= q50: + marker = " (≤50th %ile)" + elif t <= q75: + marker = " (≤75th %ile)" + else: + marker = " (>75th %ile)" + + # Cumulative percentage + cum_pct = (cumulative / total_time) * 100 + print(f" {name:<20} {color}{bar}{Style.RESET_ALL} {t:.2f}s{marker} " + f"→ {cum_pct:5.1f}% total") + + # Exit code mirrors success/failure + if passed_projects < total_projects: + sys.exit(1) + +if __name__ == "__main__": + run_tests() \ No newline at end of file diff --git a/tests/macos/compile_tests.py b/tests/macos/compile_tests.py new file mode 100644 index 00000000..e46f94cf --- /dev/null +++ b/tests/macos/compile_tests.py @@ -0,0 +1,150 @@ +# AI took my simple 15 line bash script and turned it into a nice ~180 line Python script XD + +from pathlib import Path +import subprocess +import sys +import os +import time +from datetime import datetime +from contextlib import contextmanager +from statistics import mean, median, quantiles + +from colorama import init, Fore, Style + +# Initialize colorama (needed for Windows) +init(autoreset=True) + +@contextmanager +def pushd(new_dir: Path): + """Temporarily change working directory like `cd` in Bash.""" + prev_dir = Path.cwd() + try: + os.chdir(new_dir) + yield + finally: + os.chdir(prev_dir) + +def run_tests(): + base_dir = Path.cwd() + total_start = time.perf_counter() + + total_projects = 0 + passed_projects = 0 + durations = [] # (project_name, elapsed_time) + + for entry in base_dir.iterdir(): + if not entry.is_dir(): + continue + + total_projects += 1 + with pushd(entry): + start_time = time.perf_counter() + timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + print(f"\n{Fore.CYAN}[{timestamp}] 🔥 Running test for {entry.name} 🔥{Style.RESET_ALL}") + + # Run esbuild + try: + subprocess.run( + ["esbuild", "--log-level=silent", "--bundle", "--outfile=main.js", "main.ts"], + check=True + ) + except subprocess.CalledProcessError: + print(f"{Fore.RED}❌ Failed to build {entry.name}{Style.RESET_ALL}") + break + + # Run script_tester + try: + subprocess.run( + [str(base_dir / "script_tester"), "main.js"], + check=True + ) + except subprocess.CalledProcessError: + print(f"{Fore.RED}❌ Failed test for {entry.name}{Style.RESET_ALL}") + break + else: + passed_projects += 1 + + # Duration reporting + elapsed = time.perf_counter() - start_time + durations.append((entry.name, elapsed)) + print(f"{Fore.GREEN}✅ Completed {entry.name} in {elapsed:.2f} seconds{Style.RESET_ALL}") + + # Totals + total_elapsed = time.perf_counter() - total_start + print(f"\n{Fore.MAGENTA}📊 Test Summary{Style.RESET_ALL}") + print(f" Total projects: {total_projects}") + print(f" {Fore.GREEN}Passed: {passed_projects}{Style.RESET_ALL}") + print(f" {Fore.RED}Failed: {total_projects - passed_projects}{Style.RESET_ALL}") + print(f" Total time: {total_elapsed:.2f} seconds") + + # Stats + if durations: + slowest = max(durations, key=lambda x: x[1]) + fastest = min(durations, key=lambda x: x[1]) + times = [d[1] for d in durations] + + avg_time = mean(times) + q25, q50, q75 = quantiles(times, n=4) # quartiles + + print(f" {Fore.YELLOW}🐢 Slowest project: {slowest[0]} " + f"({slowest[1]:.2f} seconds){Style.RESET_ALL}") + print(f" {Fore.CYAN}⚡ Fastest project: {fastest[0]} " + f"({fastest[1]:.2f} seconds){Style.RESET_ALL}") + print(f" {Fore.BLUE}📈 Average duration: {avg_time:.2f} seconds{Style.RESET_ALL}") + print(f" {Fore.BLUE}📊 Median duration: {median(times):.2f} seconds{Style.RESET_ALL}") + + # Pareto 80% cumulative time + sorted_durations = sorted(durations, key=lambda x: x[1], reverse=True) + cumulative = 0.0 + cutoff = 0.8 * sum(times) + pareto_list = [] + for name, t in sorted_durations: + cumulative += t + pareto_list.append((name, t)) + if cumulative >= cutoff: + break + + print(f"\n{Fore.MAGENTA}📌 Top 80% time contributors (Pareto){Style.RESET_ALL}") + for name, t in pareto_list: + print(f" {Fore.YELLOW}{name:<20}{t:.2f} sec{Style.RESET_ALL}") + + # Histogram chart with color coding + percentile + cumulative % + print(f"\n{Fore.MAGENTA}📊 Runtime Histogram (with percentiles & cumulative){Style.RESET_ALL}") + max_time = slowest[1] + scale = 40 / max_time if max_time > 0 else 1 + total_time = sum(times) + cumulative = 0.0 + + for name, t in sorted_durations: + cumulative += t + bar = "█" * int(t * scale) + # Color by relative speed + if t <= 0.75 * avg_time: + color = Fore.GREEN + elif t <= 1.25 * avg_time: + color = Fore.YELLOW + else: + color = Fore.RED + + # Percentile marker + if t <= q25: + marker = " (≤25th %ile)" + elif t <= q50: + marker = " (≤50th %ile)" + elif t <= q75: + marker = " (≤75th %ile)" + else: + marker = " (>75th %ile)" + + # Cumulative percentage + cum_pct = (cumulative / total_time) * 100 + print(f" {name:<20} {color}{bar}{Style.RESET_ALL} {t:.2f}s{marker} " + f"→ {cum_pct:5.1f}% total") + + # Exit code mirrors success/failure + if passed_projects < total_projects: + sys.exit(1) + +if __name__ == "__main__": + run_tests() \ No newline at end of file From 00f229bac70fba9ed7fb5dbbf353ce9d8d2f3aa9 Mon Sep 17 00:00:00 2001 From: puffyCid Date: Sat, 11 Oct 2025 21:35:23 -0400 Subject: [PATCH 09/47] ad certificate ese parsing support --- artemis-docs/docs/API/Artifacts/windows.md | 61 ++++- .../Windows Artfacts/certificates.md | 115 ++++++++++ .../docs/Artifacts/Windows Artfacts/ual.md | 11 +- artemis-docs/docs/Artifacts/overview.md | 2 +- mod.ts | 1 + src/windows/errors.ts | 3 +- src/windows/ese/certs.ts | 214 ++++++++++++++++++ src/windows/ese/ual.ts | 25 +- src/windows/ese/updates.ts | 22 +- tests/windows/updates/main.ts | 5 + types/windows/ese/certs.ts | 64 ++++++ 11 files changed, 502 insertions(+), 21 deletions(-) create mode 100644 artemis-docs/docs/Artifacts/Windows Artfacts/certificates.md create mode 100644 src/windows/ese/certs.ts create mode 100644 types/windows/ese/certs.ts diff --git a/artemis-docs/docs/API/Artifacts/windows.md b/artemis-docs/docs/API/Artifacts/windows.md index 62730201..f5ff4683 100644 --- a/artemis-docs/docs/API/Artifacts/windows.md +++ b/artemis-docs/docs/API/Artifacts/windows.md @@ -604,4 +604,63 @@ You may provided an optional alternative path to the SOFTWARE Registry file. | Param | Type | Description | | ----- | ------ | ------------------------------------------ | -| path | string | Optional alternative path to Security.evtx | \ No newline at end of file +| path | string | Optional alternative path to Security.evtx | + +### ADCertificates Class + +A basic class to help interact and extract data from AD Certificates ESE databases. + +Sample TypeScript code: +```typescript +import { ADCertificates } from "./artemis-api/mod"; +import { WindowsError } from "./artemis-api/src/windows/errors"; + +function main() { + // You may also provide an optional alternative path to the ESE database + const client = new ADCertificates(); + const catalog = client.catalogInfo(); + if (catalog instanceof WindowsError) { + return; + } + const first_page = client.tableInfo(catalog, "Certificates").table_page; + const cert_pages = client.getPages(first_page); + if (cert_pages instanceof WindowsError) { + return; + } + // Depending on size of EDB file you should customize the number of pages you use + // The larger the pages array the more memory required + // 100 pages should be a reasonable default + const certs = client.getCertificates(cert_pages, client.tableInfo(catalog, "Certificates")) + console.log(JSON.stringify(certs)); +} + +main(); +``` + +#### getCertificates(pages, info) -> Certificates[] | WindowsError + +Get list of certificates from the database. + +| Param | Type | Description | +| ----- | --------- | --------------------------------------------------------- | +| pages | number[] | Number of pages to parse from the ESE database | +| info | TableInfo | Table info object that can be obtained with the ESE class | + + +#### getRequests(pages, info) -> Requests[] | WindowsError + +Get list of requests from the database. + +| Param | Type | Description | +| ----- | --------- | --------------------------------------------------------- | +| pages | number[] | Number of pages to parse from the ESE database | +| info | TableInfo | Table info object that can be obtained with the ESE class | + +#### requestAttributes(pages, info) -> RequestAttributes[] | WindowsError + +Get list of requests attributes from the database. + +| Param | Type | Description | +| ----- | --------- | --------------------------------------------------------- | +| pages | number[] | Number of pages to parse from the ESE database | +| info | TableInfo | Table info object that can be obtained with the ESE class | \ No newline at end of file diff --git a/artemis-docs/docs/Artifacts/Windows Artfacts/certificates.md b/artemis-docs/docs/Artifacts/Windows Artfacts/certificates.md new file mode 100644 index 00000000..ffa7e755 --- /dev/null +++ b/artemis-docs/docs/Artifacts/Windows Artfacts/certificates.md @@ -0,0 +1,115 @@ +--- +description: Windows Active Directory Certificates +keywords: + - windows + - ese +--- + +# Active Directory Certs + +Artemis supports parsing AD certificates from ESE databases on Windows servers. Parsing this data may be useful to identify vulnerable certificates on a system. + +## References +- [CrowdStrike White Paper](https://www.crowdstrike.com/wp-content/uploads/2023/12/investigating-active-directory-certificate-abuse.pdf) + +# Collection + +You have to use the artemis [api](../../API/overview.md) in order to collect parse AD certificates. + +# Sample API Script + +```typescript +import { ADCertificates } from "./artemis-api/mod"; +import { WindowsError } from "./artemis-api/src/windows/errors"; + +function main() { + // You may also provide an optional alternative path to the ESE database + const client = new ADCertificates(); + const catalog = client.catalogInfo(); + if (catalog instanceof WindowsError) { + return; + } + const first_page = client.tableInfo(catalog, "Certificates").table_page; + const cert_pages = client.getPages(first_page); + if (cert_pages instanceof WindowsError) { + return; + } + // Depending on size of EDB file you should customize the number of pages you use + // The larger the pages array the more memory required + const certs = client.getCertificates(cert_pages, client.tableInfo(catalog, "Certificates")) + console.log(JSON.stringify(certs)); +} + +main(); +``` + +# Output Structure + +Depends on functions called from the ADCertificates class. + +```typescript +export interface Certificates { + common_name: string; + request_id: number; + /** Base64 encoded */ + raw_cert: string; + hash: string; + serial_number: string; + distinguished_name: string; + domain: string; +} + +export interface Requests { + request_id: number; + request_type: RequestType; + status_code_number: number; + status_code: StatusCode; + disposition_message: string; + requester_name: string; + caller_name: string; + request_attributes: string; + submitted: string; + resolved: string; +} + +export interface RequestAttributes { + request_id: number; + name: string; + value: string; +} + +export enum RequestType { + PKCS10_Full = "PKCS10, Full Response", + PKCS10 = "PKCS10", + Unknown = "Unknown", +} + +/** + * Various status codes for certificate requests + * There are [alot](https://github.com/fox-it/dissect.database/pull/7/files#diff-60ccdb935072fd3aa71d6810f7c3aa7ca8ef42aadc6ce9e39ed5f54c5cc36d31R28) + * Only some listed so far + */ +export enum StatusCode { + Completed = "Operation Completed Successfully", + BadRequestSubject = "Bad Request Subject", + NoRequest = "No Request", + Empty = "Property Empty", + InvalidCA = "Invalid CA Certificte", + Suspended = "Server Suspended", + EncodingLength = "Encoding Length", + Conflict = "Role Conflict", + Restrict = "Restricted Officer", + NotConfigured = "Key Archival Not Configured", + Kra = "No Valid KRA", + BadRequest = "Bad Request Key Archival", + NoAdmin = "No CA Admin Defined", + BadRenewal = "Bad Renewal Cert Attribute", + NoSessions = "No DB Sessions", + Fault = "Alignment Fault", + Denied = "Enroll Denied", + TemplateDenied = "Template Denied", + Downlevel = "Downlevel DC SSL or Upgrade", + NoPolicy = "No Policy Server", + Unknown = "Unknown", +} +``` diff --git a/artemis-docs/docs/Artifacts/Windows Artfacts/ual.md b/artemis-docs/docs/Artifacts/Windows Artfacts/ual.md index 027437e3..21303ab6 100644 --- a/artemis-docs/docs/Artifacts/Windows Artfacts/ual.md +++ b/artemis-docs/docs/Artifacts/Windows Artfacts/ual.md @@ -15,16 +15,15 @@ This database is **not** related to to the M365 UAL (Unified Audit Logging). # Collection -You have to use the artemis [api](../../API/overview.md) in order to collect UAL -keys. +You have to use the artemis [api](../../API/overview.md) in order to collect UAL keys. # Sample API Script ```typescript -import { FileError } from ".././artemis-api/src/filesystem/errors"; -import { glob } from ".././artemis-api/src/filesystem/files"; -import { WindowsError } from ".././artemis-api/src/windows/errors"; -import { UserAccessLogging } from ".././artemis-api/src/windows/ese/ual"; +import { FileError } from "./artemis-api/src/filesystem/errors"; +import { glob } from "./artemis-api/src/filesystem/files"; +import { WindowsError } from "./artemis-api/src/windows/errors"; +import { UserAccessLogging } from "./artemis-api/src/windows/ese/ual"; function main() { const glob_path = "C:\\System32\\LogFiles\\Sum\\*.mdb"; diff --git a/artemis-docs/docs/Artifacts/overview.md b/artemis-docs/docs/Artifacts/overview.md index c99ccaef..d13854dc 100644 --- a/artemis-docs/docs/Artifacts/overview.md +++ b/artemis-docs/docs/Artifacts/overview.md @@ -18,7 +18,7 @@ A breakdown of artifacts by OS is below. | OS | Number of Artifacts | | --------------------------------- | ------------------- | -| [Windows](./windows.md) | 43 | +| [Windows](./windows.md) | 44 | | [macOS](./macos.md) | 43 | | [Linux](./linux.md) | 23 | | [FreeBSD](./freebsd.md) | 8 | diff --git a/mod.ts b/mod.ts index f5eb7295..574dc2e8 100644 --- a/mod.ts +++ b/mod.ts @@ -137,6 +137,7 @@ export { parseWordWheel } from "./src/windows/registry/wordwheel"; export { UserAccessLogging } from "./src/windows/ese/ual"; export { Updates } from "./src/windows/ese/updates"; export { Outlook } from "./src/windows/outlook"; +export {ADCertificates} from "./src/windows/ese/certs"; export { assembleScriptblocks } from "./src/windows/eventlogs/scriptblocks"; export { firewallRules } from "./src/windows/registry/firewall_rules"; export { processTreeEventLogs } from "./src/windows/eventlogs/processtree"; diff --git a/src/windows/errors.ts b/src/windows/errors.ts index 1e9897a5..64556264 100644 --- a/src/windows/errors.ts +++ b/src/windows/errors.ts @@ -39,6 +39,7 @@ export type ErrorName = | "SCRIPTBLOCK" | "FIREWALL_RULES" | "EVENTLOG_PROCESSTREE" - | "WIFI"; + | "WIFI" + | "ADCERTIFICATES"; export class WindowsError extends ErrorBase {} diff --git a/src/windows/ese/certs.ts b/src/windows/ese/certs.ts new file mode 100644 index 00000000..d47c4c02 --- /dev/null +++ b/src/windows/ese/certs.ts @@ -0,0 +1,214 @@ +import { TableInfo } from "../../../types/windows/ese" +import { Certificates, RequestAttributes, Requests, RequestType, StatusCode } from "../../../types/windows/ese/certs"; +import { getEnvValue } from "../../environment/mod"; +import { FileError } from "../../filesystem/errors"; +import { glob } from "../../filesystem/files"; +import { WindowsError } from "../errors"; +import { EseDatabase } from "../ese" + +/** + * Class to parse Windows AD Certificate Services + * References: + * - [CrowdStrike White Paper](https://www.crowdstrike.com/wp-content/uploads/2023/12/investigating-active-directory-certificate-abuse.pdf) + */ +export class ADCertificates extends EseDatabase { + /** + * Construct a `ADCertificates` object. By default it will parse the EDB file on the SystemDrive. + * @param alt_path Optional alternative path the CertLog EDB file + */ + constructor(alt_path?: string) { + let path = "\\Windows\\System32\\CertLog\\*.edb"; + if (alt_path !== undefined) { + path = alt_path; + } else { + let drive = getEnvValue("SystemDrive"); + if (drive === "") { + drive = "C:"; + } + path = `${drive}${path}`; + const paths = glob(path); + if (paths instanceof FileError) { + console.error(`Could not glob for EDB at ${path}`); + return; + } + if (paths.length < 1 || paths[0] === undefined) { + console.error(`No EDB files found`); + return; + } + path = paths[0].full_path; + } + + super(path); + } + + /** + * Function to extract rows from the `Certificates` ESE table + * @param pages Array of ESE pages to parse + * @param info `TableInfo` object + * @returns Array of `Certificates` or `WindowsError` + */ + public getCertificates(pages: number[], info: TableInfo): Certificates[] | WindowsError { + const rows = this.getRows(pages, info); + if (rows instanceof WindowsError) { + return rows; + } + + const certs: Certificates[] = []; + const cert_data = rows["Certificates"]; + if (cert_data === undefined) { + return new WindowsError(`ADCERTIFICATES`, `Could not find "Certificates" table`) + } + + for (const row of cert_data) { + const value: Certificates = { + common_name: "", + request_id: 0, + raw_cert: "", + hash: "", + serial_number: "", + distinguished_name: "", + domain: "" + }; + for (const column of row) { + switch (column.column_name) { + case "RequestID": + value.request_id = Number(column.column_data); + break; + case "$SerialNumber": + value.serial_number = column.column_data; + break; + case "RawCertificate": + value.raw_cert = column.column_data; + break; + case "$DistinguishedName": + value.distinguished_name = column.column_data; + break; + case "$CommonName": + value.common_name = column.column_data; + break; + case "$DomainComponent": + value.domain = column.column_data; + break; + case "$CertificateHash2": + value.hash = column.column_data.replace(" ", ""); + break; + default: + break; + } + } + certs.push(value); + } + + return certs; + } + + /** + * Function to extract rows from the `Requests` ESE table + * @param pages Array of ESE pages to parse + * @param info `TableInfo` object + * @returns Array of `Requests` or `WindowsError` + */ + public getRequests(pages: number[], info: TableInfo): Requests[] | WindowsError { + const rows = this.getRows(pages, info); + if (rows instanceof WindowsError) { + return rows; + } + + const reqs: Requests[] = []; + const req_data = rows["Requests"]; + if (req_data === undefined) { + return new WindowsError(`ADCERTIFICATES`, `Could not find "Requests" table`) + } + + for (const row of req_data) { + const value: Requests = { + request_id: 0, + request_type: RequestType.Unknown, + status_code_number: 0, + status_code: StatusCode.Unknown, + disposition_message: "", + requester_name: "", + caller_name: "", + request_attributes: "", + submitted: "1970-01-01T00:00:00Z", + resolved: "1970-01-01T00:00:00Z", + }; + for (const column of row) { + switch (column.column_name) { + case "RequestID": + value.request_id = Number(column.column_data); + break; + case "$RequesterName": + value.requester_name = column.column_data; + break; + case "$CallerName": + value.caller_name = column.column_data; + break; + case "$RequestAttributes": + value.request_attributes = column.column_data; + break; + case "$DispositionMessage": + value.disposition_message = column.column_data; + break; + case "StatusCode": + value.status_code_number = Number(column.column_data); + break; + case "ResolvedWhen": + value.resolved = column.column_data; + break; + case "SubmittedWhen": + value.submitted = column.column_data; + break; + default: + break; + } + } + reqs.push(value); + } + return reqs; + } + + /** + * Function to extract rows from the `RequestsAttributes` ESE table + * @param pages Array of ESE pages to parse + * @param info `TableInfo` object + * @returns Array of `RequestsAttributes` or `WindowsError` + */ + public requestAttributes(pages: number[], info: TableInfo): RequestAttributes[] | WindowsError { + const rows = this.getRows(pages, info); + if (rows instanceof WindowsError) { + return rows; + } + + const reqs: RequestAttributes[] = []; + const req_data = rows["RequestAttributes"]; + if (req_data === undefined) { + return new WindowsError(`ADCERTIFICATES`, `Could not find "RequestAttributes" table`) + } + + for (const row of req_data) { + const value: RequestAttributes = { + request_id: 0, + name: "", + value: "" + }; + for (const column of row) { + switch (column.column_name) { + case "RequestID": + value.request_id = Number(column.column_data); + break; + case "$AttributeName": + value.name = column.column_data; + break; + case "$AttributeValue": + value.value = column.column_data; + break; + default: + break; + } + } + reqs.push(value); + } + return reqs; + } +} \ No newline at end of file diff --git a/src/windows/ese/ual.ts b/src/windows/ese/ual.ts index b6273e8f..1a6613b3 100644 --- a/src/windows/ese/ual.ts +++ b/src/windows/ese/ual.ts @@ -22,7 +22,7 @@ export class UserAccessLogging extends EseDatabase { * Construct a `UserAccessLogging` object based on the provided UAL file. Client.mdb and .mdb files contain the logon information. SystemIdentity.mdb contains role information * @param path Path to UAL related file. Such as SystemIdentity.mdb or Current.mdb or .mdb. */ - constructor (path: string) { + constructor(path: string) { super(path); this.info = { obj_id_table: 0, @@ -57,7 +57,15 @@ export class UserAccessLogging extends EseDatabase { return rows; } - return this.parseIds(rows[ "ROLE_IDS" ]); + const row_data = rows["ROLE_IDS"]; + if (row_data === undefined) { + return new WindowsError( + `UAL`, + `Could not find data from "ROLE_IDS" table. Got undefined`, + ); + } + + return this.parseIds(row_data); } /** @@ -82,8 +90,15 @@ export class UserAccessLogging extends EseDatabase { if (rows instanceof WindowsError) { return rows; } + const row_data = rows["CLIENTS"]; + if (row_data === undefined) { + return new WindowsError( + `UAL`, + `Could not find data from "CLIENTS" table. Got undefined`, + ); + } - const clients = this.parseClients(rows[ "CLIENTS" ]); + const clients = this.parseClients(row_data); let roles_limit: number[] = []; if (roles_ual === undefined) { return clients; @@ -156,13 +171,13 @@ export class UserAccessLogging extends EseDatabase { private setupClients(): void | WindowsError { const catalog = this.catalogInfo(); if (catalog instanceof WindowsError) { - return; + return catalog; } this.info = this.tableInfo(catalog, "CLIENTS"); const pages = this.getPages(this.info.table_page); if (pages instanceof WindowsError) { - return; + return pages; } this.pages = pages; diff --git a/src/windows/ese/updates.ts b/src/windows/ese/updates.ts index 5c50e78b..601a6bf2 100644 --- a/src/windows/ese/updates.ts +++ b/src/windows/ese/updates.ts @@ -26,7 +26,7 @@ export class Updates extends EseDatabase { * Contruct `Updates` to parse Windows Updates history. By default will parse updates at `\Windows\SoftwareDistribution\DataStore\DataStore.edb`. Unless you specify alternative file. * @param alt_path Optional alternative path to `DataStore.edb` */ - constructor (alt_path?: string) { + constructor(alt_path?: string) { const default_path = getEnvValue("SystemDrive"); let path = `${default_path}\\Windows\\SoftwareDistribution\\DataStore\\DataStore.edb`; @@ -63,7 +63,15 @@ export class Updates extends EseDatabase { return rows; } - return this.parseHistory(rows[ this.table ]); + const row_data = rows[this.table]; + if (row_data === undefined) { + return new WindowsError( + `UPDATESHISTORY`, + `Could not find "tbHistory" table. Got undefined`, + ); + } + + return this.parseHistory(row_data); } private setupHistory() { @@ -135,15 +143,15 @@ export class Updates extends EseDatabase { if (update_info instanceof Error) { console.warn(`could not parse update id info ${update_info}`); } else { - update.update_id = update_info[ "guid" ] as string; - update.update_revision = update_info[ "revision" ] as number; + update.update_id = update_info["guid"] as string; + update.update_revision = update_info["revision"] as number; } } else if (column.column_name === "ServerId") { const update_info = this.getUpdateId(column.column_data); if (update_info instanceof Error) { console.warn(`could not parse service id info ${update_info}`); } else { - update.service_id = update_info[ "guid" ] as string; + update.service_id = update_info["guid"] as string; } } else if (column.column_name === "ServerSelection") { update.server_selection = this.getServerSelection(column.column_data); @@ -171,7 +179,7 @@ export class Updates extends EseDatabase { } const update_id: Record = {}; - update_id[ "guid" ] = formatGuid(Endian.Le, guid.nommed as Uint8Array); + update_id["guid"] = formatGuid(Endian.Le, guid.nommed as Uint8Array); if (guid.remaining.length === 0) { return update_id; @@ -185,7 +193,7 @@ export class Updates extends EseDatabase { return revision_data; } - update_id[ "revision" ] = revision_data.value; + update_id["revision"] = revision_data.value; return update_id; } diff --git a/tests/windows/updates/main.ts b/tests/windows/updates/main.ts index 6dbdace1..d6cdffee 100644 --- a/tests/windows/updates/main.ts +++ b/tests/windows/updates/main.ts @@ -3,6 +3,8 @@ import { Updates } from "../../../src/windows/ese/updates"; function main() { const client = new Updates(); + console.log('Running Windows Update History tests....'); + console.log(' Starting live test....'); const results = client.updateHistory(client.pages); if (results instanceof WindowsError) { @@ -12,6 +14,9 @@ function main() { throw results; } + console.log(' Live test passed! 🥳\n'); + console.log('All Windows Update History tests passed! 🥳💃🕺'); + } main(); diff --git a/types/windows/ese/certs.ts b/types/windows/ese/certs.ts new file mode 100644 index 00000000..ebb03332 --- /dev/null +++ b/types/windows/ese/certs.ts @@ -0,0 +1,64 @@ +export interface Certificates { + common_name: string; + request_id: number; + /** Base64 encoded */ + raw_cert: string; + hash: string; + serial_number: string; + distinguished_name: string; + domain: string; +} + +export interface Requests { + request_id: number; + request_type: RequestType; + status_code_number: number; + status_code: StatusCode; + disposition_message: string; + requester_name: string; + caller_name: string; + request_attributes: string; + submitted: string; + resolved: string; +} + +export interface RequestAttributes { + request_id: number; + name: string; + value: string; +} + +export enum RequestType { + PKCS10_Full = "PKCS10, Full Response", + PKCS10 = "PKCS10", + Unknown = "Unknown", +} + +/** + * Various status codes for certificate requests + * There are [alot](https://github.com/fox-it/dissect.database/pull/7/files#diff-60ccdb935072fd3aa71d6810f7c3aa7ca8ef42aadc6ce9e39ed5f54c5cc36d31R28) + * Only some listed so far + */ +export enum StatusCode { + Completed = "Operation Completed Successfully", + BadRequestSubject = "Bad Request Subject", + NoRequest = "No Request", + Empty = "Property Empty", + InvalidCA = "Invalid CA Certificte", + Suspended = "Server Suspended", + EncodingLength = "Encoding Length", + Conflict = "Role Conflict", + Restrict = "Restricted Officer", + NotConfigured = "Key Archival Not Configured", + Kra = "No Valid KRA", + BadRequest = "Bad Request Key Archival", + NoAdmin = "No CA Admin Defined", + BadRenewal = "Bad Renewal Cert Attribute", + NoSessions = "No DB Sessions", + Fault = "Alignment Fault", + Denied = "Enroll Denied", + TemplateDenied = "Template Denied", + Downlevel = "Downlevel DC SSL or Upgrade", + NoPolicy = "No Policy Server", + Unknown = "Unknown", +} \ No newline at end of file From 328266fa56fa368d7ed4ffe8bda682829c0bac1c Mon Sep 17 00:00:00 2001 From: puffycid Date: Sun, 12 Oct 2025 17:52:50 -0400 Subject: [PATCH 10/47] api updates --- src/macos/plist/firewall.ts | 8 ++++---- src/macos/plist/lulu.ts | 15 +++++++++++++-- src/macos/plist/system_extensions.ts | 2 +- src/macos/plist/wifi.ts | 26 +++++++++++++++----------- src/macos/plist/xprotect.ts | 2 +- src/unix/shell_history.ts | 17 ++++++++--------- 6 files changed, 42 insertions(+), 28 deletions(-) diff --git a/src/macos/plist/firewall.ts b/src/macos/plist/firewall.ts index 444099d6..e970f58a 100644 --- a/src/macos/plist/firewall.ts +++ b/src/macos/plist/firewall.ts @@ -45,7 +45,7 @@ export function firewallStatus(alt_path?: string): Firewall[] | MacosError { global_state: !!results[ "globalstate" ], logging_option: !!results[ "loggingoption" ], stealth_enabled: !!results[ "stealthenabled" ], - version: results[ "version" ], + version: results[ "version" ] ?? "", applications: [], exceptions: [], explict_auths: [], @@ -147,8 +147,8 @@ function parseApplications( } // If we have the raw bytes, now parse the `alias` info - if (embedded_plist instanceof Array) { - const raw_bytes = Uint8Array.from(embedded_plist); + if (Array.isArray(embedded_plist)) { + const raw_bytes = Uint8Array.from(embedded_plist as number[]); const alias_result = parseAlias(raw_bytes); if (alias_result instanceof MacosError) { console.error( @@ -222,7 +222,7 @@ function getServices(services: Record): Services[] { function getAuths(auths: Record[]): string[] { const entries: string[] = []; for (const auth of auths) { - entries.push(auth[ "id" ]); + entries.push(auth[ "id" ] ?? ""); } return entries; } diff --git a/src/macos/plist/lulu.ts b/src/macos/plist/lulu.ts index b8188cd7..d16d78a8 100644 --- a/src/macos/plist/lulu.ts +++ b/src/macos/plist/lulu.ts @@ -33,6 +33,9 @@ export function luluRules(alt_file?: string): LuluRules | MacosError { }; const object_data = objects[ "$objects" ]; + if (object_data === undefined) { + return new MacosError(`LULU`, `Got undefined for LuLu FW objects`); + } for (const entry of object_data) { if (typeof entry !== "object") { continue; @@ -106,7 +109,11 @@ function getCodeSigning( } for (let i = 0; i < data[ "NS.keys" ].length; i++) { - const key = objects.at(data[ "NS.keys" ][ i ]) as string ?? `${i}`; + const ns_value = data[ "NS.keys" ][ i ]; + if (ns_value === undefined) { + continue; + } + const key = objects.at(ns_value) as string ?? `${i}`; const value_key = data[ "NS.objects" ].at(i); if (value_key === undefined) { @@ -129,8 +136,12 @@ function getCodeSigning( } const entries: string[] = []; + const object_values = value[ "NS.objects" ]; + if (object_values === undefined) { + continue; + } // more NS.Objects - for (const entry of value[ "NS.objects" ]) { + for (const entry of object_values) { const lulu_value = objects.at(entry) as string ?? `${entry}`; entries.push(lulu_value); } diff --git a/src/macos/plist/system_extensions.ts b/src/macos/plist/system_extensions.ts index 260d8b85..3ba4d398 100644 --- a/src/macos/plist/system_extensions.ts +++ b/src/macos/plist/system_extensions.ts @@ -24,7 +24,7 @@ export function systemExtensions( const exts: SystemExtension[] = []; for (const entry in plist_data) { - if (entry !== "extensions") { + if (entry !== "extensions" || Array.isArray(plist_data)) { continue; } diff --git a/src/macos/plist/wifi.ts b/src/macos/plist/wifi.ts index a2d43b27..0586bd6e 100644 --- a/src/macos/plist/wifi.ts +++ b/src/macos/plist/wifi.ts @@ -39,20 +39,24 @@ function parseWifi(path: string): Wifi[] { const wifis: Wifi[] = []; for (const entry in wifi_data) { + const value = wifi_data[ entry ]; + if (value === undefined) { + continue; + } const wifi_value: Wifi = { name: entry.replace("wifi.network.ssid.", ""), - security: wifi_data[ entry ].SupportedSecurityTypes, - hidden: wifi_data[ entry ].Hidden, - roaming_profile: wifi_data[ entry ].__OSSpecific__.RoamingProfileType, - add_reason: wifi_data[ entry ].AddReason, - added_at: wifi_data[ entry ].AddedAt, - auto_join: wifi_data[ entry ].AutoJoinDisabled, - personal_hotspot: (wifi_data[ entry ].PersonalHotspot === undefined) + security: value.SupportedSecurityTypes, + hidden: value.Hidden, + roaming_profile: value.__OSSpecific__.RoamingProfileType, + add_reason: value.AddReason, + added_at: value.AddedAt, + auto_join: value.AutoJoinDisabled, + personal_hotspot: (value.PersonalHotspot === undefined) ? false - : wifi_data[ entry ].PersonalHotspot as boolean, - joined_by_user_at: wifi_data[ entry ].JoinedByUserAt, - last_discovered: wifi_data[ entry ].LastDiscoveredAt, - updated_at: wifi_data[ entry ].UpdatedAt, + : value.PersonalHotspot as boolean, + joined_by_user_at: value.JoinedByUserAt, + last_discovered: value.LastDiscoveredAt, + updated_at: value.UpdatedAt, }; wifis.push(wifi_value); } diff --git a/src/macos/plist/xprotect.ts b/src/macos/plist/xprotect.ts index f7305cb5..586b4abb 100644 --- a/src/macos/plist/xprotect.ts +++ b/src/macos/plist/xprotect.ts @@ -65,7 +65,7 @@ function extractXprotectEntries( break; case "LaunchServices": { const launch = xprotect[ key ] as Record; - entry.launch_type = launch[ "LSItemContentType" ]; + entry.launch_type = launch[ "LSItemContentType" ] ?? ""; break; } case "Matches": diff --git a/src/unix/shell_history.ts b/src/unix/shell_history.ts index edc7b979..62a55d89 100644 --- a/src/unix/shell_history.ts +++ b/src/unix/shell_history.ts @@ -7,7 +7,6 @@ import { FileError } from "../filesystem/errors"; import { glob, readTextFile } from "../filesystem/files"; import { PlatformType } from "../system/systeminfo"; import { unixEpochToISO } from "../time/conversion"; -import { UnixError } from "./errors"; export function getBashHistory(platform: PlatformType.Linux | PlatformType.Darwin, alt_file?: string): BashHistory[] { let paths: string[] = [ "/home/*/.bash_history" ]; @@ -103,7 +102,7 @@ function parseBash(text: string, path: string): BashHistory[] { const timestamp_regex = /^#([0-9]+)$/; const values: BashHistory[] = []; for (let i = 0; i < lines.length; i++) { - if (lines[ i ] === "") { + if (lines[ i ] === "" || lines[ i ] === undefined) { continue; } let history: BashHistory = { @@ -112,15 +111,15 @@ function parseBash(text: string, path: string): BashHistory[] { line: 0, path, }; - const time_hit = timestamp_regex.exec(lines[ i ]); + const time_hit = timestamp_regex.exec(lines[ i ] ?? ""); if (time_hit === null || time_hit.length === 0) { - history.history = lines[ i ]; + history.history = lines[ i ] ?? ""; history.line = i; values.push(history); } else { const unixepoch_time = time_hit[ 0 ].substring(1); i++; - history.history = lines[ i ]; + history.history = lines[ i ] ?? ""; history.line = i; history.timestamp = unixEpochToISO(Number(unixepoch_time)); values.push(history); @@ -135,7 +134,7 @@ function parseZsh(text: string, path: string): ZshHistory[] { const timestamp_regex = /^: {0,10}([0-9]{1,11}):[0-9]+;(.*)$/; const values: ZshHistory[] = []; for (let i = 0; i < lines.length; i++) { - if (lines[ i ] === "") { + if (lines[ i ] === "" || lines[ i ] === undefined) { continue; } let history: ZshHistory = { @@ -144,14 +143,14 @@ function parseZsh(text: string, path: string): ZshHistory[] { line: 0, path, }; - const time_hit = timestamp_regex.exec(lines[ i ]); + const time_hit = timestamp_regex.exec(lines[ i ] ?? ""); if (time_hit === null || time_hit.length < 3) { - history.history = lines[ i ]; + history.history = lines[ i ] ?? ""; history.line = i; values.push(history); } else { const unixepoch_time = time_hit[ 1 ]; - history.history = time_hit[ 2 ]; + history.history = time_hit[ 2 ] ?? ""; history.line = i; history.timestamp = unixEpochToISO(Number(unixepoch_time)); values.push(history); From e5c453b1ebb6b1614f354e41c4b13d15ee9098bf Mon Sep 17 00:00:00 2001 From: puffyCid Date: Mon, 13 Oct 2025 17:03:57 -0400 Subject: [PATCH 11/47] registry update --- src/windows/registry.ts | 6 ++++-- src/windows/registry/wifi.ts | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/windows/registry.ts b/src/windows/registry.ts index ab03d151..894d1b83 100644 --- a/src/windows/registry.ts +++ b/src/windows/registry.ts @@ -4,12 +4,14 @@ import { WindowsError } from "./errors"; /** * Function to parse a `Registry` file * @param path Full path to a `Registry` file + * @param [regex=""] Optional Rust compatible regular expression to filter Registry Key paths. Registry values are not filtered + * @param [start_path=""] Optional Registry Key path to start * @returns `Registry` array or `WindowsError` */ -export function getRegistry(path: string): Registry[] | WindowsError { +export function getRegistry(path: string, regex = "", start_path = ""): Registry[] | WindowsError { try { //@ts-ignore: Custom Artemis function - const data = js_registry(path); + const data = js_registry(path, regex, start_path); return data; } catch (err) { diff --git a/src/windows/registry/wifi.ts b/src/windows/registry/wifi.ts index 9aee83a0..9cddb4ea 100644 --- a/src/windows/registry/wifi.ts +++ b/src/windows/registry/wifi.ts @@ -25,7 +25,7 @@ export function wifiNetworksWindows(alt_path?: string): Wifi[] | WindowsError { path = `${drive}${path}`; } - const reg_entries = getRegistry(path); + const reg_entries = getRegistry(path, "\\\\currentversion\\\\networklist\\\\profiles\\\\\\{"); if (reg_entries instanceof WindowsError) { return new WindowsError(`WIFI`, `could not parse the SOFTWARE Registry file ${reg_entries}`); } From 32be4d5c347c941df7a842396418b94baf98ea9d Mon Sep 17 00:00:00 2001 From: puffyCid Date: Mon, 13 Oct 2025 18:35:15 -0400 Subject: [PATCH 12/47] updating onedrive parsing --- mod.ts | 1 + src/applications/onedrive/odl.ts | 32 ++- src/applications/onedrive/onedrive.ts | 297 ++++++++++++++++++++++++++ src/applications/onedrive/parser.ts | 10 - types/applications/onedrive.ts | 8 + 5 files changed, 336 insertions(+), 12 deletions(-) create mode 100644 src/applications/onedrive/onedrive.ts diff --git a/mod.ts b/mod.ts index 574dc2e8..a3b5e348 100644 --- a/mod.ts +++ b/mod.ts @@ -93,6 +93,7 @@ export { querySqlite } from "./src/applications/sqlite"; export { NextcloudClient } from "./src/applications/nextcloud/cloud"; export { LevelDb } from "./src/applications/leveldb/level"; export { AnyDesk } from "./src/applications/anydesk/rmm"; +export {OneDrive} from "./src/applications/onedrive/onedrive"; /** * Windows exported functions diff --git a/src/applications/onedrive/odl.ts b/src/applications/onedrive/odl.ts index 86acfd4a..96060e99 100644 --- a/src/applications/onedrive/odl.ts +++ b/src/applications/onedrive/odl.ts @@ -1,8 +1,10 @@ +import { readFile } from "../../../mod"; import { OneDriveLog } from "../../../types/applications/onedrive"; import { decompress_gzip } from "../../compression/decompress"; import { CompressionError } from "../../compression/errors"; import { encode } from "../../encoding/base64"; import { extractUtf8String } from "../../encoding/strings"; +import { FileError } from "../../filesystem/errors"; import { NomError } from "../../nom/error"; import { Endian, @@ -17,7 +19,33 @@ import { import { unixEpochToISO } from "../../time/conversion"; import { ApplicationError } from "../errors"; -export function parseOdl( + +/** + * Function to read and parse OneDrive Log files + * @param paths Array of `GlobInfo` to OneDrive Log files (odl) + * @returns Array of `OneDriveLog` entries + */ +export function readOdlFiles(path: string): OneDriveLog[] | ApplicationError { + const data = readFile(path); + if (data instanceof FileError) { + return new ApplicationError(`ONEDRIVE`, `could not read log ${path}: ${data.message}`); + } + let filename = ""; + if (path.includes("\\")) { + filename = path.split("\\").pop() ?? ""; + } else { + filename = path.split("/").pop() ?? ""; + } + + const logs = parseOdl(data, path, filename); + if (logs instanceof ApplicationError) { + return new ApplicationError(`ONEDRIVE`, `Failed to parse ${path}: ${logs.message}`); + + } + return logs; +} + +function parseOdl( data: Uint8Array, path: string, filename: string, @@ -81,7 +109,7 @@ export function parseOdl( ); } - const gzip_key = [ 31, 139, 8, 0 ]; + const gzip_key = [31, 139, 8, 0]; if ( Array.from(compressed_data.remaining.slice(0, 4) as Uint8Array) .toString() === gzip_key.toString() diff --git a/src/applications/onedrive/onedrive.ts b/src/applications/onedrive/onedrive.ts new file mode 100644 index 00000000..e04680bf --- /dev/null +++ b/src/applications/onedrive/onedrive.ts @@ -0,0 +1,297 @@ +import { dumpData, glob, Output, outputResults, PlatformType, readTextFile } from "../../../mod"; +import { KeyInfo, OneDriveLog, OnedriveProfile } from "../../../types/applications/onedrive"; +import { getEnvValue } from "../../environment/mod"; +import { FileError } from "../../filesystem/errors"; +import { ApplicationError } from "../errors"; +import { readOdlFiles } from "./odl"; + +/** + * TODO: + * 1. Sync db + * 2. config files (regitry and plist) + * 3. tests? + * - odl file + * - key file (random key) + * - slimmed down db? + * - ntuser registry file? + */ + +/** + * Class to parse OneDrive artifacts + */ +export class OneDrive { + private platform: PlatformType; + private user = ""; + private profiles: OnedriveProfile[] = []; + + /** + * Construct an `OneDrive` object that can parse all OneDrive supported artifacts for all users + * @param platform OS `PlatformType` + * @param [user="*"] Optional specific user to parse OneDrive info. Default is all users + * @param alt_path Optional directory that contains *all* OneDrive related artifact files + */ + constructor(platform: PlatformType.Darwin | PlatformType.Windows, user = "*", alt_path?: string) { + this.platform = platform; + this.user = user; + + if (alt_path !== undefined) { + let separator = "/"; + let config = "*.OneDriveStandaloneSuite.plist" + if (this.platform === PlatformType.Windows) { + separator = "\\"; + config = "NTUSER.DAT"; + } + + const profile: OnedriveProfile = { + sync_db: this.getFiles(`${alt_path}${separator}SyncEngineDatabase.db`), + odl_files: this.getFiles(`${alt_path}${separator}*odl*`), + key_file: this.getFiles(`${alt_path}${separator}general.keystore`), + config_file: this.getFiles(`${alt_path}${separator}${config}`), + } + this.profiles.push(profile); + + } + this.setupProfiles(); + } + + /** + * View all artifacts the `OneDrive` object found related to OneDrive + * @returns Array of `OnedriveProfile` + */ + public oneDriveProfiles(): OnedriveProfile[] { + return this.profiles; + } + + /** + * Function to parse OneDrive key files. By default all keys are parsed based on how the `OneDrive` class was initialized + * By default all key entries are returned. You may provide an optional `Output` object to instead output the results to a file + * If results are outputted to a file. An empty array is returned + * @param files Optional array of specific keys files to parse + * @param output Optional `Output` object to output results instead of returning them to the caller + * @param [metadata_runtime=false] Append runtime metadata to the output. Default is false. Only applicable if the Output.Format is JSON or JSONL + * @returns Array of `KeyInfo` + */ + public oneDriveKeys(files?: string[], output?: Output, metadata_runtime = false): KeyInfo[] { + let keys: KeyInfo[] = []; + // If we only want to parse a subset of keys + if (files !== undefined) { + for (const entry of files) { + const key: KeyInfo = { + path: entry, + key: "", + }; + const data = readTextFile(entry); + if (data instanceof FileError) { + console.warn(`failed to read file ${entry}: ${data.message}`); + continue; + } + + const values = JSON.parse(data) as Record[]; + for (const value of values) { + key.key = value["Key"] as string; + break; + } + keys.push(key); + } + if (output !== undefined) { + if (metadata_runtime) { + outputResults(keys, "onedrive_keys", output); + } else { + dumpData(keys, "onedrive_keys", output); + } + return []; + } + return keys; + } + + // Parse all keys + for (const profile of this.profiles) { + for (const entry of profile.key_file) { + const key: KeyInfo = { + path: entry, + key: "", + }; + const data = readTextFile(entry); + if (data instanceof FileError) { + console.warn(`failed to read file ${entry}: ${data.message}`); + continue; + } + + const values = JSON.parse(data) as Record[]; + for (const value of values) { + key.key = value["Key"] as string; + break; + } + keys.push(key); + } + if (output !== undefined) { + if (metadata_runtime) { + outputResults(keys, "onedrive_keys", output); + } else { + dumpData(keys, "onedrive_keys", output); + } + return []; + } + } + return keys; + } + + /** + * Function to parse OneDrive Log (ODL) files. By default all logs are parsed based on how the `OneDrive` class was initialized + * By default all log entries are returned. You may provide an optional `Output` object to instead output the results to a file + * If results are outputted to a file. An empty array is returned + * @param files Optional array of specific ODL files to parse + * @param output Optional `Output` object to output results instead of returning them to the caller + * @param [metadata_runtime=false] Append runtime metadata to the output. Default is false. Only applicable if the Output.Format is JSON or JSONL + * @returns Array of `OneDriveLog` + */ + public parseOnedriveLogs(files?: string[], output?: Output, metadata_runtime = false): OneDriveLog[] { + let logs: OneDriveLog[] = []; + // Check if we only want to parse a subset of logs + if (files !== undefined) { + for (const entry of files) { + const values = readOdlFiles(entry); + if (values instanceof ApplicationError) { + console.error(`${values}`); + continue; + } + if (output !== undefined) { + if (metadata_runtime) { + outputResults(values, "onedrive_odl_logs", output); + } else { + dumpData(values, "onedrive_odl_logs", output); + } + continue; + } + logs = logs.concat(values); + } + return logs; + } + + // Parse all logs + for (const profile of this.profiles) { + for (const entry of profile.odl_files) { + const values = readOdlFiles(entry); + if (values instanceof ApplicationError) { + console.error(`${values}`); + continue; + } + if (output !== undefined) { + if (metadata_runtime) { + outputResults(values, "onedrive_odl_logs", output); + } else { + dumpData(values, "onedrive_odl_logs", output); + } + continue; + } + logs = logs.concat(values); + } + } + return logs; + } + + /** + * Setup OneDrive paths for all users or specific user if provided + * @returns Nothing + */ + private setupProfiles(): void { + if (this.platform === PlatformType.Darwin) { + const base_users = `/Users/${this.user}`; + const all_users = glob(base_users); + if (all_users instanceof FileError) { + return; + } + + for (const user of all_users) { + const profile: OnedriveProfile = { + sync_db: [], + odl_files: [], + key_file: [], + config_file: [], + }; + const odl_glob = `${user.full_path}/Library/Logs/OneDrive/*/*odl*`; + profile.odl_files = this.getFiles(odl_glob); + + const sync_glob = `${user.full_path}/Library/Application Support/OneDrive/settings/*/SyncEngineDatabase.db`; + profile.sync_db = this.getFiles(sync_glob); + + const key_glob = `${user.full_path}/Library/Logs/OneDrive/*/general.keystore`; + profile.key_file = this.getFiles(key_glob); + + const config_glob = `${user.full_path}/Library/Group Containers/*.OneDriveStandaloneSuite/Library/Preferences/*.OneDriveStandaloneSuite.plist`; + profile.config_file = this.getFiles(config_glob); + + if (profile.config_file.length === 0 && + profile.key_file.length === 0 && + profile.odl_files.length === 0 && + profile.sync_db.length === 0) { + continue; + } + this.profiles.push(profile); + } + } + + let drive = getEnvValue("HOMEDRIVE"); + if (drive === "") { + drive = "C:" + } + const base_users = `${drive}\\Users\\${this.user}`; + const all_users = glob(base_users); + if (all_users instanceof FileError) { + return; + } + + for (const user of all_users) { + const profile: OnedriveProfile = { + sync_db: [], + odl_files: [], + key_file: [], + config_file: [], + }; + + const odl_glob = `${user.full_path}\\AppData\\Local\\Microsoft\\OneDrive\\logs\\*\\*odl*`; + profile.odl_files = this.getFiles(odl_glob); + + const sync_glob = `${user.full_path}\\AppData\\Local\\Microsoft\\OneDrive\\settings\\*\\SyncEngineDatabase.db`; + profile.sync_db = this.getFiles(sync_glob); + + const key_glob = `${user.full_path}\\AppData\\Local\\Microsoft\\OneDrive\\logs\\*\\general.keystore` + profile.key_file = this.getFiles(key_glob); + + const config_glob = `${user.full_path}\\NTUSER.*`; + + profile.config_file = this.getFiles(config_glob); + if (profile.key_file.length === 0 && + profile.odl_files.length === 0 && + profile.sync_db.length === 0) { + continue; + } + this.profiles.push(profile); + } + + + } + + /** + * Function to get file artifacts associated with OneDrive + * @param glob_string Glob string that points to files associated with OneDrive artifacts + * @returns Array of strings + */ + private getFiles(glob_string: string): string[] { + const files: string[] = []; + const glob_files = glob(glob_string); + if (glob_files instanceof FileError) { + return []; + } + + for (const entry of glob_files) { + if (entry.filename.toLocaleLowerCase().includes("ntuser.dat") && + !entry.filename.toLocaleLowerCase().endsWith("dat")) { + continue; + } + files.push(entry.full_path); + } + + return files; + } +} \ No newline at end of file diff --git a/src/applications/onedrive/parser.ts b/src/applications/onedrive/parser.ts index fbc0eae6..38093933 100644 --- a/src/applications/onedrive/parser.ts +++ b/src/applications/onedrive/parser.ts @@ -19,7 +19,6 @@ import { unixEpochToISO } from "../../time/conversion"; import { WindowsError } from "../../windows/errors"; import { getRegistry } from "../../windows/registry"; import { ApplicationError } from "../errors"; -import { parseOdl } from "./odl"; import { extractSyncEngine } from "./sqlite"; /** @@ -138,15 +137,6 @@ export function readOdlFiles(paths: GlobInfo[]): OneDriveLog[] { ); continue; } - - const logs = parseOdl(data, entry.full_path, entry.filename); - if (logs instanceof ApplicationError) { - console.warn( - `Failed to parse ${entry.full_path}: ${logs.message}`, - ); - continue; - } - drive_logs = drive_logs.concat(logs); } return drive_logs; diff --git a/types/applications/onedrive.ts b/types/applications/onedrive.ts index fdab491b..fd875e81 100644 --- a/types/applications/onedrive.ts +++ b/types/applications/onedrive.ts @@ -87,3 +87,11 @@ export interface KeyInfo { path: string; key: string; } + + +export interface OnedriveProfile { + sync_db: string[]; + odl_files: string[]; + key_file: string[]; + config_file: string[]; +} \ No newline at end of file From 872c9369bdb6c22a331017f728c62b4d24775fae Mon Sep 17 00:00:00 2001 From: puffyCid Date: Mon, 13 Oct 2025 23:28:17 -0400 Subject: [PATCH 13/47] updating onedrive parsing --- .../docs/API/Artifacts/applications.md | 94 +++++- .../Application Artifacts/onedrive.md | 84 +++-- artemis-docs/package-lock.json | 33 +- src/applications/onedrive/config.ts | 111 +++++++ src/applications/onedrive/odl.ts | 92 ++++++ src/applications/onedrive/onedrive.ts | 163 +++++++++- src/applications/onedrive/parser.ts | 293 ------------------ src/applications/onedrive/sqlite.ts | 167 +++++++--- src/windows/registry.ts | 4 +- src/windows/registry/wifi.ts | 8 - tests/test.ts | 4 +- tests/test_data/DFIRArtifactMuseum/LICENSE | 21 ++ .../BrowserMetrics-66F171B2-5A2C.pma | Bin 0 -> 1310720 bytes .../BrowserMetrics-66F171BD-5BFC.pma | Bin 0 -> 1310720 bytes .../BrowserMetrics-66F171C7-3BE8.pma | Bin 0 -> 1310720 bytes .../EBWebView/Crashpad/metadata | 0 .../EBWebView/Crashpad/settings.dat | Bin 0 -> 280 bytes .../EBWebView/Crashpad/throttle_store.dat | 1 + .../EBWebView/Default/ClientCertificates/LOCK | 0 .../EBWebView/Default/ClientCertificates/LOG | 0 .../Default/ClientCertificates/LOG.old | 0 .../EBWebView/Default/Code Cache/js/index | Bin 0 -> 24 bytes .../Code Cache/js/index-dir/the-real-index | Bin 0 -> 48 bytes .../EBWebView/Default/Code Cache/wasm/index | Bin 0 -> 24 bytes .../Code Cache/wasm/index-dir/the-real-index | Bin 0 -> 48 bytes .../Default/DawnGraphiteCache/data_0 | Bin 0 -> 8192 bytes .../Default/DawnGraphiteCache/data_1 | Bin 0 -> 270336 bytes .../Default/DawnGraphiteCache/data_2 | Bin 0 -> 8192 bytes .../Default/DawnGraphiteCache/data_3 | Bin 0 -> 8192 bytes .../EBWebView/Default/DawnGraphiteCache/index | Bin 0 -> 262512 bytes .../EBWebView/Default/DawnWebGPUCache/data_0 | Bin 0 -> 8192 bytes .../EBWebView/Default/DawnWebGPUCache/data_1 | Bin 0 -> 270336 bytes .../EBWebView/Default/DawnWebGPUCache/data_2 | Bin 0 -> 8192 bytes .../EBWebView/Default/DawnWebGPUCache/data_3 | Bin 0 -> 8192 bytes .../EBWebView/Default/DawnWebGPUCache/index | Bin 0 -> 262512 bytes .../EdgeHubAppUsage/EdgeHubAppUsageSQLite.db | Bin 0 -> 32768 bytes .../EdgeHubAppUsageSQLite.db-journal | 0 .../Default/Extension Rules/000003.log | Bin 0 -> 38 bytes .../EBWebView/Default/Extension Rules/CURRENT | 1 + .../EBWebView/Default/Extension Rules/LOCK | 0 .../EBWebView/Default/Extension Rules/LOG | 2 + .../Default/Extension Rules/MANIFEST-000001 | Bin 0 -> 41 bytes .../Default/Extension Scripts/000003.log | Bin 0 -> 38 bytes .../Default/Extension Scripts/CURRENT | 1 + .../EBWebView/Default/Extension Scripts/LOCK | 0 .../EBWebView/Default/Extension Scripts/LOG | 2 + .../Default/Extension Scripts/MANIFEST-000001 | Bin 0 -> 41 bytes .../Default/Extension State/000003.log | Bin 0 -> 114 bytes .../EBWebView/Default/Extension State/CURRENT | 1 + .../EBWebView/Default/Extension State/LOCK | 0 .../EBWebView/Default/Extension State/LOG | 3 + .../EBWebView/Default/Extension State/LOG.old | 3 + .../Default/Extension State/MANIFEST-000001 | Bin 0 -> 41 bytes .../EBWebView/Default/Favicons | Bin 0 -> 20480 bytes .../EBWebView/Default/Favicons-journal | 0 .../EBWebView/Default/GPUCache/data_0 | Bin 0 -> 8192 bytes .../EBWebView/Default/GPUCache/data_1 | Bin 0 -> 270336 bytes .../EBWebView/Default/GPUCache/data_2 | Bin 0 -> 8192 bytes .../EBWebView/Default/GPUCache/data_3 | Bin 0 -> 8192 bytes .../EBWebView/Default/GPUCache/index | Bin 0 -> 262512 bytes .../EBWebView/Default/History | Bin 0 -> 188416 bytes .../EBWebView/Default/History-journal | 0 .../24.175.0830.0001/EBWebView/Default/LOCK | 0 .../24.175.0830.0001/EBWebView/Default/LOG | 0 .../EBWebView/Default/LOG.old | 0 .../Default/Local Storage/leveldb/000003.log | 0 .../Default/Local Storage/leveldb/CURRENT | 1 + .../Default/Local Storage/leveldb/LOCK | 0 .../Default/Local Storage/leveldb/LOG | 3 + .../Default/Local Storage/leveldb/LOG.old | 3 + .../Local Storage/leveldb/MANIFEST-000001 | Bin 0 -> 41 bytes .../EBWebView/Default/Login Data | Bin 0 -> 43008 bytes .../EBWebView/Default/Login Data-journal | 0 .../EBWebView/Default/Network/Cookies | Bin 0 -> 20480 bytes .../EBWebView/Default/Network/Cookies-journal | 0 .../Default/Network/Network Persistent State | 1 + .../Default/Network/NetworkDataMigrated | 0 .../Network/SCT Auditing Pending Reports | 1 + .../Default/Network/Sdch Dictionaries | 1 + .../EBWebView/Default/Network/Trust Tokens | Bin 0 -> 36864 bytes .../Default/Network/Trust Tokens-journal | 0 .../Default/PersistentOriginTrials/LOCK | 0 .../Default/PersistentOriginTrials/LOG | 0 .../Default/PersistentOriginTrials/LOG.old | 0 .../EBWebView/Default/Preferences | 1 + .../24.175.0830.0001/EBWebView/Default/README | 1 + .../Safe Browsing Network/NetworkDataMigrated | 0 .../Safe Browsing Cookies | Bin 0 -> 20480 bytes .../Safe Browsing Cookies-journal | 0 .../EBWebView/Default/Secure Preferences | 1 + .../Default/Session Storage/000003.log | Bin 0 -> 80 bytes .../EBWebView/Default/Session Storage/CURRENT | 1 + .../EBWebView/Default/Session Storage/LOCK | 0 .../EBWebView/Default/Session Storage/LOG | 3 + .../EBWebView/Default/Session Storage/LOG.old | 3 + .../Default/Session Storage/MANIFEST-000001 | Bin 0 -> 41 bytes .../Default/Shared Dictionary/cache/index | Bin 0 -> 24 bytes .../cache/index-dir/the-real-index | Bin 0 -> 48 bytes .../EBWebView/Default/Shared Dictionary/db | Bin 0 -> 45056 bytes .../Default/Shared Dictionary/db-journal | 0 .../EBWebView/Default/SharedStorage | Bin 0 -> 4096 bytes .../Site Characteristics Database/000003.log | Bin 0 -> 40 bytes .../Site Characteristics Database/CURRENT | 1 + .../Site Characteristics Database/LOCK | 0 .../Default/Site Characteristics Database/LOG | 3 + .../Site Characteristics Database/LOG.old | 3 + .../MANIFEST-000001 | Bin 0 -> 41 bytes .../Default/Sync Data/LevelDB/000003.log | Bin 0 -> 46 bytes .../Default/Sync Data/LevelDB/CURRENT | 1 + .../EBWebView/Default/Sync Data/LevelDB/LOCK | 0 .../EBWebView/Default/Sync Data/LevelDB/LOG | 3 + .../Default/Sync Data/LevelDB/LOG.old | 3 + .../Default/Sync Data/LevelDB/MANIFEST-000001 | Bin 0 -> 41 bytes .../EBWebView/Default/Visited Links | Bin 0 -> 131072 bytes .../EBWebView/Default/Web Data | Bin 0 -> 231424 bytes .../EBWebView/Default/Web Data-journal | 0 .../Default/commerce_subscription_db/LOCK | 0 .../Default/commerce_subscription_db/LOG | 0 .../Default/commerce_subscription_db/LOG.old | 0 .../EBWebView/Default/discounts_db/LOCK | 0 .../EBWebView/Default/discounts_db/LOG | 0 .../EBWebView/Default/discounts_db/LOG.old | 0 .../EBWebView/Default/parcel_tracking_db/LOCK | 0 .../EBWebView/Default/parcel_tracking_db/LOG | 0 .../Default/parcel_tracking_db/LOG.old | 0 .../Default/shared_proto_db/000003.log | 0 .../EBWebView/Default/shared_proto_db/CURRENT | 1 + .../EBWebView/Default/shared_proto_db/LOCK | 0 .../EBWebView/Default/shared_proto_db/LOG | 3 + .../EBWebView/Default/shared_proto_db/LOG.old | 3 + .../Default/shared_proto_db/MANIFEST-000001 | Bin 0 -> 41 bytes .../shared_proto_db/metadata/000003.log | Bin 0 -> 484 bytes .../Default/shared_proto_db/metadata/CURRENT | 1 + .../Default/shared_proto_db/metadata/LOCK | 0 .../Default/shared_proto_db/metadata/LOG | 3 + .../Default/shared_proto_db/metadata/LOG.old | 3 + .../shared_proto_db/metadata/MANIFEST-000001 | Bin 0 -> 41 bytes .../EBWebView/GrShaderCache/data_0 | Bin 0 -> 8192 bytes .../EBWebView/GrShaderCache/data_1 | Bin 0 -> 270336 bytes .../EBWebView/GrShaderCache/data_2 | Bin 0 -> 8192 bytes .../EBWebView/GrShaderCache/data_3 | Bin 0 -> 8192 bytes .../EBWebView/GrShaderCache/index | Bin 0 -> 262512 bytes .../EBWebView/GraphiteDawnCache/data_0 | Bin 0 -> 8192 bytes .../EBWebView/GraphiteDawnCache/data_1 | Bin 0 -> 270336 bytes .../EBWebView/GraphiteDawnCache/data_2 | Bin 0 -> 8192 bytes .../EBWebView/GraphiteDawnCache/data_3 | Bin 0 -> 8192 bytes .../EBWebView/GraphiteDawnCache/index | Bin 0 -> 262512 bytes .../24.175.0830.0001/EBWebView/Last Version | 1 + .../24.175.0830.0001/EBWebView/Local State | 1 + .../EBWebView/ShaderCache/data_0 | Bin 0 -> 8192 bytes .../EBWebView/ShaderCache/data_1 | Bin 0 -> 270336 bytes .../EBWebView/ShaderCache/data_2 | Bin 0 -> 8192 bytes .../EBWebView/ShaderCache/data_3 | Bin 0 -> 8192 bytes .../EBWebView/ShaderCache/index | Bin 0 -> 262512 bytes .../SmartScreen/RemoteData/customSettings | 1 + ...mSettings_F95BA787499AB4FA9EFFF472CE383A14 | 1 + .../SmartScreen/RemoteData/edgeSettings | 1 + .../SmartScreen/RemoteData/edgeSettings_2.0-0 | 1 + .../SmartScreen/RemoteData/topTraffic | 1 + ...ic_170540185939602997400506234197983529371 | Bin 0 -> 575056 bytes .../24.175.0830.0001/EBWebView/Variations | 1 + .../settings/Microsoft.ListSync.Settings.db | Bin 0 -> 16384 bytes .../Business1/settings/Microsoft.ListSync.db | Bin 0 -> 61440 bytes .../settings/NucleusUpdateRingConfig.json | 1 + .../24.175.0830.0001/Update/update.xml | 13 + .../onedrive/24.175.0830.0001/decom_data.raw | Bin 0 -> 1048411 bytes .../FileCoAuth-2024-09-23.1347.15868.1.odl | Bin 0 -> 9825 bytes .../logs/Common/telemetry-dll-ramp-value.txt | 2 + .../logs/Common/telemetryCache.otc | Bin 0 -> 32768 bytes .../Nucleus-2024-09-23.1347.21800.1.odl | Bin 0 -> 92080 bytes .../microsoftNucleusTelemetryCache.otc | Bin 0 -> 32768 bytes .../Business1/telemetry-dll-ramp-value.txt | 2 + .../FeedbackHub/SubmissionPayload.json | 1 + .../logs/Personal/SyncDiagnostics.log | 126 ++++++++ ...SyncEngine-2024-09-23.1347.19172.1.odlsent | Bin 0 -> 45344 bytes ...SyncEngine-2024-09-23.1348.19172.2.odlsent | Bin 0 -> 63876 bytes .../SyncEngine-2024-09-23.1348.7960.1.odlsent | Bin 0 -> 706 bytes .../SyncEngine-2024-09-23.1348.7960.2.odlgz | Bin 0 -> 154137 bytes .../SyncEngine-2024-09-23.1348.7960.3.odlgz | Bin 0 -> 147008 bytes .../SyncEngine-2024-09-23.1348.7960.4.odlgz | Bin 0 -> 8936 bytes .../SyncEngine-2024-09-23.1348.7960.5.odlgz | Bin 0 -> 84087 bytes .../SyncEngine-2024-09-23.1348.7960.6.odlgz | Bin 0 -> 89091 bytes .../SyncEngine-2024-09-23.1349.7960.7.aodl | Bin 0 -> 15532 bytes .../logs/Personal/general.keystore | 1 + .../Personal/telemetry-dll-ramp-value.txt | 2 + .../logs/Personal/telemetryCache.otc | Bin 0 -> 24576 bytes .../onedrive/24.175.0830.0001/mock/NTUSER.DAT | Bin 0 -> 262144 bytes .../SyncEngine-2024-09-23.1348.7960.1.odlsent | Bin 0 -> 706 bytes .../SyncEngine-2024-09-23.1348.7960.4.odlgz | Bin 0 -> 8936 bytes .../SyncEngine-2024-09-23.1349.7960.7.aodl | Bin 0 -> 15532 bytes .../mock/SyncEngineDatabase.db | Bin 0 -> 151552 bytes .../24.175.0830.0001/mock/general.keystore | 1 + .../onedrive/24.175.0830.0001/settings/CxP.db | Bin 0 -> 61440 bytes .../settings/FileSyncFSCache.db | Bin 0 -> 28672 bytes .../settings/Personal/5bb92615fd01a69c.ini | Bin 0 -> 2142 bytes .../settings/Personal/ClientPolicy.ini | Bin 0 -> 21184 bytes ...558788dc991eb1fa97419ab41a9561d211b9ee.ini | Bin 0 -> 21292 bytes .../settings/Personal/ECSConfig.json | 1 + .../24.175.0830.0001/settings/Personal/KFM.db | Bin 0 -> 20480 bytes .../Personal/ListIdDiscoveryResponse.txt | Bin 0 -> 102 bytes .../settings/Personal/OCSI.db | Bin 0 -> 24576 bytes .../settings/Personal/Originator.ini | Bin 0 -> 438 bytes .../settings/Personal/SafeDelete.db | Bin 0 -> 57344 bytes .../settings/Personal/SettingsDatabase.db | Bin 0 -> 20480 bytes .../Personal/SiteIdDiscoveryResponse.txt | Bin 0 -> 102 bytes .../settings/Personal/SurveyManagerState.json | 1 + .../settings/Personal/SyncEngineDatabase.db | Bin 0 -> 151552 bytes .../settings/Personal/downloads3.txt | 0 .../settings/Personal/global.ini | Bin 0 -> 3764 bytes .../settings/Personal/logUploaderSettings.ini | Bin 0 -> 300 bytes .../Personal/logUploaderSettings_temp.ini | Bin 0 -> 300 bytes .../settings/Personal/uploads.txt | 0 .../settings/PreSignInSettingsConfig.json | 1 + .../Install_2024-09-23_134806_21800-8040.log | Bin 0 -> 5286 bytes .../Update_2024-09-23_134749_19172-1452.log | Bin 0 -> 18206 bytes .../Update_2024-09-23_134825_7960-23192.log | Bin 0 -> 20082 bytes tests/windows/onedrive/main.ts | 32 +- types/applications/onedrive.ts | 41 +-- 218 files changed, 938 insertions(+), 431 deletions(-) create mode 100644 src/applications/onedrive/config.ts delete mode 100644 src/applications/onedrive/parser.ts create mode 100644 tests/test_data/DFIRArtifactMuseum/LICENSE create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/BrowserMetrics/BrowserMetrics-66F171B2-5A2C.pma create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/BrowserMetrics/BrowserMetrics-66F171BD-5BFC.pma create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/BrowserMetrics/BrowserMetrics-66F171C7-3BE8.pma create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Crashpad/metadata create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Crashpad/settings.dat create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Crashpad/throttle_store.dat create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/ClientCertificates/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/ClientCertificates/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/ClientCertificates/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Code Cache/js/index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Code Cache/js/index-dir/the-real-index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Code Cache/wasm/index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Code Cache/wasm/index-dir/the-real-index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/data_0 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/data_1 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/data_2 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/data_3 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_0 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_1 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_2 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_3 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/EdgeHubAppUsage/EdgeHubAppUsageSQLite.db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/EdgeHubAppUsage/EdgeHubAppUsageSQLite.db-journal create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension Rules/000003.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension Rules/CURRENT create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension Rules/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension Rules/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension Rules/MANIFEST-000001 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension Scripts/000003.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension Scripts/CURRENT create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension Scripts/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension Scripts/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension Scripts/MANIFEST-000001 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension State/000003.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension State/CURRENT create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension State/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension State/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension State/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Extension State/MANIFEST-000001 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Favicons create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Favicons-journal create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/data_0 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/data_1 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/data_2 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/data_3 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/History create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/History-journal create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/000003.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/CURRENT create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/MANIFEST-000001 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Login Data create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Login Data-journal create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Network/Cookies create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Network/Cookies-journal create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Network/Network Persistent State create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Network/NetworkDataMigrated create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Network/SCT Auditing Pending Reports create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Network/Sdch Dictionaries create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Network/Trust Tokens create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Network/Trust Tokens-journal create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/PersistentOriginTrials/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/PersistentOriginTrials/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/PersistentOriginTrials/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Preferences create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/README create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Safe Browsing Network/NetworkDataMigrated create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Safe Browsing Network/Safe Browsing Cookies create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Safe Browsing Network/Safe Browsing Cookies-journal create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Secure Preferences create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/000003.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/CURRENT create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/MANIFEST-000001 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/cache/index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/cache/index-dir/the-real-index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/db-journal create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/SharedStorage create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Site Characteristics Database/000003.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Site Characteristics Database/CURRENT create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Site Characteristics Database/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Site Characteristics Database/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Site Characteristics Database/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Site Characteristics Database/MANIFEST-000001 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/000003.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/CURRENT create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/MANIFEST-000001 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Visited Links create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Web Data create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Web Data-journal create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/commerce_subscription_db/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/commerce_subscription_db/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/commerce_subscription_db/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/discounts_db/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/discounts_db/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/discounts_db/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/parcel_tracking_db/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/parcel_tracking_db/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/parcel_tracking_db/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/000003.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/CURRENT create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/MANIFEST-000001 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/000003.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/CURRENT create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/LOCK create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/LOG create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/LOG.old create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/MANIFEST-000001 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_0 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_1 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_2 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_3 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_0 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_1 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_2 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_3 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Last Version create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Local State create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_0 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_1 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_2 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_3 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/index create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/customSettings create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/customSettings_F95BA787499AB4FA9EFFF472CE383A14 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/edgeSettings create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/edgeSettings_2.0-0 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/topTraffic create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/topTraffic_170540185939602997400506234197983529371 create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Variations create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/ListSync/Business1/settings/Microsoft.ListSync.Settings.db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/ListSync/Business1/settings/Microsoft.ListSync.db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/ListSync/settings/NucleusUpdateRingConfig.json create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/Update/update.xml create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/decom_data.raw create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Common/FileCoAuth-2024-09-23.1347.15868.1.odl create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Common/telemetry-dll-ramp-value.txt create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Common/telemetryCache.otc create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/ListSync/Business1/Nucleus-2024-09-23.1347.21800.1.odl create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/ListSync/Business1/microsoftNucleusTelemetryCache.otc create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/ListSync/Business1/telemetry-dll-ramp-value.txt create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/FeedbackHub/SubmissionPayload.json create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/SyncDiagnostics.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/SyncEngine-2024-09-23.1347.19172.1.odlsent create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/SyncEngine-2024-09-23.1348.19172.2.odlsent create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/SyncEngine-2024-09-23.1348.7960.1.odlsent create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/SyncEngine-2024-09-23.1348.7960.2.odlgz create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/SyncEngine-2024-09-23.1348.7960.3.odlgz create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/SyncEngine-2024-09-23.1348.7960.4.odlgz create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/SyncEngine-2024-09-23.1348.7960.5.odlgz create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/SyncEngine-2024-09-23.1348.7960.6.odlgz create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/SyncEngine-2024-09-23.1349.7960.7.aodl create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/general.keystore create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/telemetry-dll-ramp-value.txt create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/telemetryCache.otc create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/mock/NTUSER.DAT create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/mock/SyncEngine-2024-09-23.1348.7960.1.odlsent create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/mock/SyncEngine-2024-09-23.1348.7960.4.odlgz create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/mock/SyncEngine-2024-09-23.1349.7960.7.aodl create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/mock/SyncEngineDatabase.db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/mock/general.keystore create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/CxP.db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/FileSyncFSCache.db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/5bb92615fd01a69c.ini create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/ClientPolicy.ini create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/ClientPolicy_a25bb334ad5f4204ba91c137f255abae7c731aeda6844198b20320a40c558788dc991eb1fa97419ab41a9561d211b9ee.ini create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/ECSConfig.json create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/KFM.db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/ListIdDiscoveryResponse.txt create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/OCSI.db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/Originator.ini create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/SafeDelete.db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/SettingsDatabase.db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/SiteIdDiscoveryResponse.txt create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/SurveyManagerState.json create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/SyncEngineDatabase.db create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/downloads3.txt create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/global.ini create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/logUploaderSettings.ini create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/logUploaderSettings_temp.ini create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/uploads.txt create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/PreSignInSettingsConfig.json create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/setup/logs/Install_2024-09-23_134806_21800-8040.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/setup/logs/Update_2024-09-23_134749_19172-1452.log create mode 100644 tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/setup/logs/Update_2024-09-23_134825_7960-23192.log diff --git a/artemis-docs/docs/API/Artifacts/applications.md b/artemis-docs/docs/API/Artifacts/applications.md index e1b3bff2..68d38532 100644 --- a/artemis-docs/docs/API/Artifacts/applications.md +++ b/artemis-docs/docs/API/Artifacts/applications.md @@ -354,11 +354,10 @@ file. | platform | PlatformType | OS platform to parse. Supports Windows and macOS (Darwin) | | alt_file | string | Optional path to a MRU plist or NTUSER.DAT | -### onedriveDetails(platform, alt_path, user) -> OneDriveDetails | ApplicationError +### OneDrive Class -Extract Microsoft OneDrive artifacts. Supports both macOS and Windows. By -default will parse OneDrive artifacts for **all** users. You may provide a -single user as an optional arguement to only parse data for a specific user. +A basic TypeScript class to extract OneDrive forensic artifacts. Supports both macOS and Windows. +By default artemis will parse OneDrive artifacts for **all** users. You may provide a single user as an optional arguement to only parse data for a specific user. You may also provide an optional alternative path to a folder containing OneDrive artifacts. You must include the trailing slash. The folder should @@ -369,11 +368,88 @@ contain the following artifacts: - general.keystore - SyncEngineDatabase.db -| Param | Type | Description | -| -------- | ------------ | ---------------------------------------------------------- | -| platform | PlatformType | OS platform to parse. Supports Windows and macOS (Darwin) | -| alt_path | string | Optional path to a directory containing OneDrive artifacts | -| user | string | Optional single user to parse instead of all users | +Sample TypeScript code: +```typescript +import { Format, OneDrive, Output, OutputType, PlatformType } from "./artemis-api/mod"; + +function main() { + const results = new OneDrive(PlatformType.Windows); + const output: Output = { + name: "local", + directory: "tmp", + format: Format.JSONL, + compress: false, + timeline: false, + endpoint_id: "", + collection_id: 0, + output: OutputType.LOCAL + }; + + results.oneDriveRetrospect(output); +} + +main(); +``` + +#### oneDriveProfiles() -> OnedriveProfile[] + +Returns an array of all file path atifacts associated with OneDrive users + +#### oneDriveKeys(files, output, metadata_runtime) -> KeyInfo[] + +Returns an array of keys used by OneDrive. By default this function will find the keys for all users. You may provide a specific subset of files or users instead of all users. + +You may also provide an optional Output object to output results to a file instead of returning an array of KeyInfo. + +| Param | Type | Description | +| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| files | string[] | Parse only key files from the provided array | +| output | Output | Output object to output all results to a file instead of return an array | +| metadata_runtime | boolean | Specificy if artemis should append runtime metadata when outputting to a file based on the Output object. Default is no metadata will be appended | + +#### oneDriveAccounts(files, output, metadata_runtime) -> OneDriveAccount[] + +Returns an array of OneDrive account information. By default this function will find the accounts for all users. You may provide a specific subset of files or users instead of all users. + +You may also provide an optional Output object to output results to a file instead of returning an array of OneDriveAccount. + +| Param | Type | Description | +| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| files | string[] | Parse only account files from the provided array | +| output | Output | Output object to output all results to a file instead of return an array | +| metadata_runtime | boolean | Specificy if artemis should append runtime metadata when outputting to a file based on the Output object. Default is no metadata will be appended | + +#### oneDriveLogs(files, output, metadata_runtime) -> OneDriveLog[] + +Returns an array of OneDrive log information. By default this function will find the logs for all users. You may provide a specific subset of files or users instead of all users. + +You may also provide an optional Output object to output results to a file instead of returning an array of OneDriveLog. + +| Param | Type | Description | +| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| files | string[] | Parse only log files from the provided array | +| output | Output | Output object to output all results to a file instead of return an array | +| metadata_runtime | boolean | Specificy if artemis should append runtime metadata when outputting to a file based on the Output object. Default is no metadata will be appended | + +#### oneDriveSyncDatabase(files, output, metadata_runtime) -> OneDriveSyncEngineRecord[] + +Returns an array of OneDrive Sync database information. By default this function will find the databases for all users. You may provide a specific subset of files or users instead of all users. + +You may also provide an optional Output object to output results to a file instead of returning an array of OneDriveSyncEngineRecord. + +| Param | Type | Description | +| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| files | string[] | Parse only database files from the provided array | +| output | Output | Output object to output all results to a file instead of return an array | +| metadata_runtime | boolean | Specificy if artemis should append runtime metadata when outputting to a file based on the Output object. Default is no metadata will be appended | + +#### oneDriveRetrospect(output) + +A powerfull function that will timeline all supported OneDrive artifacts + +| Param | Type | Description | +| ---------------- | ------------- | ----------------------------------- | +| output | Output | Output object to output all results | ### LevelDb Class diff --git a/artemis-docs/docs/Artifacts/Application Artifacts/onedrive.md b/artemis-docs/docs/Artifacts/Application Artifacts/onedrive.md index 725ac5ca..5b655b49 100644 --- a/artemis-docs/docs/Artifacts/Application Artifacts/onedrive.md +++ b/artemis-docs/docs/Artifacts/Application Artifacts/onedrive.md @@ -14,7 +14,7 @@ cloud. Artemis supports parsing several artifacts containing OneDrive metadata such as: - Basic support for OneDrive Logs (ODL files, version 3 only) -- SQLITE files +- SyncDatabase files - Registry files (NTUSER.DAT) - PLIST files @@ -30,15 +30,25 @@ Other Parsers: # Collection You have to use the artemis [api](../../API/overview.md) in order to collect -Microsoft Office information. +Microsoft OneDrive information. ```typescript -import { PlatformType } from "./artemis-api/mod"; -import { onedriveDetails } from "./artemis-api/src/applications/onedrive/parser"; +import { Format, OneDrive, Output, OutputType, PlatformType } from "./artemis-api/mod"; function main() { - const values = onedriveDetails(PlatformType.Windows); - console.log(values); + const results = new OneDrive(PlatformType.Windows); + const output: Output = { + name: "local", + directory: "tmp", + format: Format.JSONL, + compress: false, + timeline: false, + endpoint_id: "", + collection_id: 0, + output: OutputType.LOCAL + }; + + results.oneDriveRetrospect(output); } main(); @@ -46,16 +56,9 @@ main(); # Output Structure -`OneDriveDetails` object containing artifacts associated with OneDrive +Depending on the functions called several objects can be returned ```typescript -export interface OneDriveDetails { - logs: OneDriveLog[]; - files: OneDriveSyncEngineRecord[]; - accounts: OneDriveAccount[]; - keys: KeyInfo[]; -} - export interface OneDriveLog { path: string; filename: string; @@ -67,23 +70,11 @@ export interface OneDriveLog { version: string; os_version: string; description: string; -} - -export interface OneDriveSyncEngine { - scopes: OneDriveSyncEngineScope[]; - records: OneDriveSyncEngineRecord[]; -} - -export interface OneDriveSyncEngineScope { - scope_id: string; - site_id?: string; - web_id?: string; - list_id?: string; - tenant_id?: string; - url?: string; - remote_path?: string; - permissions?: number; - library_type?: number; + message: string; + datetime: string; + timestamp_desc: "OneDrive Log Entry Created"; + artifact: "OneDrive Log"; + data_type: "applications:onedrive:logs:entry"; } export interface OneDriveSyncEngineRecord { @@ -111,31 +102,36 @@ export interface OneDriveSyncEngineRecord { modified_by: string; last_write_count: number; db_path: string; -} - -export interface OneDriveSyncEngineFolder { - parent_scope_id: string; - parent_resource_id: string; - resource_id: string; - etag: string; - folder: string; - folder_status: number | null; - permissions: number | null; - volume_id: number | null; - item_index: number | null; - parents: string[]; + message: string; + datetime: string; + timestamp_desc: "OneDrive Sync Last Change"; + artifact: "OneDrive Sync Record"; + data_type: "applications:onedrive:sync:entry"; } export interface OneDriveAccount { email: string; device_id: string; account_id: string; + /**Not available on macOS */ last_signin: string; cid: string; + message: string; + datetime: string; + timestamp_desc: "OneDrive Last Signin"; + artifact: "OneDrive Account Info"; + data_type: "applications:onedrive:account:entry"; } export interface KeyInfo { path: string; key: string; } + +export interface OnedriveProfile { + sync_db: string[]; + odl_files: string[]; + key_file: string[]; + config_file: string[]; +} ``` diff --git a/artemis-docs/package-lock.json b/artemis-docs/package-lock.json index 38b53271..fee26b81 100644 --- a/artemis-docs/package-lock.json +++ b/artemis-docs/package-lock.json @@ -231,6 +231,7 @@ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.39.0.tgz", "integrity": "sha512-/IYpF10BpthGZEJQZMhMqV4AqWr5avcWfZm/SIKK1RvUDmzGqLoW/+xeJVX9C8ZnNkIC8hivbIQFaNaRw0BFZQ==", "license": "MIT", + "peer": true, "dependencies": { "@algolia/client-common": "5.39.0", "@algolia/requester-browser-xhr": "5.39.0", @@ -378,6 +379,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -2212,6 +2214,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -2234,6 +2237,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -2343,6 +2347,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2764,6 +2769,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -3639,6 +3645,7 @@ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.1.tgz", "integrity": "sha512-DyLk9BIA6I9gPIuia8XIL+XIEbNnExam6AHzRsfrEq4zJr7k/DsWW7oi4aJMepDnL7jMRhpVcdsCxdjb0/A9xg==", "license": "MIT", + "peer": true, "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/logger": "3.9.1", @@ -4396,6 +4403,7 @@ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", "license": "MIT", + "peer": true, "dependencies": { "@types/mdx": "^2.0.0" }, @@ -4723,6 +4731,7 @@ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -5360,6 +5369,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.5.tgz", "integrity": "sha512-piErsCVVbpMMT2r7wbawdZsq4xMvIAhQuac2gedQHysu1TZYEigE6pnFfgZT+/jQnrRuF5r+SHzuehFjfRjr4g==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -5699,6 +5709,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5772,6 +5783,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -5817,6 +5829,7 @@ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.39.0.tgz", "integrity": "sha512-DzTfhUxzg9QBNGzU/0kZkxEV72TeA4MmPJ7RVfLnQwHNhhliPo7ynglEWJS791rNlLFoTyrKvkapwr/P3EXV9A==", "license": "MIT", + "peer": true, "dependencies": { "@algolia/abtesting": "1.5.0", "@algolia/client-abtesting": "5.39.0", @@ -6292,6 +6305,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.3", "caniuse-lite": "^1.0.30001741", @@ -6591,6 +6605,7 @@ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@chevrotain/cst-dts-gen": "11.0.3", "@chevrotain/gast": "11.0.3", @@ -7283,6 +7298,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -7602,6 +7618,7 @@ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.32.0.tgz", "integrity": "sha512-5JHBC9n75kz5851jeklCPmZWcg3hUe6sjqJvyk3+hVqFaKcHwHgxsjeN1yLmggoUc6STbtm9/NQyabQehfjvWQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10" } @@ -8011,6 +8028,7 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -9194,6 +9212,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -13810,6 +13829,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -14370,6 +14390,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -15273,6 +15294,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -16089,6 +16111,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -16101,6 +16124,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -16157,6 +16181,7 @@ "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", "license": "MIT", + "peer": true, "dependencies": { "@types/react": "*" }, @@ -16185,6 +16210,7 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -18010,7 +18036,8 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/type-fest": { "version": "2.19.0", @@ -18073,6 +18100,7 @@ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -18420,6 +18448,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -18680,6 +18709,7 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.9.tgz", "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", "license": "MIT", + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.6", @@ -19265,6 +19295,7 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.11.tgz", "integrity": "sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/src/applications/onedrive/config.ts b/src/applications/onedrive/config.ts new file mode 100644 index 00000000..3e97e5cc --- /dev/null +++ b/src/applications/onedrive/config.ts @@ -0,0 +1,111 @@ +import { getPlist, getRegistry } from "../../../mod"; +import { OneDriveAccount } from "../../../types/applications/onedrive"; +import { MacosError } from "../../macos/errors"; +import { unixEpochToISO } from "../../time/conversion"; +import { WindowsError } from "../../windows/errors"; +import { ApplicationError } from "../errors"; + +/** + * Function to extract Account details associated with OneDrive + * @param path Path to NTUSER.DAT file + * @returns Array of `OneDriveAccount` + */ +export function accountWindows(path: string): OneDriveAccount[] | ApplicationError { + const accounts: OneDriveAccount[] = []; + const values = getRegistry(path, "\\\\software\\\\microsoft\\\\onedrive\\\\accounts"); + if (values instanceof WindowsError) { + return new ApplicationError(`ONEDRIVE`, `Failed to parse ${path}: ${values.message}`); + } + + + for (const reg of values) { + if (reg.values.length === 0) { + continue; + } + // Lazy check to see if UserEmail key found in Registry Key value names + if (!JSON.stringify(reg.values).includes("UserEmail")) { + continue; + } + + const account: OneDriveAccount = { + email: "", + device_id: "", + account_id: "", + last_signin: "", + cid: "", + message: "", + datetime: "", + timestamp_desc: "OneDrive Last Signin", + artifact: "OneDrive Account Info", + data_type: "applications:onedrive:account:entry" + }; + for (const value of reg.values) { + switch (value.value) { + case "UserEmail": + account.email = value.data; + account.message = `Last signin by ${account.email}`; + break; + case "cid": + account.cid = value.data; + break; + case "LastSignInTime": + account.last_signin = unixEpochToISO(Number(value.data)); + account.datetime = account.last_signin; + break; + case "OneDriveDeviceId": + account.device_id = value.data; + break; + case "OneAuthAccountId": + account.account_id = value.data; + break; + } + } + accounts.push(account); + + } + + return accounts; +} + +/** + * Function to extract Account details associated with OneDrive + * @param path Path to OneDriveStandaloneSuite.plist plist file + * @returns Array of `OneDriveAccount` + */ +export function accountMacos(path: string): OneDriveAccount[] | ApplicationError { + const accounts: OneDriveAccount[] = []; + const values = getPlist(path); + if (values instanceof MacosError) { + return new ApplicationError(`ONEDRIVE`, `Failed to parse ${path}: ${values.message}`); + + } + + if (Array.isArray(values) || values instanceof Uint8Array) { + return new ApplicationError(`ONEDRIVE`, `Unexpected PLIST type. Wanted HashMap. Got array`); + } + + for (const key in values) { + // Lazy check if the plist data contains the data we want + if (!JSON.stringify(values[key]).includes("UserEmail")) { + continue; + } + const account_value = values[key] as Record; + + const account: OneDriveAccount = { + email: account_value["UserEmail"] as string, + device_id: account_value["OneDriveDeviceId"] as string, + account_id: account_value["OneAutoAccountId"] as string, + last_signin: "1970-01-01T00:00:00.000Z", + cid: account_value["cid"] as string, + message: account_value["UserEmail"] as string, + datetime: "1970-01-01T00:00:00.000Z", + timestamp_desc: "OneDrive Last Signin", + artifact: "OneDrive Account Info", + data_type: "applications:onedrive:account:entry" + }; + accounts.push(account); + } + + + return accounts; +} \ No newline at end of file diff --git a/src/applications/onedrive/odl.ts b/src/applications/onedrive/odl.ts index 96060e99..3ba275c9 100644 --- a/src/applications/onedrive/odl.ts +++ b/src/applications/onedrive/odl.ts @@ -235,6 +235,7 @@ function odl_entry( } entry.created = unixEpochToISO(timestamp.value); + entry.datetime = entry.created; entry.version = version; entry.os_version = os_version; entry.filename = filename; @@ -341,6 +342,11 @@ function parseData( version: "", os_version: "", description, + message: `${code_file}: ${function_value}`, + datetime: "", + timestamp_desc: "OneDrive Log Entry Created", + artifact: "OneDrive Log", + data_type: "applications:onedrive:logs:entry" }; return entry; @@ -420,3 +426,89 @@ function parseDescription( remaining, }; } + +/** + * Function to test the OneDrive ODL file parsing + * This function should not be called unless you are developing the artemis-api + * Or want to validate the OneDrive ODL parsing + */ +export function testReadOdlFiles(): void { + const test = "../../tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/logs/Personal/SyncEngine-2024-09-23.1348.7960.2.odlgz"; + let results = readOdlFiles(test); + if (results instanceof ApplicationError) { + throw results; + } + + if (results.length !== 4910) { + throw `Got "${results.length}" expected 4910.......readOdlFiles ❌` + } + + if (results[23]?.message !== "LoggingAPI.cpp: LoggingSetCommonDatapoint") { + throw `Got '${results[23]?.message}' expected "LoggingAPI.cpp: LoggingSetCommonDatapoint".......readOdlFiles ❌` + } + + console.info(` Function readOdlFiles ✅`); + + const data = readFile(test); + if (data instanceof FileError) { + throw data; + } + + results = parseOdl(data, "anything", "i want"); + if (results instanceof ApplicationError) { + throw results; + } + + if (results.length !== 4910) { + throw `Got "${results.length}" expected 4910.......parseOdl ❌` + } + + if (results[83]?.message !== "BaseHost.cpp: BaseHost::Initialize") { + throw `Got '${results[83]?.message}' expected "BaseHost.cpp: BaseHost::Initialize".......parseOdl ❌` + } + + console.info(` Function parseOdl ✅`); + + const decom_test = "../../tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/decom_data.raw"; + const decom_data = readFile(decom_test); + if (decom_data instanceof FileError) { + throw data; + } + + results = odl_entry(decom_data, "anything", "i want", "totally real path", "super file"); + if (results instanceof ApplicationError) { + throw results; + } + + if (results[390]?.datetime !== "2024-09-23T13:48:25.571Z") { + throw `Got '${results[390]?.datetime}' expected "2024-09-23T13:48:25.571Z".......odl_entry ❌` + } + console.info(` Function odl_entry ✅`); + + + let desc_data = [190, 3, 59, 127, 95, 139, 9, 68, 159, 205, 101, 6, 103, 167, 150, 69, 224, 251, 193, 2, 1, 0, 0, 0, 14, 0, 0, 0, 76, 111, 103, 103, 105, 110, 103, 65, 80, 73, 46, 99, 112, 112, 36, 6, 0, 0, 30, 0, 0, 0, 85, 112, 100, 97, 116, 101, 79, 98, 102, 117, 115, 99, 97, 116, 105, 111, 110, 69, 110, 99, 114, 121, 112, 116, 105, 111, 110, 75, 101, 121, 14, 0, 0, 0, 76, 111, 103, 79, 98, 102, 117, 115, 99, 97, 116, 105, 111, 110, 22, 0, 0, 0, 82, 101, 116, 114, 105, 101, 118, 101, 79, 98, 102, 117, 115, 99, 97, 116, 105, 111, 110, 75, 101, 121, 7, 0, 0, 0, 83, 117, 99, 99, 101, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + const entry = parseData(new Uint8Array(desc_data), 0); + if (entry instanceof ApplicationError) { + throw entry; + } + + if (entry.code_file !== "LoggingAPI.cpp") { + throw `Got '${entry.code_file}' expected "LoggingAPI.cpp".......parseData ❌` + } + if (entry.params !== "DgAAAExvZ09iZnVzY2F0aW9uFgAAAFJldHJpZXZlT2JmdXNjYXRpb25LZXkHAAAAU3VjY2VzcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==") { + throw `Got '${entry.params}' expected "DgAAAExvZ09iZnVzY2F0aW9uFgAAAFJldHJpZXZlT2JmdXNjYXRpb25LZXkHAAAAU3VjY2VzcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==".......parseData ❌` + } + console.info(` Function parseData ✅`); + + + desc_data = [1, 37, 0, 85, 110, 114, 101, 103, 105, 115, 116, 101, 114, 105, 110, 103, 32, 79, 110, 101, 68, 114, 105, 118, 101, 32, 110, 97, 109, 101, 115, 112, 97, 99, 101, 32, 114, 111, 111, 116, 15, 115, 110, 97, 109, 101, 115, 112, 97, 99, 101, 82, 111, 111, 116, 73, 100, 21, 0, 0, 0, 78, 97, 109, 101, 115, 112, 97, 99, 101, 82, 111, 111, 116, 85, 116, 105, 108, 46, 99, 112, 112, 87, 1, 0, 0, 50, 0, 0, 0, 78, 97, 109, 101, 115, 112, 97, 99, 101, 82, 111, 111, 116, 85, 116, 105, 108, 58, 58, 85, 110, 114, 101, 103, 105, 115, 116, 101, 114, 79, 110, 101, 68, 114, 105, 118, 101, 78, 97, 109, 101, 115, 112, 97, 99, 101, 82, 111, 111, 116, 38, 0, 0, 0, 123, 48, 49, 56, 68, 53, 67, 54, 54, 45, 52, 53, 51, 51, 45, 52, 51, 48, 55, 45, 57, 66, 53, 51, 45, 50, 50, 52, 68, 69, 50, 69, 68, 49, 70, 69, 54, 125]; + const desc = parseDescription(new Uint8Array(desc_data)); + if (desc instanceof ApplicationError) { + throw desc; + } + + if (desc.desc !== "Unregistering OneDrive namespace root: namespaceRootId;") { + throw `Got '${desc.desc}' expected "Unregistering OneDrive namespace root: namespaceRootId;".......parseDescription ❌` + } + console.info(` Function parseDescription ✅`); +} \ No newline at end of file diff --git a/src/applications/onedrive/onedrive.ts b/src/applications/onedrive/onedrive.ts index e04680bf..cda43bd5 100644 --- a/src/applications/onedrive/onedrive.ts +++ b/src/applications/onedrive/onedrive.ts @@ -1,19 +1,18 @@ import { dumpData, glob, Output, outputResults, PlatformType, readTextFile } from "../../../mod"; -import { KeyInfo, OneDriveLog, OnedriveProfile } from "../../../types/applications/onedrive"; +import { KeyInfo, OneDriveAccount, OneDriveLog, OnedriveProfile, OneDriveSyncEngineRecord } from "../../../types/applications/onedrive"; import { getEnvValue } from "../../environment/mod"; import { FileError } from "../../filesystem/errors"; import { ApplicationError } from "../errors"; +import { accountMacos, accountWindows } from "./config"; import { readOdlFiles } from "./odl"; +import { extractSyncEngine } from "./sqlite"; /** * TODO: - * 1. Sync db - * 2. config files (regitry and plist) * 3. tests? - * - odl file * - key file (random key) * - slimmed down db? - * - ntuser registry file? + * - ntuser registry file? musuem has lots of samples because someone uploaded them! */ /** @@ -49,7 +48,7 @@ export class OneDrive { config_file: this.getFiles(`${alt_path}${separator}${config}`), } this.profiles.push(profile); - + return; } this.setupProfiles(); } @@ -145,7 +144,7 @@ export class OneDrive { * @param [metadata_runtime=false] Append runtime metadata to the output. Default is false. Only applicable if the Output.Format is JSON or JSONL * @returns Array of `OneDriveLog` */ - public parseOnedriveLogs(files?: string[], output?: Output, metadata_runtime = false): OneDriveLog[] { + public oneDriveLogs(files?: string[], output?: Output, metadata_runtime = false): OneDriveLog[] { let logs: OneDriveLog[] = []; // Check if we only want to parse a subset of logs if (files !== undefined) { @@ -190,6 +189,124 @@ export class OneDrive { return logs; } + /** + * Function to parse OneDrive Account info. By default all accounts are parsed based on how the `OneDrive` class was initialized + * By default all account entries are returned. You may provide an optional `Output` object to instead output the results to a file + * If results are outputted to a file. An empty array is returned + * @param files Optional array of specific account configs files to parse. Windows will be NTUSER.DAT. macOS will be plist files + * @param output Optional `Output` object to output results instead of returning them to the caller + * @param [metadata_runtime=false] Append runtime metadata to the output. Default is false. Only applicable if the Output.Format is JSON or JSONL + * @returns Array of `OneDriveAccount` + */ + public oneDriveAccounts(files?: string[], output?: Output, metadata_runtime = false): OneDriveAccount[] { + let configs: OneDriveAccount[] = []; + // Check if we only want to parse a subset of accounts + if (files !== undefined) { + for (const entry of files) { + const values = this.platform === PlatformType.Windows ? accountWindows(entry) : accountMacos(entry) + if (values instanceof ApplicationError) { + console.error(`${values}`); + continue; + } + if (output !== undefined) { + if (metadata_runtime) { + outputResults(values, "onedrive_accounts", output); + } else { + dumpData(values, "onedrive_accounts", output); + } + continue; + } + configs = configs.concat(values); + } + return configs; + } + + // Parse all configs + for (const profile of this.profiles) { + for (const entry of profile.config_file) { + const values = this.platform === PlatformType.Windows ? accountWindows(entry) : accountMacos(entry) + if (values instanceof ApplicationError) { + console.error(`${values}`); + continue; + } + if (output !== undefined) { + if (metadata_runtime) { + outputResults(values, "onedrive_accounts", output); + } else { + dumpData(values, "onedrive_accounts", output); + } + continue; + } + configs = configs.concat(values); + } + } + return configs; + } + + /** + * Function to parse OneDrive Sync databases. By default all databases are parsed based on how the `OneDrive` class was initialized + * By default all database entries are returned. You may provide an optional `Output` object to instead output the results to a file + * If results are outputted to a file. An empty array is returned + * @param files Optional array of specific db files to query + * @param output Optional `Output` object to output results instead of returning them to the caller + * @param [metadata_runtime=false] Append runtime metadata to the output. Default is false. Only applicable if the Output.Format is JSON or JSONL + * @returns Array of `OneDriveSyncEngineRecord` + */ + public oneDriveSyncDatabase(files?: string[], output?: Output, metadata_runtime = false): OneDriveSyncEngineRecord[] { + let db: OneDriveSyncEngineRecord[] = []; + // Check if we only want to parse a specific database + if (files !== undefined) { + for (const entry of files) { + const values = extractSyncEngine(entry); + if (values instanceof ApplicationError) { + console.error(`${values}`); + continue; + } + if (output !== undefined) { + if (metadata_runtime) { + outputResults(values, "onedrive_syncdb", output); + } else { + dumpData(values, "onedrive_syncdb", output); + } + continue; + } + db = db.concat(values); + } + return db; + } + + // Parse all databases + for (const profile of this.profiles) { + for (const entry of profile.sync_db) { + const values = extractSyncEngine(entry); + if (values instanceof ApplicationError) { + console.error(`${values}`); + continue; + } + if (output !== undefined) { + if (metadata_runtime) { + outputResults(values, "onedrive_syncdb", output); + } else { + dumpData(values, "onedrive_syncdb", output); + } + continue; + } + db = db.concat(values); + } + } + return db; + } + + /** + * Function that parses and timelines all OneDrive artifacts + * @param output `Object` object to output results + */ + public oneDriveRetrospect(output: Output): void { + this.oneDriveLogs(undefined, output); + this.oneDriveSyncDatabase(undefined, output); + this.oneDriveAccounts(undefined, output); + } + /** * Setup OneDrive paths for all users or specific user if provided * @returns Nothing @@ -294,4 +411,36 @@ export class OneDrive { return files; } +} + +/** + * Function to test the OneDrive class + * This function should not be called unless you are developing the artemis-api + * Or want to validate the OneDrive parsing + */ +export function testOneDrive(): void { + const test = "../../tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/mock"; + const client = new OneDrive(PlatformType.Windows, undefined, test); + + const status = client.oneDriveLogs(); + if (status.length !== 367) { + throw `Got '${status.length}' expected "367".......OneDrive ❌` + } + + const sync = client.oneDriveSyncDatabase(); + if (sync.length !== 43) { + throw `Got '${sync.length}' expected "43".......OneDrive ❌` + } + + const account = client.oneDriveAccounts(); + if (account.length !== 0) { + throw `Got '${account.length}' expected "0".......OneDrive ❌` + } + + const key = client.oneDriveKeys(); + if (key.length !== 1) { + throw `Got '${key.length}' expected "1"......OneDrive ❌` + } + + console.info(` Mock OneDrive Class ✅`); } \ No newline at end of file diff --git a/src/applications/onedrive/parser.ts b/src/applications/onedrive/parser.ts deleted file mode 100644 index 38093933..00000000 --- a/src/applications/onedrive/parser.ts +++ /dev/null @@ -1,293 +0,0 @@ -import { PlatformType } from "../../../mod"; -import { - KeyInfo, - OneDriveDetails, -} from "../../../types/applications/onedrive"; -import { - OneDriveAccount, - OneDriveLog, - OneDriveSyncEngineRecord, -} from "../../../types/applications/onedrive"; -import { GlobInfo } from "../../../types/filesystem/globs"; -import { getEnvValue } from "../../environment/mod"; -import { FileError } from "../../filesystem/errors"; -import { readFile, readTextFile } from "../../filesystem/files"; -import { glob } from "../../filesystem/files"; -import { MacosError } from "../../macos/errors"; -import { getPlist } from "../../macos/plist"; -import { unixEpochToISO } from "../../time/conversion"; -import { WindowsError } from "../../windows/errors"; -import { getRegistry } from "../../windows/registry"; -import { ApplicationError } from "../errors"; -import { extractSyncEngine } from "./sqlite"; - -/** - * Function to parse OneDrive artifacts - * @param platform PlatformType enum - * @param alt_path Optional alternative directory containing OneDrive files. **Must include trailing slash** - * @param [user="*"] Optional user to parse OneDrive info. By default artemis will try to parse all users - * @returns - */ -export function onedriveDetails( - platform: PlatformType.Darwin | PlatformType.Windows, - alt_path?: string, - user = "*", -): OneDriveDetails | ApplicationError { - let odl_files = ""; - let key_file = ""; - let sync_db = ""; - let reg_files = ""; - if (alt_path !== undefined) { - odl_files = `${alt_path}*.odl*`; - key_file = `${alt_path}general.keystore`; - sync_db = `${alt_path}SyncEngineDatabase.db`; - reg_files = `${alt_path}NTUSER.*`; - } - - if (platform === PlatformType.Darwin && alt_path === undefined) { - odl_files = `/Users/${user}/Library/Logs/OneDrive/*/*odl*`; - key_file = `/Users/${user}/Library/Logs/OneDrive/*/general.keystore`; - sync_db = - `/Users/${user}/Library/Application Support/OneDrive/settings/*/SyncEngineDatabase.db`; - reg_files = - `/Users/${user}/Library/Group Containers/*.OneDriveStandaloneSuite/Library/Preferences/*.OneDriveStandaloneSuite.plist`; - } else if (alt_path === undefined) { - const drive = getEnvValue("HOMEDRIVE"); - if (drive === "") { - return new ApplicationError(`ONEDRIVE`, `no HOMEDRIVE value`); - } - odl_files = - `${drive}\\Users\\${user}\\AppData\\Local\\Microsoft\\OneDrive\\logs\\*\\*odl*`; - key_file = - `${drive}\\Users\\${user}\\AppData\\Local\\Microsoft\\OneDrive\\logs\\*\\general.keystore`; - sync_db = - `${drive}\\Users\\${user}\\AppData\\Local\\Microsoft\\OneDrive\\settings\\*\\SyncEngineDatabase.db`; - reg_files = `${drive}\\Users\\${user}\\NTUSER.*`; - } - - const details: OneDriveDetails = { - logs: [], - files: [], - accounts: [], - keys: [], - }; - - const paths = glob(odl_files); - if (paths instanceof FileError) { - return new ApplicationError( - `ONEDRIVE`, - `failed to glob path ${odl_files}`, - ); - } - - const log_entries = readOdlFiles(paths); - details.logs = log_entries; - - const dbs = glob(sync_db); - if (dbs instanceof FileError) { - return new ApplicationError( - `ONEDRIVE`, - `failed to glob path ${sync_db}`, - ); - } - const db_records = querySqlite(dbs); - details.files = db_records; - - const key_paths = glob(key_file); - if (key_paths instanceof FileError) { - return new ApplicationError( - `ONEDRIVE`, - `failed to glob path ${key_paths}`, - ); - } - const keys = extractKeys(key_paths); - details.keys = keys; - - const reg_paths = glob(reg_files); - if (reg_paths instanceof FileError) { - return new ApplicationError( - `ONEDRIVE`, - `failed to glob path ${reg_paths}`, - ); - } - - if (platform === PlatformType.Windows) { - const accounts = accountWindows(reg_paths); - details.accounts = accounts; - } else if (platform === PlatformType.Darwin) { - const accounts = accountMacos(reg_paths); - details.accounts = accounts; - } - - return details; -} - -/** - * Function to read and parse OneDrive Log files - * @param paths Array of `GlobInfo` to OneDrive Log files (odl) - * @returns Array of `OneDriveLog` entries - */ -export function readOdlFiles(paths: GlobInfo[]): OneDriveLog[] { - let drive_logs: OneDriveLog[] = []; - for (const entry of paths) { - const data = readFile(entry.full_path); - if (data instanceof FileError) { - console.warn( - `Failed to read file ${entry.full_path}: ${data.message}`, - ); - continue; - } - } - - return drive_logs; -} - -/** - * Function to query the SyncEngineDatabase - * @param paths Array of `GlobInfo` to SyncEngineDatabase - * @returns Array of `OneDriveSyncEngineRecord` entries - */ -function querySqlite(paths: GlobInfo[]): OneDriveSyncEngineRecord[] { - let db_records: OneDriveSyncEngineRecord[] = []; - for (const entry of paths) { - const records = extractSyncEngine(entry.full_path); - if (records instanceof ApplicationError) { - console.warn( - `Failed to parse ${entry.full_path}: ${records.message}`, - ); - continue; - } - db_records = db_records.concat(records); - } - - return db_records; -} - -/** - * Function to get the decryption keys - * @param paths Array of `GlobInfo` to general.keystore - * @returns Array of keys - */ -function extractKeys(paths: GlobInfo[]): KeyInfo[] { - const keys: KeyInfo[] = []; - for (const entry of paths) { - const key: KeyInfo = { - path: entry.full_path, - key: "", - }; - const data = readTextFile(entry.full_path); - if (data instanceof FileError) { - console.warn(`failed to read file ${entry.full_path}: ${data.message}`); - continue; - } - - const values = JSON.parse(data) as Record[]; - for (const value of values) { - key.key = value["Key"] as string; - break; - } - keys.push(key); - } - - return keys; -} - -/** - * Function to extract Account details associated with OneDrive - * @param paths Array of `GlobInfo` to NTUSER.DAT Registry files - * @returns Array of `OneDriveAccount` - */ -function accountWindows(paths: GlobInfo[]): OneDriveAccount[] { - const accounts: OneDriveAccount[] = []; - for (const entry of paths) { - if (!entry.filename.toLowerCase().endsWith("dat")) { - continue; - } - const values = getRegistry(entry.full_path); - if (values instanceof WindowsError) { - console.warn(`could not parse ${entry.full_path}: ${values.message}`); - continue; - } - - for (const reg of values) { - if ( - reg.path.includes("\\Software\\Microsoft\\OneDrive\\Accounts") && - reg.values.length !== 0 - ) { - // Lazy check to see if UserEmail key found in Registry Key value names - if (!JSON.stringify(reg.values).includes("UserEmail")) { - continue; - } - - const account: OneDriveAccount = { - email: "", - device_id: "", - account_id: "", - last_signin: "", - cid: "", - }; - for (const value of reg.values) { - switch (value.value) { - case "UserEmail": - account.email = value.data; - break; - case "cid": - account.cid = value.data; - break; - case "LastSignInTime": - account.last_signin = unixEpochToISO(Number(value.data)); - break; - case "OneDriveDeviceId": - account.device_id = value.data; - break; - case "OneAuthAccountId": - account.account_id = value.data; - break; - } - } - accounts.push(account); - } - } - } - return accounts; -} - -/** - * Function to extract Account details associated with OneDrive - * @param paths Array of `GlobInfo` to OneDriveStandaloneSuite.plist plist files - * @returns Array of `OneDriveAccount` - */ -function accountMacos(paths: GlobInfo[]): OneDriveAccount[] { - const accounts: OneDriveAccount[] = []; - for (const entry of paths) { - const values = getPlist(entry.full_path); - if (values instanceof MacosError) { - console.warn(`could not parse ${entry.full_path}: ${values.message}`); - continue; - } - - if (Array.isArray(values) || values instanceof Uint8Array) { - console.warn(`unexpected plist type`); - continue; - } - - for (const key in values) { - // Lazy check if the plist data contains the data we want - if (!JSON.stringify(values[key]).includes("UserEmail")) { - continue; - } - const account_value = values[key] as Record; - - const account: OneDriveAccount = { - email: account_value["UserEmail"] as string, - device_id: account_value["OneDriveDeviceId"] as string, - account_id: account_value["OneAutoAccountId"] as string, - last_signin: "1970-01-01T00:00:00.000Z", - cid: account_value["cid"] as string, - }; - accounts.push(account); - } - } - - return accounts; -} diff --git a/src/applications/onedrive/sqlite.ts b/src/applications/onedrive/sqlite.ts index 1a12e71a..74c57be0 100644 --- a/src/applications/onedrive/sqlite.ts +++ b/src/applications/onedrive/sqlite.ts @@ -33,6 +33,10 @@ export function extractSyncEngine( if (record.parent_resource_id === folder.resource_id) { record.path = `${folder.parents.join("/")}/${record.filename}`; record.directory = folder.parents.join("/"); + record.message = record.path; + if (record.message === "") { + record.message = record.filename; + } } } } @@ -78,41 +82,47 @@ function getRecords( const records: OneDriveSyncEngineRecord[] = []; for (const value of results) { const record: OneDriveSyncEngineRecord = { - parent_resource_id: value[ "parentResourceID" ] as string, - resource_id: value[ "resourceID" ] as string, - etag: value[ "eTag" ] as string, - filename: value[ "fileName" ] as string, + parent_resource_id: value["parentResourceID"] as string, + resource_id: value["resourceID"] as string, + etag: value["eTag"] as string, + filename: value["fileName"] as string, path: "", directory: "", - file_status: value[ "fileStatus" ] as number | null, - permissions: value[ "spoPermissions" ] as number | null, - volume_id: value[ "volumeID" ] as number | null, - item_index: value[ "itemIndex" ] as number | null, + file_status: value["fileStatus"] as number | null, + permissions: value["spoPermissions"] as number | null, + volume_id: value["volumeID"] as number | null, + item_index: value["itemIndex"] as number | null, last_change: "1970-01-01T00:00:00.000Z", - size: value[ "size" ] as number | null, + size: value["size"] as number | null, hash_digest: "", - shared_item: value[ "sharedItem" ] as string | null, + shared_item: value["sharedItem"] as string | null, media_date_taken: "", - media_width: value[ "mediaWidth" ] as number | null, - media_height: value[ "mediaHeight" ] as number | null, - media_duration: value[ "mediaDuration" ] as number | null, + media_width: value["mediaWidth"] as number | null, + media_height: value["mediaHeight"] as number | null, + media_duration: value["mediaDuration"] as number | null, graph_metadata: "", - created_by: "1970-01-01T00:00:00.000Z", - modified_by: "1970-01-01T00:00:00.000Z", + created_by: "", + modified_by: "", last_write_count: 0, db_path: path, + message: value["fileName"] as string, + datetime: "1970-01-01T00:00:00.000Z", + timestamp_desc: "OneDrive Sync Last Change", + artifact: "OneDrive Sync Record", + data_type: "applications:onedrive:sync:entry" }; - if (value[ "lastChange" ] !== null && value[ "lastChange" ] !== undefined) { - record.last_change = unixEpochToISO(value[ "lastChange" ] as number); + if (typeof value["lastChange"] === 'number') { + record.last_change = unixEpochToISO(value["lastChange"] as number); + record.datetime = record.last_change; } - if (value[ "mediaDateTaken" ] !== null && value[ "mediaDateTaken" ] !== undefined) { + if (typeof value["mediaDateTaken"] === 'number') { record.media_date_taken = unixEpochToISO( - value[ "mediaDateTaken" ] as number, + value["mediaDateTaken"] as number, ); } - if (value[ "localHashDigest" ] !== null && value[ "localHashDigest" ] !== undefined) { - const data = decode(value[ "localHashDigest" ] as string); + if (typeof value["localHashDigest"] === 'string') { + const data = decode(value["localHashDigest"] as string); if (!(data instanceof EncodingError)) { record.hash_digest = bytesToHexString(data); } @@ -145,15 +155,15 @@ function getFolders( const folders: OneDriveSyncEngineFolder[] = []; for (const value of results) { const folder: OneDriveSyncEngineFolder = { - parent_resource_id: value[ "parentResourceID" ] as string, - resource_id: value[ "resourceID" ] as string, - etag: value[ "eTag" ] as string, - parent_scope_id: value[ "parentScopeID" ] as string, - folder: value[ "folderName" ] as string, - folder_status: value[ "folderStatus" ] as number | null, - permissions: value[ "spoPermissions" ] as number | null, - volume_id: value[ "volumeID" ] as number | null, - item_index: value[ "itemIndex" ] as number | null, + parent_resource_id: value["parentResourceID"] as string, + resource_id: value["resourceID"] as string, + etag: value["eTag"] as string, + parent_scope_id: value["parentScopeID"] as string, + folder: value["folderName"] as string, + folder_status: value["folderStatus"] as number | null, + permissions: value["spoPermissions"] as number | null, + volume_id: value["volumeID"] as number | null, + item_index: value["itemIndex"] as number | null, parents: [], }; folders.push(folder); @@ -214,14 +224,101 @@ function getMeta(path: string): SyncMeta[] | ApplicationError { const values: SyncMeta[] = []; for (const value of results) { const meta: SyncMeta = { - created_by: value[ "createdBy" ] as string, - modified_by: value[ "modifiedBy" ] as string, - graph: value[ "graphMetadataJSON" ] as string, - count: value[ "lastWriteCount" ] as number, - id: value[ "resourceID" ] as string, + created_by: value["createdBy"] as string, + modified_by: value["modifiedBy"] as string, + graph: value["graphMetadataJSON"] as string, + count: value["lastWriteCount"] as number, + id: value["resourceID"] as string, }; values.push(meta); } return values; } + +/** + * Function to test the OneDrive Sync Database parsing + * This function should not be called unless you are developing the artemis-api + * Or want to validate the OneDrive Sync Database parsing + */ +export function testExtractSyncEngine(): void { + const test = "../../tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/settings/Personal/SyncEngineDatabase.db"; + let results = extractSyncEngine(test); + if (results instanceof ApplicationError) { + throw results; + } + + if (results.length !== 43) { + throw `Got "${results.length}" expected 43.......extractSyncEngine ❌` + } + + if (results[38]?.filename !== "4FDAA807B3CAB8D648CC3C82F11BB4B84D8ECF6E") { + throw `Got '${results[38]?.filename}' expected "4FDAA807B3CAB8D648CC3C82F11BB4B84D8ECF6E".......extractSyncEngine ❌` + } + + console.info(` Function extractSyncEngine ✅`); + + results = getRecords(test); + if (results instanceof ApplicationError) { + throw results; + } + + if (results.length !== 43) { + throw `Got "${results.length}" expected 43.......getRecords ❌` + } + + if (results[3]?.filename !== "Capture.PNG") { + throw `Got '${results[3]?.filename}' expected "Capture.PNG".......extractSyncEngine ❌` + } + + console.info(` Function getRecords ✅`); + + const folders = getFolders(test); + if (folders instanceof ApplicationError) { + throw folders; + } + + if (folders.length !== 11) { + throw `Got "${folders.length}" expected 11.......getFolders ❌` + } + + if (folders[3]?.folder !== "intro") { + throw `Got '${folders[3]?.folder}' expected "intro".......extractSyncEngine ❌` + } + + console.info(` Function getFolders ✅`); + + const parent: OneDriveSyncEngineFolder[] = [ + { + "parent_resource_id": "81b443a51d57432abea4457ec2023cfc", + "resource_id": "23814ecb0b784241bcec575edac5b493", + "etag": "\"{23814ECB-0B78-4241-BCEC-575EDAC5B493},37\"", + "parent_scope_id": "81b443a51d57432abea4457ec2023cfc", + "folder": "Personal Vault", + "folder_status": 7, + "permissions": 27, + "volume_id": null, + "item_index": null, + "parents": [] + } + ]; + const path = getParents("23814ecb0b784241bcec575edac5b493", parent); + if (path[0] !== "Personal Vault") { + throw `Got '${path[0]}' expected "Personal Vault".......getParents ❌` + } + console.info(` Function getParents ✅`); + + const meta = getMeta(test); + if (meta instanceof ApplicationError) { + throw meta; + } + + if (meta.length !== 43) { + throw `Got "${meta.length}" expected 43.......getMeta ❌` + } + + if (meta[27]?.id !== "fd01a69c261520b9805bcd0100000000") { + throw `Got "${meta[27]?.id}" expected "fd01a69c261520b9805bcd0100000000".......getMeta ❌` + } + console.info(` Function getMeta ✅`); +} \ No newline at end of file diff --git a/src/windows/registry.ts b/src/windows/registry.ts index 894d1b83..fcdd921d 100644 --- a/src/windows/registry.ts +++ b/src/windows/registry.ts @@ -4,14 +4,14 @@ import { WindowsError } from "./errors"; /** * Function to parse a `Registry` file * @param path Full path to a `Registry` file - * @param [regex=""] Optional Rust compatible regular expression to filter Registry Key paths. Registry values are not filtered + * @param [regex=""] Optional Rust compatible regular expression to filter Registry Key paths. All regex comparisons are done in lowercase. Registry values are not filtered * @param [start_path=""] Optional Registry Key path to start * @returns `Registry` array or `WindowsError` */ export function getRegistry(path: string, regex = "", start_path = ""): Registry[] | WindowsError { try { //@ts-ignore: Custom Artemis function - const data = js_registry(path, regex, start_path); + const data = js_registry(path, regex.toLowerCase(), start_path); return data; } catch (err) { diff --git a/src/windows/registry/wifi.ts b/src/windows/registry/wifi.ts index 9cddb4ea..107ac290 100644 --- a/src/windows/registry/wifi.ts +++ b/src/windows/registry/wifi.ts @@ -31,14 +31,6 @@ export function wifiNetworksWindows(alt_path?: string): Wifi[] | WindowsError { } const profiles: Registry[] = []; - for (const entry of reg_entries) { - if (!entry.path.toLowerCase().includes("\\currentversion\\networklist\\profiles\\{")) { - continue; - } - - profiles.push(entry); - } - const networks: Wifi[] = []; for (const entry of profiles) { const net: Wifi = { diff --git a/tests/test.ts b/tests/test.ts index b8ee25f6..19b438f0 100644 --- a/tests/test.ts +++ b/tests/test.ts @@ -6,7 +6,9 @@ export { testLevelWal } from "../src/applications/leveldb/wal"; export { testRecentFiles } from "../src/applications/libreoffice"; export { testReadTrace } from "../src/applications/anydesk/trace"; export { testReadConfig } from "../src/applications/anydesk/conf"; - +export { testReadOdlFiles } from "../src/applications/onedrive/odl"; +export { testOneDrive } from "../src/applications/onedrive/onedrive"; +export {testExtractSyncEngine} from "../src/applications/onedrive/sqlite"; /** * Linux exported test functions */ diff --git a/tests/test_data/DFIRArtifactMuseum/LICENSE b/tests/test_data/DFIRArtifactMuseum/LICENSE new file mode 100644 index 00000000..60543524 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 DFIR Artifact Museum + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/BrowserMetrics/BrowserMetrics-66F171B2-5A2C.pma b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/BrowserMetrics/BrowserMetrics-66F171B2-5A2C.pma new file mode 100644 index 0000000000000000000000000000000000000000..a4389baa4bac6a25978698e4081d491188f05a44 GIT binary patch literal 1310720 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 z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3MlaZuE75Qw>F}A literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/BrowserMetrics/BrowserMetrics-66F171BD-5BFC.pma b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/BrowserMetrics/BrowserMetrics-66F171BD-5BFC.pma new file mode 100644 index 0000000000000000000000000000000000000000..8d84bf173d18f5516988d7d91357da9f3e956122 GIT binary patch literal 1310720 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 znt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As( zpb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu z0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`Xabsm zCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^` zXabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YE zfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t z31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OK znt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As( zpb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu z0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`Xabsm zCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^` zXabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YE zfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t z31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OK znt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As( zpb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu z0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`Xabsm zCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^` zXabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YE zfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t z31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OK znt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As( zpb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu z0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`Xabsm zCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^` zXabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YE zfF_^`XabsmCZGvu0-As(pb7lHcIa3D0001BkiYdbb`(Me3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK TfB^#r3>YwAz<>b*237+B%BW5j literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/BrowserMetrics/BrowserMetrics-66F171C7-3BE8.pma b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/BrowserMetrics/BrowserMetrics-66F171C7-3BE8.pma new file mode 100644 index 0000000000000000000000000000000000000000..257338324dd6fe9d1057fd9daeb702b3298c9ef1 GIT binary patch literal 1310720 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 zpb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu z0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`Xabsm zCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^` zXabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YE zfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t z31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OK znt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As( zpb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu z0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`Xabsm zCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^` zXabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YE zfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t z31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OK znt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As( zpb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu z0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`Xabsm zCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^` zXabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YE zfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t z31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OK znt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As( zpb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu z0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`Xabsm zCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^` zXabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YE zfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t z31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OK znt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As( zpb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu z0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`Xabsm zCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^` zXabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YE zfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t z31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OK znt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As( zpb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu z0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`Xabsm zCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^` zXabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YE zfF_^`XabsmCZGvu0-As(pb2OKnt&#t31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&#t z31|YEfF_^`XabsmCZGvu0-As(pb2OKnt&$o|JtDg0RR91073rN3ye?*88BeLfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r q3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r49r05t?^U< literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Crashpad/metadata b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Crashpad/metadata new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Crashpad/settings.dat b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Crashpad/settings.dat new file mode 100644 index 0000000000000000000000000000000000000000..0ccc4c5c316b1ea8df38447ced76f412274bc462 GIT binary patch literal 280 zcmXR;32Kg$91PBlyK!5-N0t5&UAV7cs W0RjXF5FkK+009C72oNCfo4^Gh&;oe? literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/data_1 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/data_1 new file mode 100644 index 0000000000000000000000000000000000000000..dcaafa9740ee97afbdf50792612ef9f379e292dc GIT binary patch literal 270336 zcmeI%I}Lz93;@sqCjk%O-vMDm1rl%oM}vSHZXtOc`bnA&Z|#1REn zIz@m00RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PJ_E F-~kAc1(N^( literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/data_2 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/data_2 new file mode 100644 index 0000000000000000000000000000000000000000..c7e2eb9adcfb2d3313ec85f5c28cedda950a3f9b GIT binary patch literal 8192 zcmeIu!3h8`2n0b1_TQ7_m#U&=2(t%Qz}%M=ae7_Oi2wlt1PBlyK!5-N0t5&UAV7cs V0RjXF5FkK+009C72oTsN@Bv`}0$Tt8 literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/data_3 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/data_3 new file mode 100644 index 0000000000000000000000000000000000000000..5eec97358cf550862fd343fc9a73c159d4c0ab10 GIT binary patch literal 8192 zcmeIuK@9*P5CpLeAOQbv2)|PW$RO!FMnHFsm9+HS=9>r*AV7cs0RjXF5FkK+009C7 W2oNAZfB*pk1PBlyK!5;&-vkZ-dID$w literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/index b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnGraphiteCache/index new file mode 100644 index 0000000000000000000000000000000000000000..4268fdf189c370f5a2b911bd9f4fc01550ce4e8d GIT binary patch literal 262512 zcmeIuF%5t)00h8qDgzNnLIN5p1pyV&u;B#{3?vN#81JY5AMd>CNNT=$S2>b0?`7}z z*4DWd0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ JfB=Di1Rl3I1}*>q literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_0 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_0 new file mode 100644 index 0000000000000000000000000000000000000000..d76fb77e93ac8a536b5dbade616d63abd00626c5 GIT binary patch literal 8192 zcmeIuK?wjL5Jka{7-jo+5O1auw}mk8@B+*}b0s6M>Kg$91PBlyK!5-N0t5&UAV7cs W0RjXF5FkK+009C72oNCfo4^Gh&;oe? literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_1 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_1 new file mode 100644 index 0000000000000000000000000000000000000000..dcaafa9740ee97afbdf50792612ef9f379e292dc GIT binary patch literal 270336 zcmeI%I}Lz93;@sqCjk%O-vMDm1rl%oM}vSHZXtOc`bnA&Z|#1REn zIz@m00RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PJ_E F-~kAc1(N^( literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_2 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_2 new file mode 100644 index 0000000000000000000000000000000000000000..c7e2eb9adcfb2d3313ec85f5c28cedda950a3f9b GIT binary patch literal 8192 zcmeIu!3h8`2n0b1_TQ7_m#U&=2(t%Qz}%M=ae7_Oi2wlt1PBlyK!5-N0t5&UAV7cs V0RjXF5FkK+009C72oTsN@Bv`}0$Tt8 literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_3 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/data_3 new file mode 100644 index 0000000000000000000000000000000000000000..5eec97358cf550862fd343fc9a73c159d4c0ab10 GIT binary patch literal 8192 zcmeIuK@9*P5CpLeAOQbv2)|PW$RO!FMnHFsm9+HS=9>r*AV7cs0RjXF5FkK+009C7 W2oNAZfB*pk1PBlyK!5;&-vkZ-dID$w literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/index b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/DawnWebGPUCache/index new file mode 100644 index 0000000000000000000000000000000000000000..3c87099c4fe98f980d34819b4d5e7fff6839fc83 GIT binary patch literal 262512 zcmeIuF%5t)00h8q>V^diI6+ILAfO@|HoV}0fuunINzFI!Do0Z0y=?v7 z+d8*GfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF J5Fqf6zypTo1`YrK literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/EdgeHubAppUsage/EdgeHubAppUsageSQLite.db b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/EdgeHubAppUsage/EdgeHubAppUsageSQLite.db new file mode 100644 index 0000000000000000000000000000000000000000..9866d8a0a9d03c9b682c80b90972ace29b49f8d6 GIT binary patch literal 32768 zcmeI*J#W)M7zc1WZsI~(To6@;44l-VjYxqA!P23G)|7~l(lnuTI=S^VwHn*OcA{pC z#DMrBd;q=zOE)HV2390CM$XPl?V3~!89e+WIexjzJ&%8WY}Kxm?C(_#kC7AGF*T1o z7M2826rK?x2tt}q^L!e={Pnr<3ZILi|mYx5opPOpC8;!%ei|calnEmt<#~w!fE%2`YXD|yLMfz#WJHL zE46L)9hr0_yEPK;ycV?UMRI(qSuLj1qkfTe9J|9DuTQ;xhZTwE7_Am_sLkhwHSS71 z!(;_>PR`xuS!IJ{4E>xA2MSu_;nI=Zu5_Q0VQ9d@;Ep8c)_J`BNxZIQ*j7Mb=<$Ga zv4G+JQzHI{NjRwwswn45CGq2vpjhHb#J8j(g%ocmYsApQg%Yi!P;^qMHPjvTvha$- zLmvI~xGIN@7BA+=;L+x;)1J~gjO!Q4Kf*?;=DPOSSui>>-zM=ZYH)AA=wDiw5_^3`Vi14;1Rwwb z2tWV=5P$##AOHaf%s}9#KL+mqXCR3oAOHafKmY;|fB*y_009U<00PMs!2N%6j}0<| z00bZa0SG_<0uX=z1Rwwb2+T?V_y4n!#5fRu00bZa0SG_<0uX=z1Rwx`o8xx452{~jlIj{I_`;Q9_bXm^{o&+aP; zg%IU2V~U~>UT1j?OM;(hVS^t7`@afNZudXV)89%`{iM)3{SyBgw`TUWpV~X^9>0VF z0wD0e1iU2GbE{-9@3v~r@qyiU_uDON&-I&j$FoGktxa5>T`!yYipjQ$8|G^^VGPHx zQgPCh9!_UGOT_h+C1T4yJ*(Gk4CnHa(>#bC(zIThk1*Pl>JL}QASosj9(d>-w^a`# zvE16Rd_6HXxonX~1de3edGOsh)gN((XT;<#R>!V8fs9Fy^m32#kP9wDqcJ#{q5A47 z`C$0=Uc;F{KGBR1y;bsS1@mGKYCLZhbJHxd7v-(z`SLE?Hg_{ZhdZ(rOBGhE77Ce$ z?fF)(Q?q?%WZf{I53i!?0KcIjB2!H?xfB*Kg$91PBlyK!5-N0t5&UAV7cs W0RjXF5FkK+009C72oNCfo4^Gh&;oe? literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/data_1 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/data_1 new file mode 100644 index 0000000000000000000000000000000000000000..dcaafa9740ee97afbdf50792612ef9f379e292dc GIT binary patch literal 270336 zcmeI%I}Lz93;@sqCjk%O-vMDm1rl%oM}vSHZXtOc`bnA&Z|#1REn zIz@m00RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PJ_E F-~kAc1(N^( literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/data_2 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/data_2 new file mode 100644 index 0000000000000000000000000000000000000000..c7e2eb9adcfb2d3313ec85f5c28cedda950a3f9b GIT binary patch literal 8192 zcmeIu!3h8`2n0b1_TQ7_m#U&=2(t%Qz}%M=ae7_Oi2wlt1PBlyK!5-N0t5&UAV7cs V0RjXF5FkK+009C72oTsN@Bv`}0$Tt8 literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/data_3 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/data_3 new file mode 100644 index 0000000000000000000000000000000000000000..5eec97358cf550862fd343fc9a73c159d4c0ab10 GIT binary patch literal 8192 zcmeIuK@9*P5CpLeAOQbv2)|PW$RO!FMnHFsm9+HS=9>r*AV7cs0RjXF5FkK+009C7 W2oNAZfB*pk1PBlyK!5;&-vkZ-dID$w literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/index b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/GPUCache/index new file mode 100644 index 0000000000000000000000000000000000000000..8c06a1a08a260ff1a3db8698e27477b9cc3f505f GIT binary patch literal 262512 zcmeIuF%5t)00h8qI-v$hXhBM6QV|UsUhu#`(jb8Ge)|9M&Z~~3=9_nwmXvuPOTV{$ zom(M5fB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF I5co&n0ry4*SO5S3 literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/History b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/History new file mode 100644 index 0000000000000000000000000000000000000000..e28aa749e1c770978c28e7249e2cbcc79970e8af GIT binary patch literal 188416 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 literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/History-journal b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/History-journal new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/LOCK b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/LOCK new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/LOG b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/LOG new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/LOG.old b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/LOG.old new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/000003.log b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/000003.log new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/CURRENT b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/CURRENT new file mode 100644 index 00000000..7ed683d1 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/LOCK b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/LOCK new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/LOG b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/LOG new file mode 100644 index 00000000..03cd52d5 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/LOG @@ -0,0 +1,3 @@ +2024/09/23-08:48:56.412 4e70 Reusing MANIFEST C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Local Storage\leveldb/MANIFEST-000001 +2024/09/23-08:48:56.457 4e70 Recovering log #3 +2024/09/23-08:48:56.466 4e70 Reusing old log C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Local Storage\leveldb/000003.log diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/LOG.old b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/LOG.old new file mode 100644 index 00000000..17575919 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/LOG.old @@ -0,0 +1,3 @@ +2024/09/23-08:48:47.801 2700 Reusing MANIFEST C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Local Storage\leveldb/MANIFEST-000001 +2024/09/23-08:48:48.083 2700 Recovering log #3 +2024/09/23-08:48:48.093 2700 Reusing old log C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Local Storage\leveldb/000003.log diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/MANIFEST-000001 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Local Storage/leveldb/MANIFEST-000001 new file mode 100644 index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77 GIT binary patch literal 41 wcmbPQv-7AD10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei0J`GZPB~05;AINdN!< literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Login Data b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Login Data new file mode 100644 index 0000000000000000000000000000000000000000..997741894ef44f1d714b9465744fa6abbcfca482 GIT binary patch literal 43008 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 Fegkilp2q+H literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Network/Trust Tokens-journal b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Network/Trust Tokens-journal new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/PersistentOriginTrials/LOCK b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/PersistentOriginTrials/LOCK new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/PersistentOriginTrials/LOG b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/PersistentOriginTrials/LOG new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/PersistentOriginTrials/LOG.old b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/PersistentOriginTrials/LOG.old new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Preferences b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Preferences new file mode 100644 index 00000000..27cf64e0 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Preferences @@ -0,0 +1 @@ +{"aadc_info":{"age_group":0},"account_tracker_service_last_update":"13371572914858923","alternate_error_pages":{"backup":true},"autocomplete":{"retention_policy_last_version":128},"autofill":{"last_version_deduped":128},"browser":{"available_dark_theme_options":"All","has_seen_welcome_page":false,"recent_theme_color_list":[4293914607.0,4293914607.0,4293914607.0,4293914607.0,4293914607.0]},"browser_content_container_height":252,"browser_content_container_width":450,"browser_content_container_x":0,"browser_content_container_y":0,"commerce_daily_metrics_last_update_time":"13371572914547032","credentials_enable_service":false,"domain_diversity":{"last_reporting_timestamp":"13371572914856140"},"edge":{"msa_sso_info":{"allow_for_non_msa_profile":true},"profile_sso_info":{"is_msa_first_profile":true,"msa_sso_algo_state":1},"services":{"signin_scoped_device_id":"1590f645-133b-4085-b003-a869e0b13212"}},"edge_rewards":{"cache_data":"CAA=","coachmark_promotions":{},"hva_promotions":[],"refresh_status_muted_until":"13372177714467233"},"edge_ux_config":{"assignmentcontext":"","dataversion":"0","experimentvariables":{},"flights":{}},"enterprise_profile_guid":"4cde41bf-0491-4e23-99aa-eb5383655a23","extensions":{"alerts":{"initialized":true},"chrome_url_overrides":{},"last_chrome_version":"128.0.2739.79","pdf_upsell_triggered":false,"pinned_extension_migration":true,"pinned_extensions":[]},"fsd":{"retention_policy_last_version":128},"intl":{"selected_languages":"en-US,en"},"muid":{"last_sync":"13371572914546603"},"optimization_guide":{"previously_registered_optimization_types":{"ABOUT_THIS_SITE":true,"HISTORY_CLUSTERS":true,"PAGE_ENTITIES":true,"PRICE_INSIGHTS":true,"PRICE_TRACKING":true,"SALIENT_IMAGE":true,"SHOPPING_DISCOUNTS":true,"SHOPPING_PAGE_TYPES":true,"V8_COMPILE_HINTS":true},"store_file_paths_to_delete":{}},"password_manager":{"autofillable_credentials_profile_store_login_database":false},"privacy_sandbox":{"first_party_sets_data_access_allowed_initialized":true},"profile":{"avatar_index":20,"content_settings":{"did_migrate_adaptive_notification_quieting_to_cpss":true,"disable_quiet_permission_ui_time":{"notifications":"13371572914504882"},"enable_cpss":{"notifications":true},"enable_quiet_permission_ui":{"notifications":false},"enable_quiet_permission_ui_enabling_method":{"notifications":1},"exceptions":{"3pcd_heuristics_grants":{},"3pcd_support":{},"abusive_notification_permissions":{},"access_to_get_all_screens_media_in_session":{},"accessibility_events":{},"anti_abuse":{},"app_banner":{},"ar":{},"auto_picture_in_picture":{},"auto_select_certificate":{},"automatic_downloads":{},"automatic_fullscreen":{},"autoplay":{},"background_sync":{},"bluetooth_chooser_data":{},"bluetooth_guard":{},"bluetooth_scanning":{},"camera_pan_tilt_zoom":{},"captured_surface_control":{},"clear_browsing_data_cookies_exceptions":{},"client_hints":{},"clipboard":{},"cookie_controls_metadata":{},"cookies":{},"direct_sockets":{},"display_media_system_audio":{},"durable_storage":{},"edge_ad_targeting":{},"edge_ad_targeting_data":{},"edge_sdsm":{},"edge_split_screen":{},"edge_u2f_api_request":{},"edge_user_agent_token":{},"fedcm_idp_registration":{},"fedcm_idp_signin":{},"fedcm_share":{},"file_system_access_chooser_data":{},"file_system_access_extended_permission":{},"file_system_access_restore_permission":{},"file_system_last_picked_directory":{},"file_system_read_guard":{},"file_system_write_guard":{},"formfill_metadata":{},"geolocation":{},"hid_chooser_data":{},"hid_guard":{},"http_allowed":{},"https_enforced":{},"idle_detection":{},"images":{},"important_site_info":{},"insecure_private_network":{},"intent_picker_auto_display":{},"javascript":{},"javascript_jit":{},"javascript_optimizer":{},"keyboard_lock":{},"legacy_cookie_access":{},"local_fonts":{},"media_engagement":{},"media_stream_camera":{},"media_stream_mic":{},"midi_sysex":{},"mixed_script":{},"nfc_devices":{},"notification_interactions":{},"notification_permission_review":{},"notifications":{},"password_protection":{},"payment_handler":{},"permission_autoblocking_data":{},"permission_autorevocation_data":{},"pointer_lock":{},"popups":{},"private_network_chooser_data":{},"private_network_guard":{},"protected_media_identifier":{},"protocol_handler":{},"reduced_accept_language":{},"safe_browsing_url_check_data":{},"secure_network":{},"secure_network_sites":{},"sensors":{},"serial_chooser_data":{},"serial_guard":{},"site_engagement":{},"sleeping_tabs":{},"sound":{},"speaker_selection":{},"ssl_cert_decisions":{},"storage_access":{},"storage_access_header_origin_trial":{},"subresource_filter":{},"subresource_filter_data":{},"third_party_storage_partitioning":{},"token_binding":{},"top_level_3pcd_origin_trial":{},"top_level_3pcd_support":{},"top_level_storage_access":{},"trackers":{},"trackers_data":{},"tracking_org_exceptions":{},"tracking_org_relationships":{},"tracking_protection":{},"unused_site_permissions":{},"usb_chooser_data":{},"usb_guard":{},"vr":{},"webid_api":{},"webid_auto_reauthn":{},"window_placement":{}},"pref_version":1},"created_by_version":"128.0.2739.79","creation_time":"13371572914398051","edge_password_is_using_new_login_db_path":false,"edge_password_login_db_path_flip_flop_count":0,"edge_profile_id":"3ef67a14-9678-49cf-adc1-82e093df2c50","has_seen_signin_fre":false,"is_relative_to_aad":false,"managed_user_id":"","name":"Profile 1","network_pbs":{},"password_account_storage_settings":{},"signin_fre_seen_time":"13371572914445403"},"reset_prepopulated_engines":false,"safety_hub":{"unused_site_permissions_revocation":{"migration_completed":true}},"sessions":{"event_log":[{"crashed":false,"time":"13371572914492021","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13371572915344094","type":2,"window_count":0},{"crashed":false,"time":"13371572926645018","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13371572932566398","type":2,"window_count":0},{"crashed":false,"time":"13371572935850823","type":0},{"did_schedule_command":false,"first_session_service":true,"tab_count":0,"time":"13371572939132104","type":2,"window_count":0}],"session_data_status":3},"signin":{"allowed":true},"spellcheck":{"dictionaries":["en-US"]},"tracking_protection":{"tracking_protection_3pcd_enabled":false},"translate_site_blacklist":[],"translate_site_blocklist_with_time":{},"user_experience_metrics":{"personalization_data_consent_enabled_last_known_value":false}} \ No newline at end of file diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/README b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/README new file mode 100644 index 00000000..4a344027 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/README @@ -0,0 +1 @@ +Microsoft Edge settings and storage represent user-selected preferences and information and MUST not be extracted, overwritten or modified except through Microsoft Edge defined APIs. \ No newline at end of file diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Safe Browsing Network/NetworkDataMigrated b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Safe Browsing Network/NetworkDataMigrated new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Safe Browsing Network/Safe Browsing Cookies b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Safe Browsing Network/Safe Browsing Cookies new file mode 100644 index 0000000000000000000000000000000000000000..42aa0bd18da739d5d2bf61971161f83cb9ff6bfe GIT binary patch literal 20480 zcmeI&Jx|*}7zc1W22xt6VL%zu;RHiLa$jiLr3@v2OQWWtq)7#nWt@Y!B(^!9DH*B6 z00ZBnW4}VTPW=j9x>oAerBd&L10haER0;l;OzeBj^SjF_zVL3n=yFQ7eb%%&$te?x zsw#_wD2kF6=dd_ChrAx@+=y4T>w3^-T6wsCGCuZK85%uS^d0^C=<(R%pu$Lp00bZa z0SG_<0yj$F=&6>@WV7nY3vO>UsN?&)E)CU1r zC{@f=vrI~B6;i4ei$>iKxwT7Mq+)J}q)syT18bYvO=^YWi(j7tp2+K|vu`(|-Zbht ztQBxtv(9ptifc<3y#zL|_cTHe0+-RS|C@C~E2K`uXfh6wRp&hLy+$jU*|0^Bw&T!n zK*M!AwBnwVwMEkbWuY5#>hWZDz+9iXyid2GFp_-9I-wsiN7y=bDi{-k5@!cK>(gI5 zm?)^(VqE$TXj|>=cQK6m-%Y3 zLLM7ri}@cz%B+C-`_z-|B}>g6J|9YFo@Lcf^R8E;2l3RjBG286sMVb|9M9ousjyx( zMN=#0MrSHtDo@r*o%GqxBsNHL-Wp^;$Oe&f*dTHe8syT5oZre3nA88HKHR892EqO( zfo(ONnVM1$AGH_vCgoy+ayxZtS(hoZa=|XHl~&*9%ge9w7t1+`KQ?d6g*W-~CV6dc z8su!{?J7QZKQ)qBm{OJY2QS=f$R*y6xZl3FWDnN7{HqCvThd}&oWuH&qW{u==wJ2E z;t~f0AOHafKmY;|fB*y_009U<00LJbFrC&4y5l#+hLtP!e%rfq*1p`C6q~zV)ZC&h zml@G=y4<$w&A6v&3zO}w!>$(M%1?4*DJ?sBem9|NGn37x9atf^c@#dFzb)b!)=w4v zRR5xX(|_wfuOdLS2>}Q|00Izz00bZa0SG_<0uX?}g}}5{P`jSu`#kQaGg?mVlRlEw z7SsW|0NNcbtHyf(sk_?DXx9#a{QY12(?1RfKmY;|fB*y_009U<00Izz00geFfc*U* f&;QqWfDsx5AOHafKmY;|fB*y_009Ukga;h%>O0_f|21aJ6N)Uxb F2mmr^3z+}_ literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/CURRENT b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/CURRENT new file mode 100644 index 00000000..7ed683d1 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/LOCK b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/LOCK new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/LOG b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/LOG new file mode 100644 index 00000000..249f903a --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/LOG @@ -0,0 +1,3 @@ +2024/09/23-08:48:59.104 4e70 Reusing MANIFEST C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Session Storage/MANIFEST-000001 +2024/09/23-08:48:59.110 4e70 Recovering log #3 +2024/09/23-08:48:59.163 4e70 Reusing old log C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Session Storage/000003.log diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/LOG.old b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/LOG.old new file mode 100644 index 00000000..9d86d90d --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/LOG.old @@ -0,0 +1,3 @@ +2024/09/23-08:48:52.504 2700 Reusing MANIFEST C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Session Storage/MANIFEST-000001 +2024/09/23-08:48:52.507 2700 Recovering log #3 +2024/09/23-08:48:52.549 2700 Reusing old log C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Session Storage/000003.log diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/MANIFEST-000001 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Session Storage/MANIFEST-000001 new file mode 100644 index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77 GIT binary patch literal 41 wcmbPQv-7AD10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei0J`GZPB~05;AINdN!< literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/cache/index b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/cache/index new file mode 100644 index 0000000000000000000000000000000000000000..79bd403ac665228853dd8fa54b8f4427af1721c0 GIT binary patch literal 24 TcmXqrDOxU_`}+?k11bOjQGf(4 literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/cache/index-dir/the-real-index b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/cache/index-dir/the-real-index new file mode 100644 index 0000000000000000000000000000000000000000..2d8587ab6ea1fe84df82970c9658c4b36372113a GIT binary patch literal 48 mcmdO3U|{&&;isNosZf+!l9$Q}UZ&t`V0W#BM7(v literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/db b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/db new file mode 100644 index 0000000000000000000000000000000000000000..204b6ea32895f770a1d74d28dfe57d39d6689856 GIT binary patch literal 45056 zcmeI&J#X7a7{GB-R3ux9%M^y8!9x!)jGC3wG!4?lOXY+}jVe;2$Zd=a1S`=N5s8#V z%1MeWMu!6V68#9BvUTjzsh^=k*8<&&PCe36!56t}0QFBmGI@98qvv;bFz%!$k6Ui& zh!cN0wnK48xuK}4^0^R-q7>w-Dqo9ZO`a4N7xJ%~IKS$&pnQD(W<&o=sZ`!5`lGM=rMYR0bmB7U^!0@_gjKFwV;5T3rVD zAP(XN{>YAe@`2V;fiewq!A_>O6!)j@sp~aDe_~x01ah5Vc%@_~r7QDs%c;1_TIYhN z8yOdC*UGhBnd6f<$C>Az&6bRY(mc>n`|$D6Vo)R-=i>ZFl8vDsgbleI>JKm9t$`DS z#-n1XR26!wMYvalC%^^4k34^qL1PQ)Jrid6Ksw?=-#}YH@PkZ^q9| z4%Xy(G4-@$&E90{j_v6y>$&qv&V-)%!0d{4rzhG+t(JJyJ$%^g9*Zx{W6?b7bq?F| zK@ZJ#uaQh%^vtL7hWSmI{?1fJFqxv5X<1o}mZ@+DnS$ALlqrcP>4_ulCpc4?q}kl)j3G|L{mAMiTNA;ote2R<3ugjwzkxZTX9d1 zoluT}&@QBUHY(YRda~7NKlrNIz4t{k(VO$3o#@ntIJZYLC)wQiuu!V)Z>dT=Tjm4L zo`rsVZAB5R+tIrw|H(w_d1XVsiu#X={)hgX{;Dz*Tv9^-0R#|0009ILKmY**5I|rq5dHq2@BbMN2q1s}0tg_000IagfB*srthNB_ z|JCkavO@p?1Q0*~0R#|0009ILKp+xe{m(c+009ILKmY**5I_I{1Q0-A^#xe}uYMns zAp!^>fB*srAb;Kj7V=_bl0R#|0 P009ILKmY**5J2D``~@G^ literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/db-journal b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Shared Dictionary/db-journal new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/SharedStorage b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/SharedStorage new file mode 100644 index 0000000000000000000000000000000000000000..210e705467a7b7c47f0f429110e6f79034d4e95a GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WY8gAoAFtqS!3 literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/CURRENT b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/CURRENT new file mode 100644 index 00000000..7ed683d1 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/LOCK b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/LOCK new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/LOG b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/LOG new file mode 100644 index 00000000..a487b16d --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/LOG @@ -0,0 +1,3 @@ +2024/09/23-08:48:55.841 2b04 Reusing MANIFEST C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Sync Data\LevelDB/MANIFEST-000001 +2024/09/23-08:48:55.844 2b04 Recovering log #3 +2024/09/23-08:48:55.845 2b04 Reusing old log C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Sync Data\LevelDB/000003.log diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/LOG.old b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/LOG.old new file mode 100644 index 00000000..2b9f65e4 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/LOG.old @@ -0,0 +1,3 @@ +2024/09/23-08:48:46.637 5658 Reusing MANIFEST C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Sync Data\LevelDB/MANIFEST-000001 +2024/09/23-08:48:46.641 5658 Recovering log #3 +2024/09/23-08:48:46.645 5658 Reusing old log C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\Sync Data\LevelDB/000003.log diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/MANIFEST-000001 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Sync Data/LevelDB/MANIFEST-000001 new file mode 100644 index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77 GIT binary patch literal 41 wcmbPQv-7AD10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei0J`GZPB~05;AINdN!< literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Visited Links b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/Visited Links new file mode 100644 index 0000000000000000000000000000000000000000..cf2655cf288cbd1a67c01018c79eb67c8bd1a846 GIT binary patch literal 131072 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 O^PHPG8mK}5w+a9zmO6_7 literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/CURRENT b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/CURRENT new file mode 100644 index 00000000..7ed683d1 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/LOCK b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/LOCK new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/LOG b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/LOG new file mode 100644 index 00000000..6327e46f --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/LOG @@ -0,0 +1,3 @@ +2024/09/23-08:48:55.921 1914 Reusing MANIFEST C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\shared_proto_db\metadata/MANIFEST-000001 +2024/09/23-08:48:55.922 1914 Recovering log #3 +2024/09/23-08:48:55.923 1914 Reusing old log C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\shared_proto_db\metadata/000003.log diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/LOG.old b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/LOG.old new file mode 100644 index 00000000..1839167c --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/LOG.old @@ -0,0 +1,3 @@ +2024/09/23-08:48:46.756 5658 Reusing MANIFEST C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\shared_proto_db\metadata/MANIFEST-000001 +2024/09/23-08:48:46.757 5658 Recovering log #3 +2024/09/23-08:48:46.758 5658 Reusing old log C:\Users\Beercow\AppData\Local\Microsoft\OneDrive\EBWebView\Default\shared_proto_db\metadata/000003.log diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/MANIFEST-000001 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Default/shared_proto_db/metadata/MANIFEST-000001 new file mode 100644 index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77 GIT binary patch literal 41 wcmbPQv-7AD10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei0J`GZPB~05;AINdN!< literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_0 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_0 new file mode 100644 index 0000000000000000000000000000000000000000..d76fb77e93ac8a536b5dbade616d63abd00626c5 GIT binary patch literal 8192 zcmeIuK?wjL5Jka{7-jo+5O1auw}mk8@B+*}b0s6M>Kg$91PBlyK!5-N0t5&UAV7cs W0RjXF5FkK+009C72oNCfo4^Gh&;oe? literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_1 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_1 new file mode 100644 index 0000000000000000000000000000000000000000..dcaafa9740ee97afbdf50792612ef9f379e292dc GIT binary patch literal 270336 zcmeI%I}Lz93;@sqCjk%O-vMDm1rl%oM}vSHZXtOc`bnA&Z|#1REn zIz@m00RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PJ_E F-~kAc1(N^( literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_2 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_2 new file mode 100644 index 0000000000000000000000000000000000000000..c7e2eb9adcfb2d3313ec85f5c28cedda950a3f9b GIT binary patch literal 8192 zcmeIu!3h8`2n0b1_TQ7_m#U&=2(t%Qz}%M=ae7_Oi2wlt1PBlyK!5-N0t5&UAV7cs V0RjXF5FkK+009C72oTsN@Bv`}0$Tt8 literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_3 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/data_3 new file mode 100644 index 0000000000000000000000000000000000000000..5eec97358cf550862fd343fc9a73c159d4c0ab10 GIT binary patch literal 8192 zcmeIuK@9*P5CpLeAOQbv2)|PW$RO!FMnHFsm9+HS=9>r*AV7cs0RjXF5FkK+009C7 W2oNAZfB*pk1PBlyK!5;&-vkZ-dID$w literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/index b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GrShaderCache/index new file mode 100644 index 0000000000000000000000000000000000000000..5e25344446c2864b7c6f5a6bdb395d3e4b8947d0 GIT binary patch literal 262512 zcmeIuF%f_;00Y33ia-XE(1H|XF!tE+f&r%9G4v3?_?eQ7e_pjEHQ!9{D0@=IJwM02 zZp+vT0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly JK!CtM0v(gs2EYIS literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_0 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_0 new file mode 100644 index 0000000000000000000000000000000000000000..d76fb77e93ac8a536b5dbade616d63abd00626c5 GIT binary patch literal 8192 zcmeIuK?wjL5Jka{7-jo+5O1auw}mk8@B+*}b0s6M>Kg$91PBlyK!5-N0t5&UAV7cs W0RjXF5FkK+009C72oNCfo4^Gh&;oe? literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_1 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_1 new file mode 100644 index 0000000000000000000000000000000000000000..dcaafa9740ee97afbdf50792612ef9f379e292dc GIT binary patch literal 270336 zcmeI%I}Lz93;@sqCjk%O-vMDm1rl%oM}vSHZXtOc`bnA&Z|#1REn zIz@m00RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PJ_E F-~kAc1(N^( literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_2 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_2 new file mode 100644 index 0000000000000000000000000000000000000000..c7e2eb9adcfb2d3313ec85f5c28cedda950a3f9b GIT binary patch literal 8192 zcmeIu!3h8`2n0b1_TQ7_m#U&=2(t%Qz}%M=ae7_Oi2wlt1PBlyK!5-N0t5&UAV7cs V0RjXF5FkK+009C72oTsN@Bv`}0$Tt8 literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_3 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/data_3 new file mode 100644 index 0000000000000000000000000000000000000000..5eec97358cf550862fd343fc9a73c159d4c0ab10 GIT binary patch literal 8192 zcmeIuK@9*P5CpLeAOQbv2)|PW$RO!FMnHFsm9+HS=9>r*AV7cs0RjXF5FkK+009C7 W2oNAZfB*pk1PBlyK!5;&-vkZ-dID$w literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/index b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/GraphiteDawnCache/index new file mode 100644 index 0000000000000000000000000000000000000000..c4b659ec218eb1690bfd0620986b038a908ca4e9 GIT binary patch literal 262512 zcmeIuF%f_;00Y333SvMISV0Olx^ZlH!9(vDdI(_rOi9MS?s_IQ-%Rf)M^eVUE$vzN zd2EFM0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly IK;R#N4%Zq6LjV8( literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Last Version b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Last Version new file mode 100644 index 00000000..e38a80e7 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Last Version @@ -0,0 +1 @@ +128.0.2739.79 \ No newline at end of file diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Local State b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Local State new file mode 100644 index 00000000..2d07f936 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/Local State @@ -0,0 +1 @@ +{"accessibility":{"captions":{"common_models_path":"","soda_binary_path":""}},"autofill":{"ablation_seed":"5o/YPX06yS4="},"background_tracing":{"session_state":{"privacy_filter":true,"state":0}},"breadcrumbs":{"enabled":true,"enabled_time":"13371572914387106"},"edge":{"mitigation_manager":{"renderer_code_integrity_compatible_count":2},"tab_stabs":{"closed_without_unfreeze_never_unfrozen":0,"closed_without_unfreeze_previously_unfrozen":0,"discard_without_unfreeze_never_unfrozen":0,"discard_without_unfreeze_previously_unfrozen":0},"tab_stats":{"frozen_daily":0,"unfrozen_daily":0}},"hardware_acceleration_mode_previous":true,"legacy":{"profile":{"name":{"migrated":true}}},"network_time":{"network_time_mapping":{"local":1.727099338201013e+12,"network":1.727099337e+12,"ticks":1.091328212314e+12,"uncertainty":1190519.0}},"optimization_guide":{"model_store_metadata":{}},"os_crypt":{"audit_enabled":true,"encrypted_key":"RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAABQ4OVZE9JhSZ9uf0R27w8+EAAAAB4AAABNAGkAYwByAG8AcwBvAGYAdAAgAEUAZABnAGUAAAAQZgAAAAEAACAAAADHpgpPa+94Marme+9kAFBjVIoeHn68zhvnM29W2PqthQAAAAAOgAAAAAIAACAAAAB6/TaFZDJQpupOa8BkRJS0ZGsfx4Ex6+rUbQPgu6NR8jAAAAD29KMQPlcMPKqaeD3QzGndoAJQVJnm0+CQ0avgI7MldPEW3eVHWLwj0l65SERzjzhAAAAA+wzUQ1/knAYN2ST5835fwnOX5edaxzZhj/qsfq5Qv0z9N0HORdQeN5hKYQBrApaU84MiT0WR2s2aRxJOMLNRlw=="},"policy":{"last_statistics_update":"13371572914383697"},"profile":{"info_cache":{"Default":{"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_20","background_apps":false,"edge_account_cid":"","edge_account_environment":0,"edge_account_first_name":"","edge_account_last_name":"","edge_account_oid":"","edge_account_sovereignty":0,"edge_account_tenant_id":"","edge_account_type":0,"edge_profile_can_be_deleted":true,"edge_test_on_premises":false,"edge_wam_aad_for_app_account_type":0,"force_signin_profile_locked":false,"gaia_given_name":"","gaia_id":"","gaia_name":"","hosted_domain":"","is_consented_primary_account":false,"is_ephemeral":false,"is_using_default_avatar":true,"is_using_default_name":true,"managed_user_id":"","name":"Profile 1","signin.with_credential_provider":false,"user_name":""}},"last_active_profiles":[],"profile_counts_reported":"13371572914150159","profiles_order":["Default"]},"profile_network_context_service":{"http_cache_finch_experiment_groups":"None None None None"},"profiles":{"edge":{"multiple_profiles_with_same_account":false},"edge_sso_info":{"msa_first_profile_key":"Default","msa_sso_algo_state":1},"signin_last_seen_version":"128.0.2739.79","signin_last_updated_time":1727099314.505019},"sentinel_creation_time":"0","session_id_generator_last_value":"600520457","startup_boost":{"last_browser_open_time":"13371572939129418"},"subresource_filter":{"ruleset_version":{"checksum":0,"content":"","format":0}},"tab_stats":{"discards_external":0,"discards_proactive":0,"discards_urgent":0,"last_daily_sample":"13371572914291671","max_tabs_per_window":1,"reloads_external":0,"reloads_urgent":0,"total_tab_count_max":1,"window_count_max":1},"telemetry_client":{"governance":{"last_dma_change_date":"13371572914233590","last_known_cps":0},"host_telclient_path":"QzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxNaWNyb3NvZnRcRWRnZVdlYlZpZXdcQXBwbGljYXRpb25cMTI4LjAuMjczOS43OVx0ZWxjbGllbnQuZGxs","sample_id":84579875},"uninstall_metrics":{"installation_date2":"1727099314"},"user_experience_metrics":{"client_id2":"{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}C:\\Users\\Beercow0s:24C7BF18-CF76-43F8-AE3B-7C265ED30E66","diagnostics":{"last_data_collection_level_on_launch":1},"limited_entropy_randomization_source":"0EAC3B0EC55DB578C4463ADE21CCF69A","low_entropy_source3":6143,"payload_counter":1,"pseudo_low_entropy_source":5722,"reset_client_id_deterministic":true,"session_id":2,"stability":{"browser_last_live_timestamp":"13371572939218874","exited_cleanly":true,"stats_buildtime":"1726097469","stats_version":"128.0.2739.79-64","system_crash_count":0}},"variations_failed_to_fetch_seed_streak":4,"variations_google_groups":{"Default":[]},"variations_limited_entropy_synthetic_trial_seed_v2":"92","was":{"restarted":false}} \ No newline at end of file diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_0 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_0 new file mode 100644 index 0000000000000000000000000000000000000000..d76fb77e93ac8a536b5dbade616d63abd00626c5 GIT binary patch literal 8192 zcmeIuK?wjL5Jka{7-jo+5O1auw}mk8@B+*}b0s6M>Kg$91PBlyK!5-N0t5&UAV7cs W0RjXF5FkK+009C72oNCfo4^Gh&;oe? literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_1 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_1 new file mode 100644 index 0000000000000000000000000000000000000000..dcaafa9740ee97afbdf50792612ef9f379e292dc GIT binary patch literal 270336 zcmeI%I}Lz93;@sqCjk%O-vMDm1rl%oM}vSHZXtOc`bnA&Z|#1REn zIz@m00RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PJ_E F-~kAc1(N^( literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_2 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_2 new file mode 100644 index 0000000000000000000000000000000000000000..c7e2eb9adcfb2d3313ec85f5c28cedda950a3f9b GIT binary patch literal 8192 zcmeIu!3h8`2n0b1_TQ7_m#U&=2(t%Qz}%M=ae7_Oi2wlt1PBlyK!5-N0t5&UAV7cs V0RjXF5FkK+009C72oTsN@Bv`}0$Tt8 literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_3 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/data_3 new file mode 100644 index 0000000000000000000000000000000000000000..5eec97358cf550862fd343fc9a73c159d4c0ab10 GIT binary patch literal 8192 zcmeIuK@9*P5CpLeAOQbv2)|PW$RO!FMnHFsm9+HS=9>r*AV7cs0RjXF5FkK+009C7 W2oNAZfB*pk1PBlyK!5;&-vkZ-dID$w literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/index b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/ShaderCache/index new file mode 100644 index 0000000000000000000000000000000000000000..b2c8d01f8ce9ab5d1a40b23a9a7b29c306192b7c GIT binary patch literal 262512 zcmeIuF%5t)00h8qDhM5nC_qc4FjPpxh8H|AkTeKjyr2Gmyz{Cfsrlwz5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N J0tEgMcmTtO1~vcy literal 0 HcmV?d00001 diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/customSettings b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/customSettings new file mode 100644 index 00000000..997f02da --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/customSettings @@ -0,0 +1 @@ +customSettings_F95BA787499AB4FA9EFFF472CE383A14 \ No newline at end of file diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/customSettings_F95BA787499AB4FA9EFFF472CE383A14 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/customSettings_F95BA787499AB4FA9EFFF472CE383A14 new file mode 100644 index 00000000..ae2fefae --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/customSettings_F95BA787499AB4FA9EFFF472CE383A14 @@ -0,0 +1 @@ +{"forceServiceDetermination":false} \ No newline at end of file diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/edgeSettings b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/edgeSettings new file mode 100644 index 00000000..a89ca1f4 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/edgeSettings @@ -0,0 +1 @@ +edgeSettings_2.0-0 \ No newline at end of file diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/edgeSettings_2.0-0 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/edgeSettings_2.0-0 new file mode 100644 index 00000000..9c342469 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/edgeSettings_2.0-0 @@ -0,0 +1 @@ +{"models":[],"geoidMaps":{"gw_my":"https://malaysia.smartscreen.microsoft.com/","gw_tw":"https://taiwan.smartscreen.microsoft.com/","gw_at":"https://austria.smartscreen.microsoft.com/","gw_es":"https://spain.smartscreen.microsoft.com/","gw_pl":"https://poland.smartscreen.microsoft.com/","gw_se":"https://sweden.smartscreen.microsoft.com/","gw_kr":"https://southkorea.smartscreen.microsoft.com/","gw_br":"https://brazil.smartscreen.microsoft.com/","au":"https://australia.smartscreen.microsoft.com/","dk":"https://denmark.smartscreen.microsoft.com/","gw_sg":"https://singapore.smartscreen.microsoft.com/","gw_fr":"https://france.smartscreen.microsoft.com/","gw_ca":"https://canada.smartscreen.microsoft.com/","test":"https://eu-9.smartscreen.microsoft.com/","gw_il":"https://israel.smartscreen.microsoft.com/","gw_au":"https://australia.smartscreen.microsoft.com/","gw_ffl4mod":"https://unitedstates4.ss.wd.microsoft.us/","gw_ffl4":"https://unitedstates1.ss.wd.microsoft.us/","gw_eu":"https://europe.smartscreen.microsoft.com/","gw_gr":"https://greece.smartscreen.microsoft.com/","gw_de":"https://germany.smartscreen.microsoft.com/","br":"https://brazil.smartscreen.microsoft.com/","gw_uk":"https://unitedkingdom.smartscreen.microsoft.com/","gw_it":"https://italy.smartscreen.microsoft.com/","gw_us":"https://unitedstates.smartscreen.microsoft.com/","il":"https://israel.smartscreen.microsoft.com/","es":"https://spain.smartscreen.microsoft.com/","ch":"https://switzerland.smartscreen.microsoft.com/","at":"https://austria.smartscreen.microsoft.com/","jp":"https://japan.smartscreen.microsoft.com/","kr":"https://southkorea.smartscreen.microsoft.com/","nz":"https://newzealand.smartscreen.microsoft.com/","gw_cl":"https://chile.smartscreen.microsoft.com/","pl":"https://poland.smartscreen.microsoft.com/","eu":"https://europe.smartscreen.microsoft.com/","de":"https://germany.smartscreen.microsoft.com/","gw_no":"https://norway.smartscreen.microsoft.com/","ffl4mod":"https://unitedstates4.ss.wd.microsoft.us/","gw_jp":"https://japan.smartscreen.microsoft.com/","mx":"https://mexico.smartscreen.microsoft.com/","gw_ffl5":"https://unitedstates2.ss.wd.microsoft.us/","se":"https://sweden.smartscreen.microsoft.com/","gw_ch":"https://switzerland.smartscreen.microsoft.com/","gw_ae":"https://uae.smartscreen.microsoft.com/","my":"https://malaysia.smartscreen.microsoft.com/","gw_nz":"https://newzealand.smartscreen.microsoft.com/","ca":"https://canada.smartscreen.microsoft.com/","fr":"https://france.smartscreen.microsoft.com/","gw_mx":"https://mexico.smartscreen.microsoft.com/","no":"https://norway.smartscreen.microsoft.com/","gr":"https://greece.smartscreen.microsoft.com/","gw_qa":"https://qatar.smartscreen.microsoft.com/","gw_in":"https://india.smartscreen.microsoft.com/","in":"https://india.smartscreen.microsoft.com/","tw":"https://taiwan.smartscreen.microsoft.com/","sg":"https://singapore.smartscreen.microsoft.com/","ffl5":"https://unitedstates2.ss.wd.microsoft.us/","ae":"https://uae.smartscreen.microsoft.com/","gw_dk":"https://denmark.smartscreen.microsoft.com/","gw_za":"https://southafrica.smartscreen.microsoft.com/","uk":"https://unitedkingdom.smartscreen.microsoft.com/","cl":"https://chile.smartscreen.microsoft.com/","us":"https://unitedstates.smartscreen.microsoft.com/","qa":"https://qatar.smartscreen.microsoft.com/","za":"https://southafrica.smartscreen.microsoft.com/","ffl4":"https://unitedstates1.ss.wd.microsoft.us/","it":"https://italy.smartscreen.microsoft.com/"},"sampleBuckets":{"error":1.0,"uriLookup":0.01,"userAction":1.0,"topTrafficHit":0.00007}} \ No newline at end of file diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/topTraffic b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/topTraffic new file mode 100644 index 00000000..b19c2f42 --- /dev/null +++ b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/topTraffic @@ -0,0 +1 @@ +topTraffic_170540185939602997400506234197983529371 \ No newline at end of file diff --git a/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/topTraffic_170540185939602997400506234197983529371 b/tests/test_data/DFIRArtifactMuseum/onedrive/24.175.0830.0001/EBWebView/SmartScreen/RemoteData/topTraffic_170540185939602997400506234197983529371 new file mode 100644 index 0000000000000000000000000000000000000000..9ba0f3bacbb4ed4e2e294e343d20952fd3f2edd9 GIT binary patch literal 575056 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
`KPPGH6PARGFk8^( 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�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�&Mx=~Y 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�L{XgfPKj9}VbZx6W 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

&UdGrHm+` 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

}x5EllVER>r7Ny4drx1>|VaO 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

&#veuHIrmH4}Y!-@Y zqw`CbhLj$tO*y|xAO7SAqgFr=GtK(zS85m+G)tyfe zZM`nP{D&tw5qu+sR!Dhd{aVe-s5P?k5PZ|5i}^3UUZRN379ZDL1Pq;#oB|rR5_R5D zl4M#kfMM{3I5>U8idUc6ZsuEd(9=}IwkgrIe8CPzBVSrDnBFOpkr(C%G(Q7lO!znRRFdBxwVC(2Ma+SS4TJK( zR^*oc&;6C|lYWDczT9{N(w{YU^57Pa&<#%)3!!qIAWQ%`U4{KUU0W@P5w>m z<^R40BS07p0XR?7GtE(SrkezqfeCO_aF>_*^s%UX!Pl)|FmaZysLVCY@1ZlIx6=}s!-`R`6OrXwm zXj&xqtaDMyp<)ZnTu}?D`%8D}Jh;8yX3q!a^p|3R!enB6mAj*b4c0tAzz$|#-W=mNFdK8y06%k64_rvIuFd@( zNm`@T2b*Ux_v@(L${4W^sZ%Z6!RGHTqHd1_3uGLJ^ru+Gz!pg}qkSs6L^rc>j?R-T zuyv}1&z)2XZ&uLOp!iog*p?QAOIBA(8AT^9fRgS2JGiWj4<)ii(~O-N6jnIF4qZD= zyJu=zooK_H|9@e@4r`V<3j0TK-%jsQ?J^i($1CA z^Y7yWcF%hn>m$$&?7?x(6~zOs>DOa9orT{aEN}|{2?n3Y$#2gxH5@+15pd?O%`{TQ zVUlOW+uC(g51jq+Kq8MmW&g`pFQx)+U+~*Vbiq6CSGwg!-q9@b55W1c+D<=G>rQro zZ?PF|f5G{0Ei>E06=rC5A*kSbMR0z{(E0U6h?KTKpQDQC0k|Md#qft>7MVb)nG)kx z3of*!u>tJ`yIlmUN9+L>;6i`?@lp-wpylo-F#hr}xR`y%^NTIaesL&Vb^{Oq*KJ~t zV>f#-%L!uGC*r?=>qx82>_VdEHb>&0=G^5K8ZVIpZ2AdsTWuh9Jv*kS z293!g<+l;I^OuqRqIiDYXsgSJonIW>>tCh+GvwSRYuZP3B)tvplcrr`1!X8$SshYj zFzbT*4yD)Ar%@LQ{%ogTtSG<(y+^nHoe#AtdTs(tC_})*0K)e#C7)oF@6h&>;_lmq`7ybph?W1wy4 zv+}zavjF^C1J{?Ygy}7c)z4hfqrjW0oNf<_f@8$G@;|MbRPa{mTf>vz>yj?8lGo3(DSm> zKcyBth_!>Lcg`4*eKi*r=mQ@mHQFE=5yFY{wul$En{*COU}lKsd+yYGhDSC+vQwJn zjVTaqyw6FHu<~e|(zWnOgb2h4t=8C+jj4VL1xpBMF(9U2n}2DD=bp-avEPcVxqz5y zs~*QY==G{hj^dThA3`jWC4>}}#lbY+T=phiGa=UM<~YveH6vVF44a~=1Bfl#HKKmm z1pRGBtTLKK^#7l(r!)j1p;&lKQ;%Mi&qEwK)x?r>8n9=netFKx6Ns}fc$fGTk+GSw zLH%758{*wRJQ=r>Q|SEAAi^(K1Mv@7`g_*{M3Ib-&CxHhA^uSfil@`e(xxu;g{Pwi zkRX9O5t-TF-)-LhJwfbzkf6KTMPEa+N=ikT@WtyONW{!JRCPZo#dxugpNQHGl4|G1 zz`E=&??*fy`zoOYNiEP_{NX!17XI-{SN~ZMByIBj{An=tCGGoe2dszHkn97SZ7#}% zxYNt5k>s~jki2=kf3T+}7u%w7;FKT>B%i>jg4ncpF zTtr&)gIv-mg>i4C8A}3EHEn2V{@Kq_>-UOm>9P${3$U`)(VZ_l#`@=g8(j=(NO``d z6HB;=^&OH7_zC-j8q+FY3LXX%mUe${j*FMXS<0R9hBF$NKVj%&Cy>zg*xWb)~oZDLzX^ zYawL7Ea$S|_&{jp*U?RcS|4O!8}AbPuus(`hUkz;S`0Eig zUUv&?JG@gx({3eb9)irq1Bay7%0A(7`O@cQeTFO(&~s2^<_DEsRy=KwFd>`1xKD)D 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≫ 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⋙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