mirror of
https://github.com/mvt-project/mvt.git
synced 2026-02-12 16:42:45 +00:00
* Run bugreport and backup modules during check-androidqf Adding support to automatically run ADB backup and bugreport modules automatically when running the check-androidqf command. This is a first step to deduplicate the code for Android modules. * Deduplicate modules which are run by the sub-commands. * Raise the proper NoAndroidQFBackup exception when a back-up isn't found * add missing import * Fix imports and remove duplicate hashes param * Rename from_folder to from_dir in tests --------- Co-authored-by: besendorf <janik@besendorf.org>
57 lines
2.1 KiB
Python
57 lines
2.1 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
|
|
import zipfile
|
|
from pathlib import Path
|
|
|
|
from mvt.android.modules.androidqf.aqf_getprop import AQFGetProp
|
|
from mvt.common.indicators import Indicators
|
|
from mvt.common.module import run_module
|
|
|
|
from ..utils import get_android_androidqf, get_artifact, list_files
|
|
|
|
|
|
class TestAndroidqfGetpropAnalysis:
|
|
def test_androidqf_getprop(self):
|
|
data_path = get_android_androidqf()
|
|
m = AQFGetProp(target_path=data_path, log=logging)
|
|
files = list_files(data_path)
|
|
parent_path = Path(data_path).absolute().parent.as_posix()
|
|
m.from_dir(parent_path, files)
|
|
run_module(m)
|
|
assert len(m.results) == 10
|
|
assert m.results[0]["name"] == "dalvik.vm.appimageformat"
|
|
assert m.results[0]["value"] == "lz4"
|
|
assert len(m.timeline) == 0
|
|
assert len(m.detected) == 0
|
|
|
|
def test_getprop_parsing_zip(self):
|
|
fpath = get_artifact("androidqf.zip")
|
|
m = AQFGetProp(target_path=fpath, log=logging)
|
|
archive = zipfile.ZipFile(fpath)
|
|
m.from_zip(archive, archive.namelist())
|
|
run_module(m)
|
|
assert len(m.results) == 10
|
|
assert m.results[0]["name"] == "dalvik.vm.appimageformat"
|
|
assert m.results[0]["value"] == "lz4"
|
|
assert len(m.timeline) == 0
|
|
assert len(m.detected) == 0
|
|
|
|
def test_androidqf_getprop_detection(self, indicator_file):
|
|
data_path = get_android_androidqf()
|
|
m = AQFGetProp(target_path=data_path, log=logging)
|
|
files = list_files(data_path)
|
|
parent_path = Path(data_path).absolute().parent.as_posix()
|
|
m.from_dir(parent_path, files)
|
|
ind = Indicators(log=logging.getLogger())
|
|
ind.parse_stix2(indicator_file)
|
|
ind.ioc_collections[0]["android_property_names"].append("dalvik.vm.heapmaxfree")
|
|
m.indicators = ind
|
|
run_module(m)
|
|
assert len(m.results) == 10
|
|
assert len(m.detected) == 1
|
|
assert m.detected[0]["name"] == "dalvik.vm.heapmaxfree"
|