The following issues were found

mvt/ios/modules/backup/configuration_profiles.py
7 issues
Attempted relative import beyond top-level package
Error

Line: 10 Column: 1

              import plistlib
from base64 import b64encode

from ..base import IOSExtraction

CONF_PROFILES_DOMAIN = "SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles"

class ConfigurationProfiles(IOSExtraction):
    """This module extracts the full plist data from configuration profiles.

            

Reported by Pylint.

Unused import os
Error

Line: 6 Column: 1

              # Use of this software is governed by the MVT License 1.1 that can be found at
#   https://license.mvt.re/1.1/

import os
import plistlib
from base64 import b64encode

from ..base import IOSExtraction


            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 18 Column: 5

                  """This module extracts the full plist data from configuration profiles.
    """

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # Mobile Verification Toolkit (MVT)
# Copyright (c) 2021 The MVT Project 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 os
import plistlib
from base64 import b64encode


            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 14 Column: 1

              
CONF_PROFILES_DOMAIN = "SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles"

class ConfigurationProfiles(IOSExtraction):
    """This module extracts the full plist data from configuration profiles.
    """

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):

            

Reported by Pylint.

Too many arguments (7/5)
Error

Line: 18 Column: 5

                  """This module extracts the full plist data from configuration profiles.
    """

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 24 Column: 5

                                       output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)

    def run(self):
        for conf_file in self._get_backup_files_from_manifest(domain=CONF_PROFILES_DOMAIN):
            conf_file_path = self._get_backup_file_from_id(conf_file["file_id"])
            if not conf_file_path:
                continue


            

Reported by Pylint.

mvt/ios/modules/fs/webkit_indexeddb.py
6 issues
Attempted relative import beyond top-level package
Error

Line: 6 Column: 1

              # Use of this software is governed by the MVT License 1.1 that can be found at
#   https://license.mvt.re/1.1/

from .webkit_base import WebkitBase

WEBKIT_INDEXEDDB_ROOT_PATHS = [
    "private/var/mobile/Containers/Data/Application/*/Library/WebKit/WebsiteData/IndexedDB",
]


            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 18 Column: 5

              
    slug = "webkit_indexeddb"

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # Mobile Verification Toolkit (MVT)
# Copyright (c) 2021 The MVT Project Authors.
# Use of this software is governed by the MVT License 1.1 that can be found at
#   https://license.mvt.re/1.1/

from .webkit_base import WebkitBase

WEBKIT_INDEXEDDB_ROOT_PATHS = [
    "private/var/mobile/Containers/Data/Application/*/Library/WebKit/WebsiteData/IndexedDB",

            

Reported by Pylint.

Too many arguments (7/5)
Error

Line: 18 Column: 5

              
    slug = "webkit_indexeddb"

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 24 Column: 5

                                       output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)

    def serialize(self, record):
        return {
            "timestamp": record["isodate"],
            "module": self.__class__.__name__,
            "event": "webkit_indexeddb",
            "data": f"IndexedDB folder {record['folder']} containing file for URL {record['url']}",

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 32 Column: 5

                          "data": f"IndexedDB folder {record['folder']} containing file for URL {record['url']}",
        }

    def run(self):
        self._process_webkit_folder(WEBKIT_INDEXEDDB_ROOT_PATHS)
        self.log.info("Extracted a total of %d WebKit IndexedDB records",
                      len(self.results))

            

Reported by Pylint.

mvt/ios/modules/mixed/net_datausage.py
6 issues
Attempted relative import beyond top-level package
Error

Line: 6 Column: 1

              # Use of this software is governed by the MVT License 1.1 that can be found at
#   https://license.mvt.re/1.1/

from ..net_base import NetBase

DATAUSAGE_BACKUP_IDS = [
    "0d609c54856a9bb2d56729df1d68f2958a88426b",
]
DATAUSAGE_ROOT_PATHS = [

            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 19 Column: 5

                  """This class extracts data from DataUsage.sqlite and attempts to identify
    any suspicious processes if running on a full filesystem dump."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # Mobile Verification Toolkit (MVT)
# Copyright (c) 2021 The MVT Project Authors.
# Use of this software is governed by the MVT License 1.1 that can be found at
#   https://license.mvt.re/1.1/

from ..net_base import NetBase

DATAUSAGE_BACKUP_IDS = [
    "0d609c54856a9bb2d56729df1d68f2958a88426b",

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 15 Column: 1

                  "private/var/wireless/Library/Databases/DataUsage.sqlite",
]

class Datausage(NetBase):
    """This class extracts data from DataUsage.sqlite and attempts to identify
    any suspicious processes if running on a full filesystem dump."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):

            

Reported by Pylint.

Too many arguments (7/5)
Error

Line: 19 Column: 5

                  """This class extracts data from DataUsage.sqlite and attempts to identify
    any suspicious processes if running on a full filesystem dump."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 25 Column: 5

                                       output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)

    def run(self):
        self._find_ios_database(backup_ids=DATAUSAGE_BACKUP_IDS,
                                root_paths=DATAUSAGE_ROOT_PATHS)
        self.log.info("Found DataUsage database at path: %s", self.file_path)

        self._extract_net_data()

            

Reported by Pylint.

mvt/android/lookups/koodous.py
6 issues
Unable to import 'rich.console'
Error

Line: 9 Column: 1

              import logging

import requests
from rich.console import Console
from rich.progress import track
from rich.table import Table
from rich.text import Text

log = logging.getLogger(__name__)

            

Reported by Pylint.

Unable to import 'rich.progress'
Error

Line: 10 Column: 1

              
import requests
from rich.console import Console
from rich.progress import track
from rich.table import Table
from rich.text import Text

log = logging.getLogger(__name__)


            

Reported by Pylint.

Unable to import 'rich.table'
Error

Line: 11 Column: 1

              import requests
from rich.console import Console
from rich.progress import track
from rich.table import Table
from rich.text import Text

log = logging.getLogger(__name__)

def koodous_lookup(packages):

            

Reported by Pylint.

Unable to import 'rich.text'
Error

Line: 12 Column: 1

              from rich.console import Console
from rich.progress import track
from rich.table import Table
from rich.text import Text

log = logging.getLogger(__name__)

def koodous_lookup(packages):
    log.info("Looking up all extracted files on Koodous (www.koodous.com)")

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # Mobile Verification Toolkit (MVT)
# Copyright (c) 2021 The MVT Project 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 requests
from rich.console import Console

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 16 Column: 1

              
log = logging.getLogger(__name__)

def koodous_lookup(packages):
    log.info("Looking up all extracted files on Koodous (www.koodous.com)")
    log.info("This might take a while...")

    table = Table(title="Koodous Packages Detections")
    table.add_column("Package name")

            

Reported by Pylint.

mvt/ios/modules/mixed/contacts.py
6 issues
Attempted relative import beyond top-level package
Error

Line: 8 Column: 1

              
import sqlite3

from ..base import IOSExtraction

CONTACTS_BACKUP_IDS = [
    "31bb7ba8914766d4ba40d6dfb6113c8b614be442",
]
CONTACTS_ROOT_PATHS = [

            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 20 Column: 5

              class Contacts(IOSExtraction):
    """This module extracts all contact details from the phone's address book."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # Mobile Verification Toolkit (MVT)
# Copyright (c) 2021 The MVT Project 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 sqlite3

from ..base import IOSExtraction


            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 17 Column: 1

                  "private/var/mobile/Library/AddressBook/AddressBook.sqlitedb",
]

class Contacts(IOSExtraction):
    """This module extracts all contact details from the phone's address book."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,

            

Reported by Pylint.

Too many arguments (7/5)
Error

Line: 20 Column: 5

              class Contacts(IOSExtraction):
    """This module extracts all contact details from the phone's address book."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 26 Column: 5

                                       output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)

    def run(self):
        self._find_ios_database(backup_ids=CONTACTS_BACKUP_IDS, root_paths=CONTACTS_ROOT_PATHS)
        self.log.info("Found Contacts database at path: %s", self.file_path)

        conn = sqlite3.connect(self.file_path)
        cur = conn.cursor()

            

Reported by Pylint.

mvt/android/modules/backup/sms.py
5 issues
Method 'serialize' is abstract in class 'MVTModule' but is not overridden
Error

Line: 14 Column: 1

              from mvt.common.utils import check_for_links


class SMS(MVTModule):

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,

            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 16 Column: 5

              
class SMS(MVTModule):

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # Mobile Verification Toolkit (MVT)
# Copyright (c) 2021 The MVT Project 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 json
import os
import zlib


            

Reported by Pylint.

Missing class docstring
Error

Line: 14 Column: 1

              from mvt.common.utils import check_for_links


class SMS(MVTModule):

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,

            

Reported by Pylint.

Too many arguments (7/5)
Error

Line: 16 Column: 5

              
class SMS(MVTModule):

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 fast_mode=False, log=None, results=[]):
        super().__init__(file_path=file_path, base_folder=base_folder,
                         output_folder=output_folder, fast_mode=fast_mode,
                         log=log, results=results)


            

Reported by Pylint.

mvt/ios/modules/backup/__init__.py
5 issues
Unable to import '__init__.backup_info'
Error

Line: 6 Column: 1

              # Use of this software is governed by the MVT License 1.1 that can be found at
#   https://license.mvt.re/1.1/

from .backup_info import BackupInfo
from .configuration_profiles import ConfigurationProfiles
from .manifest import Manifest
from .profile_events import ProfileEvents

BACKUP_MODULES = [BackupInfo, ConfigurationProfiles, Manifest, ProfileEvents]

            

Reported by Pylint.

Unable to import '__init__.configuration_profiles'
Error

Line: 7 Column: 1

              #   https://license.mvt.re/1.1/

from .backup_info import BackupInfo
from .configuration_profiles import ConfigurationProfiles
from .manifest import Manifest
from .profile_events import ProfileEvents

BACKUP_MODULES = [BackupInfo, ConfigurationProfiles, Manifest, ProfileEvents]

            

Reported by Pylint.

Unable to import '__init__.manifest'
Error

Line: 8 Column: 1

              
from .backup_info import BackupInfo
from .configuration_profiles import ConfigurationProfiles
from .manifest import Manifest
from .profile_events import ProfileEvents

BACKUP_MODULES = [BackupInfo, ConfigurationProfiles, Manifest, ProfileEvents]

            

Reported by Pylint.

Unable to import '__init__.profile_events'
Error

Line: 9 Column: 1

              from .backup_info import BackupInfo
from .configuration_profiles import ConfigurationProfiles
from .manifest import Manifest
from .profile_events import ProfileEvents

BACKUP_MODULES = [BackupInfo, ConfigurationProfiles, Manifest, ProfileEvents]

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # Mobile Verification Toolkit (MVT)
# Copyright (c) 2021 The MVT Project Authors.
# Use of this software is governed by the MVT License 1.1 that can be found at
#   https://license.mvt.re/1.1/

from .backup_info import BackupInfo
from .configuration_profiles import ConfigurationProfiles
from .manifest import Manifest
from .profile_events import ProfileEvents

            

Reported by Pylint.

mvt/ios/modules/fs/webkit_base.py
5 issues
Attempted relative import beyond top-level package
Error

Line: 11 Column: 1

              
from mvt.common.utils import convert_timestamp_to_iso

from ..base import IOSExtraction


class WebkitBase(IOSExtraction):
    """This class is a base for other WebKit-related modules."""


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # Mobile Verification Toolkit (MVT)
# Copyright (c) 2021 The MVT Project 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 datetime
import os

from mvt.common.utils import convert_timestamp_to_iso

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 14 Column: 1

              from ..base import IOSExtraction


class WebkitBase(IOSExtraction):
    """This class is a base for other WebKit-related modules."""

    def check_indicators(self):
        if not self.indicators:
            return

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 17 Column: 5

              class WebkitBase(IOSExtraction):
    """This class is a base for other WebKit-related modules."""

    def check_indicators(self):
        if not self.indicators:
            return

        for item in self.results:
            if self.indicators.check_domain(item["url"]):

            

Reported by Pylint.

Line too long (122/100)
Error

Line: 40 Column: 1

                              self.results.append({
                    "folder": key,
                    "url": url,
                    "isodate": convert_timestamp_to_iso(datetime.datetime.utcfromtimestamp(os.stat(found_path).st_mtime)),
                })

            

Reported by Pylint.

mvt/common/options.py
4 issues
Redefining built-in 'help'
Error

Line: 17 Column: 9

              
    def __init__(self, *args, **kwargs):
        self.mutually_exclusive = set(kwargs.pop("mutually_exclusive", []))
        help = kwargs.get("help", "")
        if self.mutually_exclusive:
            ex_str = ", ".join(self.mutually_exclusive)
            kwargs["help"] = help + (
                " NOTE: This argument is mutually exclusive with "
                "arguments: [" + ex_str + "]."

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # Mobile Verification Toolkit (MVT)
# Copyright (c) 2021 The MVT Project Authors.
# Use of this software is governed by the MVT License 1.1 that can be found at
#   https://license.mvt.re/1.1/

# From: https://gist.github.com/stanchan/bce1c2d030c76fe9223b5ff6ad0f03db

from click import Option, UsageError


            

Reported by Pylint.

Consider using Python 3 style super() without arguments
Error

Line: 24 Column: 9

                              " NOTE: This argument is mutually exclusive with "
                "arguments: [" + ex_str + "]."
            )
        super(MutuallyExclusiveOption, self).__init__(*args, **kwargs)

    def handle_parse_result(self, ctx, opts, args):
        if self.mutually_exclusive.intersection(opts) and self.name in opts:
            raise UsageError(
                "Illegal usage: `{}` is mutually exclusive with "

            

Reported by Pylint.

Consider using Python 3 style super() without arguments
Error

Line: 36 Column: 16

                              )
            )

        return super(MutuallyExclusiveOption, self).handle_parse_result(
            ctx,
            opts,
            args
        )

            

Reported by Pylint.

setup.py
2 issues
Missing module docstring
Error

Line: 1 Column: 1

              # Mobile Verification Toolkit (MVT)
# Copyright (c) 2021 The MVT Project 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 os

from setuptools import find_packages, setup


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 34 Column: 1

                  "libusb1>=1.9.3",
)

def get_package_data(package):
    walk = [(dirpath.replace(package + os.sep, "", 1), filenames)
            for dirpath, dirnames, filenames in os.walk(package)
            if not os.path.exists(os.path.join(dirpath, "__init__.py"))]

    filepaths = []

            

Reported by Pylint.