2023-03-01 21:43:08 +00:00
|
|
|
# Mobile Verification Toolkit (MVT)
|
2023-09-09 15:55:27 +00:00
|
|
|
# Copyright (c) 2021-2023 The MVT Authors.
|
2023-03-01 21:43:08 +00:00
|
|
|
# Use of this software is governed by the MVT License 1.1 that can be found at
|
|
|
|
# https://license.mvt.re/1.1/
|
2022-10-11 11:07:24 +00:00
|
|
|
|
|
|
|
import logging
|
2023-07-26 11:53:54 +00:00
|
|
|
from pathlib import Path
|
2022-10-11 11:07:24 +00:00
|
|
|
|
2023-02-14 16:51:55 +00:00
|
|
|
from mvt.android.modules.androidqf.dumpsys_packages import DumpsysPackages
|
2022-10-11 11:07:24 +00:00
|
|
|
from mvt.common.indicators import Indicators
|
|
|
|
from mvt.common.module import run_module
|
|
|
|
|
2023-07-26 11:53:54 +00:00
|
|
|
from ..utils import get_android_androidqf, list_files
|
2022-10-11 11:07:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
class TestDumpsysPackagesModule:
|
|
|
|
def test_parsing(self):
|
|
|
|
data_path = get_android_androidqf()
|
|
|
|
m = DumpsysPackages(target_path=data_path)
|
2023-07-26 11:53:54 +00:00
|
|
|
files = list_files(data_path)
|
|
|
|
parent_path = Path(data_path).absolute().parent.as_posix()
|
|
|
|
m.from_folder(parent_path, files)
|
2022-10-11 11:07:24 +00:00
|
|
|
run_module(m)
|
|
|
|
assert len(m.results) == 2
|
|
|
|
assert len(m.detected) == 0
|
|
|
|
assert len(m.timeline) == 6
|
2023-06-01 21:40:26 +00:00
|
|
|
assert (
|
|
|
|
m.results[0]["package_name"]
|
|
|
|
== "com.samsung.android.provider.filterprovider"
|
|
|
|
)
|
2022-10-11 11:07:24 +00:00
|
|
|
|
|
|
|
def test_detection_pkgname(self, indicator_file):
|
|
|
|
data_path = get_android_androidqf()
|
|
|
|
m = DumpsysPackages(target_path=data_path)
|
2023-07-26 11:53:54 +00:00
|
|
|
files = list_files(data_path)
|
|
|
|
parent_path = Path(data_path).absolute().parent.as_posix()
|
|
|
|
m.from_folder(parent_path, files)
|
2022-10-11 11:07:24 +00:00
|
|
|
ind = Indicators(log=logging.getLogger())
|
|
|
|
ind.parse_stix2(indicator_file)
|
|
|
|
ind.ioc_collections[0]["app_ids"].append("com.sec.android.app.DataCreate")
|
|
|
|
m.indicators = ind
|
|
|
|
run_module(m)
|
|
|
|
assert len(m.results) == 2
|
|
|
|
assert len(m.detected) == 1
|
|
|
|
assert len(m.timeline) == 6
|
|
|
|
assert m.detected[0]["package_name"] == "com.sec.android.app.DataCreate"
|