{ "version": 3, "sources": ["../../../../../../../../source/febe/ui/src/scripts/ui.analog.ts"], "sourcesContent": ["import { Hatch, HatchMap, SafeString } from \"./classes/Hatch\";\nimport Loader from \"./components/Loader\";\nimport Tooltip from \"./components/Tooltip\";\n\nimport no_luggage from \"../../static/svg/icons/no_luggage.svg\";\nimport warning from \"../../static/svg/icons/warning.svg\";\nimport close from \"../../static/svg/icons/close.svg\";\nimport add from \"../../static/svg/icons/add.svg\";\nimport remove from \"../../static/svg/icons/remove.svg\";\nimport firstPage from \"../../static/svg/icons/first_page.svg\";\nimport chevronLeft from \"../../static/svg/icons/chevron_left.svg\";\nimport chevronRight from \"../../static/svg/icons/chevron_right.svg\";\nimport lastPage from \"../../static/svg/icons/last_page.svg\";\n\nconst LOG: HTMLElement = document.querySelector(\"#log\");\nlet EVENTS;\nlet HREF = new URL(window.location.href);\nlet LIMIT = parseInt(HREF.searchParams.get(\"limit\")) || 100;\nlet view = localStorage.getItem(\"analog-view-preference\") ? localStorage.getItem(\"analog-view-preference\") : \"rows\";\n\nlet LOADER: Loader;\n\nlet offset = parseInt(HREF.searchParams.get(\"offset\")) || 0;\n\ninterface Entry {\n n: string;\n d: any;\n}\n\ninterface Counter {\n label: string;\n counters: any;\n}\n\ninterface Filter {\n key: string;\n q: string;\n value: string;\n event: string;\n}\n\nlet reMap = {\n \"analog.header\": \"Misc\",\n\n \"net.flow.end\": \"Network\",\n \"net.flow.tls\": \"Network\",\n \"net.dns.req\": \"Network\",\n \"net.dns.resp\": \"Network\",\n \"net.http.req\": \"Network\",\n \"net.http.resp\": \"Network\",\n \"net.ftp.cred\": \"Network\",\n \"net.smtp.cred\": \"Network\",\n \"net.flow.proc\": \"Network\",\n \"net.flow.start\": \"Network\",\n\n \"windows.proc.create\": \"Process\",\n \"windows.proc.terminate\": \"Process\",\n \"windows.reg.read\": \"Registry\",\n \"windows.reg.create\": \"Registry\",\n \"windows.reg.write\": \"Registry\",\n \"windows.reg.delete\": \"Registry\",\n \"windows.mutant\": \"Mutex\",\n \"windows.event\": \"Mutex\",\n \"windows.file.create\": \"Files\",\n \"windows.file.delete\": \"Files\",\n \"windows.file.rename\": \"Files\",\n \"windows.file.write\": \"Files\",\n \"windows.file.read\": \"Files\",\n\n \"linux.proc.create\": \"Process\",\n \"linux.proc.terminate\": \"Process\",\n \"linux.file.create\": \"Files\",\n \"linux.file.read\": \"Files\",\n \"linux.file.write\": \"Files\",\n \"linux.file.delete\": \"Files\",\n \"linux.file.rename\": \"Files\",\n\n \"android.file.create\": \"Files\",\n \"android.file.read\": \"Files\",\n \"android.file.write\": \"Files\",\n \"android.file.delete\": \"Files\",\n \"android.file.rename\": \"Files\",\n \"android.proc.terminate\": \"Process\",\n \"android.proc.create\": \"Process\",\n \"android.preference.get\": \"Shared Preferences\",\n \"android.preference.put\": \"Shared Preferences\",\n \"android.resolver.query\": \"Content URI\",\n \"android.resolver.insert\": \"Content URI\",\n \"android.resolver.delete\": \"Content URI\",\n \"android.resolver.observe\": \"Content URI\",\n \"android.service\": \"System Service\",\n\n \"macos.file.create\": \"Files\",\n \"macos.file.read\": \"Files\",\n \"macos.file.write\": \"Files\",\n \"macos.file.delete\": \"Files\",\n \"macos.file.rename\": \"Files\",\n\n \"proc.attack\": \"Attack\",\n};\n\nlet nameMap = {\n \"analog.header\": \"Analog Header\",\n\n \"net.dns.req\": \"DNS Request\",\n \"net.dns.resp\": \"DNS Response\",\n \"net.http.req\": \"HTTP Request\",\n \"net.http.resp\": \"HTTP Response\",\n \"net.ftp.cred\": \"FTP Credentials\",\n \"net.smtp.cred\": \"SMTP Credentials\",\n \"net.flow.proc\": \"Flow Process\",\n \"net.flow.start\": \"Flow Start\",\n \"net.flow.end\": \"Flow End\",\n \"net.flow.tls\": \"Flow TLS\",\n\n \"windows.proc.create\": \"Process Create\",\n \"windows.proc.terminate\": \"Process Terminate\",\n \"windows.reg.read\": \"Registry Read\",\n \"windows.reg.create\": \"Registry Create\",\n \"windows.reg.write\": \"Registry Write\",\n \"windows.reg.delete\": \"Registry Delete\",\n \"windows.mutant\": \"Mutant\",\n \"windows.event\": \"Event\",\n \"windows.file.create\": \"File Create\",\n \"windows.file.delete\": \"File Delete\",\n \"windows.file.rename\": \"File Rename\",\n \"windows.file.write\": \"File Write\",\n \"windows.file.read\": \"File Read\",\n\n \"linux.proc.create\": \"Process Create\",\n \"linux.proc.terminate\": \"Process Terminate\",\n \"linux.file.create\": \"File Create\",\n \"linux.file.read\": \"File Read\",\n \"linux.file.write\": \"File Write\",\n \"linux.file.delete\": \"File Delete\",\n \"linux.file.rename\": \"File Rename\",\n\n \"android.file.create\": \"File Create\",\n \"android.file.read\": \"File Read\",\n \"android.file.write\": \"File Write\",\n \"android.file.delete\": \"File Delete\",\n \"android.file.rename\": \"File Rename\",\n \"android.proc.terminate\": \"Process Terminate\",\n \"android.proc.create\": \"Process Create\",\n \"android.preference.get\": \"Shared Preferences Get\",\n \"android.preference.put\": \"Shared Preferences Set\",\n \"android.resolver.query\": \"Content URI Query\",\n \"android.resolver.insert\": \"Content URI Insert\",\n \"android.resolver.delete\": \"Content URI Delete\",\n \"android.resolver.observe\": \"Content URI Observe\",\n \"android.service\": \"System Service\",\n\n \"macos.file.create\": \"File Create\",\n \"macos.file.read\": \"File Read\",\n \"macos.file.write\": \"File Write\",\n \"macos.file.delete\": \"File Delete\",\n \"macos.file.rename\": \"File Rename\",\n\n \"proc.attack\": \"Attack\",\n};\n\nlet labelMap = {\n op: \"operation\",\n remote_addr: \"remote address\",\n proc: \"process\",\n remote_port: \"remote port\",\n main_event: \"category\",\n q: \"Search Query\",\n};\n\nlet topKeys = {\n Misc: [],\n Process: [\"kind\", \"image\", \"status\", \"command\"],\n Registry: [\"op\", \"status\"],\n Files: [\"op\", \"status\"],\n Mutex: [\"op\", \"status\"],\n Network: [\"remote_addr\", \"proto\", \"proc\", \"remote_port\"],\n \"Shared Preferences\": [\"key\"],\n \"Content URI\": [\"uri\"],\n \"System Service\": [\"name\", \"command\"],\n};\n\nlet initialize = async () => {\n if (!EVENTS) {\n EVENTS = await fetchData();\n }\n if (!EVENTS?.length) return;\n offset = parseInt(HREF.searchParams.get(\"offset\")) || 0;\n LIMIT = parseInt(HREF.searchParams.get(\"limit\")) || 100;\n let filters = searchParamsToFilters(HREF.searchParams);\n let filteredEvents = [];\n if (filters.q && filters.q.length) {\n LOADER = new Loader().init(LOG, true, \"Querying Events List\");\n let sort = await filterEvents(filters, EVENTS);\n filteredEvents = await searchEvents(filters.q, sort);\n } else if (Object.entries(filters).length) {\n LOADER = new Loader().init(LOG, true, \"Fetching Events List\");\n filteredEvents = await filterEvents(filters, EVENTS);\n } else {\n LOADER = new Loader().init(LOG, true, \"Fetching Events Overview\");\n filteredEvents = EVENTS;\n }\n await renderEventList(filteredEvents, filters);\n await renderFilters(filteredEvents, filters);\n addRedirectClickHandlers();\n};\n\nlet fetchData = async () => {\n let url = `/samples/${globalThis.page_data.sample.id}/${\n globalThis.page_data.task_id ? globalThis.page_data.task_id : globalThis.page_data.task.id\n }/analog.json`;\n let fetched = await fetch(url);\n let data = await fetched.text();\n if (!fetched.ok) {\n toggleFilters();\n showError();\n return [];\n }\n let raw = data.split(/\\n/);\n return raw.flatMap((entry) => {\n if (entry.length) {\n return JSON.parse(entry);\n } else {\n return [];\n }\n });\n};\n\nlet filterEvents = async (filters, data: Array) => {\n let formatted = [];\n let category = HREF.searchParams.get(\"main_event\");\n data.forEach(async (ev: Entry) => {\n let evCat = reMap[ev.n];\n let isMatch = true;\n\n if (category && evCat !== category) return;\n\n for (const [key, value] of Object.entries(filters)) {\n if (key == \"main_event\") continue;\n if (key == \"q\") continue;\n if (ev.d[key] === undefined) {\n isMatch = false;\n }\n if (isMatch && ev.d[key].toString() !== value.toString()) {\n isMatch = false;\n }\n }\n\n if (isMatch) {\n formatted.push(ev);\n }\n });\n return formatted;\n};\n\nlet searchEvents = async (query: string, data: Array) => {\n let list = [];\n\n data.forEach((entry) => {\n let blob = JSON.stringify(entry).toLowerCase();\n if (blob.includes(query.toLowerCase())) {\n list.push(entry);\n }\n });\n\n return list;\n};\n\nlet renderEventList = async (data: Array, filters) => {\n if (!data || !data.length) {\n showEmpty();\n return;\n }\n let slice = data.slice(offset * LIMIT, offset * LIMIT + LIMIT);\n\n if (!slice || !slice.length) {\n showEmpty();\n return;\n }\n let list = document.createElement(\"ul\");\n LOG.innerHTML = \"\";\n\n list.classList.add(\"list\", \"scrollbox\", \"flex\");\n list.innerHTML = HatchMap(slice, (ev) => {\n if (view === \"grid\") {\n return renderGrid(ev, filters);\n } else if (view === \"rows\") {\n return renderRow(ev, filters);\n }\n }).toString();\n LOG.appendChild(list);\n\n if (data.length > LIMIT) {\n addPagination(data.length, filters);\n }\n LOADER.hide();\n};\n\nlet renderRow = (ev: Entry, filters) => {\n return Hatch`\n
  • \n
    \n ${nameMap[ev.n] || ev.n}\n
    \n ${HatchMap(Object.entries(ev.d), (pair) => {\n let displayValue = pair[1];\n if (pair[0] === \"status\") {\n displayValue = makeItHex(pair[1]);\n }\n return Hatch`\n
    \n
    ${pair[0]}
    \n
    ${typeof pair[1] !== \"object\" ? displayValue : renderSpecial(pair)}
    \n ${\n typeof pair[1] !== \"object\"\n ? Hatch`\n
    \n ${new SafeString(filters[pair[0]] ? remove : add)}\n
    \n
    `\n : \"\"\n }\n\n
    `;\n })}\n
    \n
    \n
  • `;\n};\n\nlet renderGrid = (ev: Entry, filters) => {\n return Hatch`\n
  • \n
    \n ${nameMap[ev.n] || ev.n}\n
    \n ${HatchMap(Object.entries(ev.d), (pair) => {\n let displayValue = pair[1];\n if (pair[0] === \"status\") {\n displayValue = makeItHex(pair[1]);\n }\n let event = HREF.searchParams.get(\"main_event\");\n return Hatch`\n ${pair[0]}: \n ${typeof pair[1] !== \"object\" ? displayValue : renderSpecial(pair)}\n\n ${\n typeof pair[1] !== \"object\"\n ? Hatch`\n
    \n ${new SafeString(filters[pair[0]] ? remove : add)}\n
    \n
    `\n : \"\"\n }`;\n })}\n
    \n
    \n \n
  • `;\n};\n\nlet isStringsArray = (arr) => arr.every((i) => typeof i === \"string\");\n\nlet renderSpecial = (special) => {\n if (!special) {\n return \"NA\";\n }\n let value = special[1];\n if (isStringsArray(value)) {\n return value.join(\" \");\n } else {\n return HatchMap(Object.entries(value), (item) => {\n return Hatch`${HatchMap(Object.entries(item[1]), (item) => {\n return Hatch`${item[0]}: ${item[1]} `;\n })}
    `;\n });\n }\n};\n\nlet addPagination = (total: number, filters) => {\n let amount = Math.ceil(total / LIMIT);\n let el = document.createElement(\"div\");\n el.classList.add(\"pagination\");\n el.innerHTML = `\n ${LIMIT * offset} - ${\n LIMIT * offset + LIMIT < total ? LIMIT * offset + LIMIT : total\n } of ${total} Records\n
    \n ${offset + 1} of ${amount} pages\n
    ${firstPage}
    \n 0 ? offset - 1 : 0\n }\" data-redirect aria-label=\"Previous Page\">
    ${chevronLeft}
    \n
    ${chevronRight}
    \n
    ${lastPage}
    \n
    \n `;\n LOG.appendChild(el);\n};\n\nlet showEmpty = () => {\n LOG.innerHTML = Hatch`\n
    \n
    \n
    \n
    \n ${new SafeString(no_luggage)}\n
    \n
    \n

    No Results

    \n

    Please try adjusting the search parameters.

    \n
    \n
    `.toString();\n};\n\nlet showError = () => {\n LOG.innerHTML = Hatch`\n
    \n
    \n
    \n
    \n ${new SafeString(warning)}\n
    \n
    \n

    Failed to fetch data

    \n

    Please contact us if the problem persists with future analysis.

    \n
    \n
    `.toString();\n};\n\nlet formatOverview = async (data: Array) => {\n let keySort = {};\n\n data.forEach(async (ev: Entry) => {\n if (!keySort[reMap[ev.n]]) {\n keySort[reMap[ev.n]] = {\n count: 0,\n counts: [],\n events: [],\n };\n }\n\n keySort[reMap[ev.n]].count++;\n keySort[reMap[ev.n]].events.push(ev.d);\n\n if (!topKeys[reMap[ev.n]]) {\n return;\n }\n topKeys[reMap[ev.n]].forEach(async (key) => {\n let cat = keySort[reMap[ev.n]].counts.find((event: Counter) => {\n if (event.label === key) {\n return event;\n } else {\n return false;\n }\n });\n if (!cat) {\n keySort[reMap[ev.n]].counts.push({\n label: key,\n counters: {},\n });\n cat = keySort[reMap[ev.n]].counts.find((event: Counter) => {\n if (event.label === key) {\n return event;\n }\n });\n }\n\n if (ev.d[key] !== undefined) {\n if (!cat.counters[ev.d[key]]) {\n cat.counters[ev.d[key]] = 0;\n }\n cat.counters[ev.d[key]]++;\n }\n });\n });\n return keySort;\n};\n\nlet addRedirectClickHandlers = () => {\n document.querySelectorAll(\"[data-redirect]\").forEach((a: HTMLAnchorElement) => {\n a.addEventListener(\"click\", async (e) => {\n e.preventDefault();\n HREF = new URL(a.href);\n history.pushState(history.state, \"hello\", HREF.href);\n initialize();\n });\n });\n};\n\nlet searchEl = document.querySelector(\"form#analog-search\");\nsearchEl.addEventListener(\"submit\", (ev) => {\n let val = searchEl.querySelector(\"input\").value;\n HREF.searchParams.set(\"q\", val);\n HREF.searchParams.delete(\"offset\");\n offset = 0;\n history.pushState(history.state, \"hello\", HREF);\n initialize();\n ev.preventDefault();\n});\n\nlet renderFilters = async (data: Array, filters) => {\n let selectionCounts = await formatOverview(data);\n let allCounts = await formatOverview(EVENTS);\n let container = document.querySelector(\"#properties-filters\");\n let excludedFilters = [\"main_event\"];\n\n document.querySelector(\"#event_types\").innerHTML = \"\";\n container.innerHTML = \"\";\n\n addEventFilters(filters, allCounts, selectionCounts);\n\n if (filters.main_event) {\n excludedFilters = await addMappedFilters(excludedFilters, selectionCounts, filters);\n } else {\n document.querySelector(\"#properties-title\").classList.add(\"hidden\");\n }\n addUnmappedFilters(filters, excludedFilters);\n};\n\nlet getLinkie = (filters: { [k: string]: string }, key: string, value: string) => {\n let isEnabled = filters[key] ? true : false;\n let linkie = `analog?${encodeFilters(filters, key)}${\n value && !isEnabled ? `&${key}=${encodeURIComponent(value)}` : \"\"\n }`;\n return linkie;\n};\n\nlet encodeFilters = (filters: { [k: string]: string }, exclude: string) => {\n const searchParams = new URLSearchParams();\n\n for (const [key, v] of Object.entries(filters)) {\n if (key !== exclude) {\n searchParams.append(key, v);\n }\n }\n return searchParams.toString();\n};\n\nlet addEventFilters = (filters, allCounts, selectionCounts) => {\n let hasEvent = filters.main_event ? true : false;\n clearTooltips();\n for (let key of Object.keys(allCounts)) {\n document.querySelector(\"#event_types\").innerHTML += Hatch`${key}`;\n }\n\n for (let key of Object.keys(allCounts)) {\n new Tooltip({\n target: document.querySelector(`[data-event-filter=\"${key}\"]`),\n text: allCounts[key].count + ` Record${allCounts[key].count !== 1 ? \"s\" : \"\"}`,\n });\n }\n};\n\nlet clearTooltips = () => {\n document.querySelectorAll(\".tooltip\").forEach((element) => {\n element.remove();\n });\n};\n\nlet addUnmappedFilters = (filters, excludedFilters) => {\n let container = document.querySelector(\"#properties-filters\");\n Object.keys(filters).forEach((filter) => {\n if (!excludedFilters?.includes(filter)) {\n container.innerHTML += Hatch`\n \n `;\n }\n });\n};\n\nlet addMappedFilters = (excludedFilters, selectionCounts, filters) => {\n let container = document.querySelector(\"#properties-filters\");\n\n for (const [key, value] of Object.entries(selectionCounts)) {\n if (!value.counts?.length) {\n document.querySelector(\"#properties-title\").classList.add(\"hidden\");\n } else {\n document.querySelector(\"#properties-title\").classList.remove(\"hidden\");\n }\n value.counts.forEach((count) => {\n if (Object.entries(count.counters).length) {\n let active = false;\n if (!HREF.searchParams.has(count.label)) {\n active = true;\n }\n excludedFilters.push(count.label);\n\n container.innerHTML += Hatch`\n
    \n

    ${labelMap[count.label] ? labelMap[count.label] : count.label}

    \n
    \n ${HatchMap(Object.entries(count.counters), (item) => {\n return Hatch`\n

    ${count.label === \"status\" ? makeItHex(item[0]) : item[0]}

    \n ${active ? item[1] : Hatch`
    ${new SafeString(close)}
    `}
    \n
    `;\n })}\n
    \n
    \n `;\n }\n });\n return excludedFilters;\n }\n return excludedFilters;\n};\n\nlet toggleFilters = () => {\n let toggleEl = document.querySelector(\"#toggle_filters\");\n document.querySelector(\"#filters\").classList.toggle(\"hidden\");\n if (toggleEl.classList.contains(\"primary\")) {\n toggleEl.classList.remove(\"primary\");\n toggleEl.classList.add(\"secondary\");\n } else {\n toggleEl.classList.add(\"primary\");\n toggleEl.classList.remove(\"secondary\");\n }\n};\n\nlet makeItHex = (input: number | string) => {\n if (typeof input === \"string\") {\n input = parseInt(input);\n }\n return \"0x\" + input.toString(16).padStart(8, \"0\");\n};\n\nlet searchParamsToFilters = (searchParams: URLSearchParams): Record => {\n const paramsObject: Record = {};\n const excluded = [\"offset\", \"limit\"];\n\n searchParams.forEach((value, key) => {\n if (excluded.includes(key)) return;\n paramsObject[key] = value;\n });\n\n return paramsObject;\n};\n\nwindow.addEventListener(\"popstate\", (e) => {\n HREF = new URL(window.location.href);\n initialize();\n});\n\ndocument.querySelectorAll(\"[data-view]\").forEach((el) => {\n if (localStorage.getItem(\"analog-view-preference\") === el.getAttribute(\"data-view\")) {\n el.classList.add(\"primary\");\n el.classList.remove(\"secondary\");\n }\n el.addEventListener(\"click\", () => {\n document.querySelectorAll(\"[data-view]\").forEach((el) => {\n el.classList.add(\"secondary\");\n el.classList.remove(\"primary\");\n });\n\n el.classList.add(\"primary\");\n el.classList.remove(\"secondary\");\n\n view = el.getAttribute(\"data-view\");\n localStorage.setItem(\"analog-view-preference\", view);\n HREF = new URL(window.location.href);\n initialize();\n });\n});\n\ndocument.querySelector(\"#toggle_filters\")?.addEventListener(\"click\", toggleFilters);\n\ndocument.querySelector(`[data-view=\"${view}\"]`)?.classList.add(\"primary\");\ndocument.querySelector(`[data-view=\"${view}\"]`)?.classList.remove(\"secondary\");\n\ninitialize();\n"], "mappings": "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", "names": ["LOG", "EVENTS", "HREF", "LIMIT", "view", "LOADER", "offset", "reMap", "nameMap", "labelMap", "topKeys", "initialize", "fetchData", "filters", "searchParamsToFilters", "filteredEvents", "Loader", "sort", "filterEvents", "searchEvents", "renderEventList", "renderFilters", "addRedirectClickHandlers", "url", "fetched", "data", "entry", "toggleFilters", "showError", "formatted", "category", "ev", "evCat", "isMatch", "key", "value", "query", "list", "showEmpty", "slice", "HatchMap", "renderGrid", "renderRow", "addPagination", "Hatch", "pair", "displayValue", "makeItHex", "renderSpecial", "getLinkie", "SafeString", "remove_default", "add_default", "event", "isStringsArray", "arr", "i", "special", "item", "total", "amount", "el", "first_page_default", "chevron_left_default", "chevron_right_default", "last_page_default", "no_luggage_default", "warning_default", "formatOverview", "keySort", "cat", "a", "e", "searchEl", "val", "selectionCounts", "allCounts", "container", "excludedFilters", "addEventFilters", "addMappedFilters", "addUnmappedFilters", "isEnabled", "encodeFilters", "exclude", "searchParams", "v", "hasEvent", "clearTooltips", "Tooltip", "element", "filter", "close_default", "_a", "count", "active", "toggleEl", "input", "paramsObject", "excluded"] }