Files
mvt/tests/android/test_artifact_dumpsys_dbinfo.py
besendorfandGitHub 2dfe3cbcb1 Fix module audit findings (#850)
* Fix module audit findings

* Always parse paired tombstones
2026-07-28 18:58:46 +02:00

62 lines
2.0 KiB
Python

# Mobile Verification Toolkit (MVT)
# Copyright (c) 2021-2023 The MVT Authors.
# Use of this software is governed by the MVT License 1.1 that can be found at
# https://license.mvt.re/1.1/
import logging
from mvt.android.artifacts.dumpsys_dbinfo import DumpsysDBInfoArtifact
from mvt.common.indicators import Indicators
from ..utils import get_artifact
class TestDumpsysDBinfoArtifact:
def test_parsing(self):
dbi = DumpsysDBInfoArtifact()
file = get_artifact("android_data/dumpsys_dbinfo.txt")
with open(file) as f:
data = f.read()
assert len(dbi.results) == 0
dbi.parse(data)
assert len(dbi.results) == 5
assert dbi.results[0]["action"] == "executeForCursorWindow"
assert dbi.results[0]["sql"] == "PRAGMA database_list;"
assert (
dbi.results[0]["path"] == "/data/user/0/com.wssyncmldm/databases/idmsdk.db"
)
def test_ioc_check(self, indicator_file):
dbi = DumpsysDBInfoArtifact()
file = get_artifact("android_data/dumpsys_dbinfo.txt")
with open(file) as f:
data = f.read()
dbi.parse(data)
ind = Indicators(log=logging.getLogger())
ind.parse_stix2(indicator_file)
ind.ioc_collections[0]["app_ids"].append("com.wssyncmldm")
dbi.indicators = ind
assert len(dbi.alertstore.alerts) == 0
dbi.check_indicators()
assert len(dbi.alertstore.alerts) == 5
def test_parsing_month_day_timestamp_without_pid(self):
dbi = DumpsysDBInfoArtifact()
dbi.parse(
"""
Connection pool for /data/user/0/com.example/databases/current.db:
Most recently executed operations:
0: [07-15 20:27:39.431] executeForCursorWindow took 1ms - succeeded, sql="SELECT 1"
"""
)
assert dbi.results == [
{
"isodate": "07-15 20:27:39.431",
"action": "executeForCursorWindow",
"sql": "SELECT 1",
"path": "/data/user/0/com.example/databases/current.db",
}
]