The following issues were found

mvt/android/modules/adb/processes.py
8 issues
Attempted relative import beyond top-level package
Error

Line: 8 Column: 1

              
import logging

from .base import AndroidExtraction

log = logging.getLogger(__name__)

class Processes(AndroidExtraction):
    """This module extracts details on running processes."""

            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 15 Column: 5

              class Processes(AndroidExtraction):
    """This module extracts details on running processes."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 serial=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.

Redefining name 'log' from outer scope (line 10)
Error

Line: 16 Column: 48

                  """This module extracts details on running processes."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 serial=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)

    def run(self):

            

Reported by Pylint.

Unused argument 'serial'
Error

Line: 16 Column: 18

                  """This module extracts details on running processes."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 serial=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)

    def run(self):

            

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

from .base import AndroidExtraction


            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 12 Column: 1

              
log = logging.getLogger(__name__)

class Processes(AndroidExtraction):
    """This module extracts details on running processes."""

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

            

Reported by Pylint.

Too many arguments (8/5)
Error

Line: 15 Column: 5

              class Processes(AndroidExtraction):
    """This module extracts details on running processes."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 serial=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: 21 Column: 5

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

    def run(self):
        self._adb_connect()

        output = self._adb_command("ps -e")

        for line in output.split("\n")[1:]:

            

Reported by Pylint.

mvt/android/modules/adb/dumpsys_procstats.py
8 issues
Attempted relative import beyond top-level package
Error

Line: 9 Column: 1

              import logging
import os

from .base import AndroidExtraction

log = logging.getLogger(__name__)

class DumpsysProcstats(AndroidExtraction):
    """This module extracts stats on memory consumption by processes."""

            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 16 Column: 5

              class DumpsysProcstats(AndroidExtraction):
    """This module extracts stats on memory consumption by processes."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 serial=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.

Unused argument 'serial'
Error

Line: 17 Column: 18

                  """This module extracts stats on memory consumption by processes."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 serial=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)

    def run(self):

            

Reported by Pylint.

Redefining name 'log' from outer scope (line 11)
Error

Line: 17 Column: 48

                  """This module extracts stats on memory consumption by processes."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 serial=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)

    def run(self):

            

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 os

from .base import AndroidExtraction

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 13 Column: 1

              
log = logging.getLogger(__name__)

class DumpsysProcstats(AndroidExtraction):
    """This module extracts stats on memory consumption by processes."""

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

            

Reported by Pylint.

Too many arguments (8/5)
Error

Line: 16 Column: 5

              class DumpsysProcstats(AndroidExtraction):
    """This module extracts stats on memory consumption by processes."""

    def __init__(self, file_path=None, base_folder=None, output_folder=None,
                 serial=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: 22 Column: 5

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

    def run(self):
        self._adb_connect()

        output = self._adb_command("dumpsys procstats")
        if self.output_folder:
            procstats_path = os.path.join(self.output_folder,

            

Reported by Pylint.

mvt/ios/modules/mixed/firefox_favicon.py
8 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

FIREFOX_HISTORY_BACKUP_IDS = [
    "2e57c396a35b0d1bcbc624725002d98bd61d142b",
]
FIREFOX_HISTORY_ROOT_PATHS = [

            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 23 Column: 5

              class FirefoxFavicon(IOSExtraction):
    """This module extracts all Firefox favicon"""

    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 datetime import datetime

from mvt.common.utils import convert_timestamp_to_iso

            

Reported by Pylint.

Too many arguments (7/5)
Error

Line: 23 Column: 5

              class FirefoxFavicon(IOSExtraction):
    """This module extracts all Firefox favicon"""

    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: 29 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": "firefox_history",
            "data": f"Firefox favicon {record['url']} when visiting {record['history_url']}",

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 37 Column: 5

                          "data": f"Firefox favicon {record['url']} when visiting {record['history_url']}",
        }

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

        for result in self.results:
            if (self.indicators.check_domain(result.get("url", "")) or 

            

Reported by Pylint.

Trailing whitespace
Error

Line: 42 Column: 71

                          return

        for result in self.results:
            if (self.indicators.check_domain(result.get("url", "")) or 
                self.indicators.check_domain(result.get("history_url", ""))):
                self.detected.append(result)

    def run(self):
        self._find_ios_database(backup_ids=FIREFOX_HISTORY_BACKUP_IDS,

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 46 Column: 5

                              self.indicators.check_domain(result.get("history_url", ""))):
                self.detected.append(result)

    def run(self):
        self._find_ios_database(backup_ids=FIREFOX_HISTORY_BACKUP_IDS,
                                root_paths=FIREFOX_HISTORY_ROOT_PATHS)
        self.log.info("Found Firefox favicon database at path: %s", self.file_path)

        conn = sqlite3.connect(self.file_path)

            

Reported by Pylint.

mvt/ios/modules/mixed/firefox_history.py
8 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

FIREFOX_HISTORY_BACKUP_IDS = [
    "2e57c396a35b0d1bcbc624725002d98bd61d142b",
]
FIREFOX_HISTORY_ROOT_PATHS = [

            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 24 Column: 5

                  """This module extracts all Firefox visits and tries to detect potential
    network injection attacks."""

    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 datetime import datetime

from mvt.common.utils import convert_timestamp_to_iso

            

Reported by Pylint.

Too many arguments (7/5)
Error

Line: 24 Column: 5

                  """This module extracts all Firefox visits and tries to detect potential
    network injection attacks."""

    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: 30 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": "firefox_history",
            "data": f"Firefox visit with ID {record['id']} to URL: {record['url']}",

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 38 Column: 5

                          "data": f"Firefox visit with ID {record['id']} to URL: {record['url']}",
        }

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

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

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 46 Column: 5

                          if self.indicators.check_domain(result["url"]):
                self.detected.append(result)

    def run(self):
        self._find_ios_database(backup_ids=FIREFOX_HISTORY_BACKUP_IDS, root_paths=FIREFOX_HISTORY_ROOT_PATHS)
        self.log.info("Found Firefox history database at path: %s", self.file_path)

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

            

Reported by Pylint.

Line too long (109/100)
Error

Line: 47 Column: 1

                              self.detected.append(result)

    def run(self):
        self._find_ios_database(backup_ids=FIREFOX_HISTORY_BACKUP_IDS, root_paths=FIREFOX_HISTORY_ROOT_PATHS)
        self.log.info("Found Firefox history database at path: %s", self.file_path)

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

            

Reported by Pylint.

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

Line: 11 Column: 1

              
from mvt.common.utils import convert_mactime_to_unix, convert_timestamp_to_iso

from ..base import IOSExtraction

IDSTATUSCACHE_BACKUP_IDS = [
    "6b97989189901ceaa4e5be9b7f05fb584120e27b",
]
IDSTATUSCACHE_ROOT_PATHS = [

            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 23 Column: 5

              class IDStatusCache(IOSExtraction):
    """Extracts Apple Authentication information from idstatuscache.plist"""

    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 collections
import plistlib

from mvt.common.utils import convert_mactime_to_unix, convert_timestamp_to_iso

            

Reported by Pylint.

Too many arguments (7/5)
Error

Line: 23 Column: 5

              class IDStatusCache(IOSExtraction):
    """Extracts Apple Authentication information from idstatuscache.plist"""

    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: 29 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": "lookup",
            "data": f"Lookup of {record['user']} within {record['package']} (Status {record['idstatus']})"

            

Reported by Pylint.

Line too long (106/100)
Error

Line: 34 Column: 1

                          "timestamp": record["isodate"],
            "module": self.__class__.__name__,
            "event": "lookup",
            "data": f"Lookup of {record['user']} within {record['package']} (Status {record['idstatus']})"
        }

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

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 37 Column: 5

                          "data": f"Lookup of {record['user']} within {record['package']} (Status {record['idstatus']})"
        }

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

        for result in self.results:
            if result.get("user", "").startswith("mailto:"):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 53 Column: 5

                                               result.get("user"))
                self.detected.append(result)

    def run(self):
        self._find_ios_database(backup_ids=IDSTATUSCACHE_BACKUP_IDS,
                                root_paths=IDSTATUSCACHE_ROOT_PATHS)
        self.log.info("Found IDStatusCache plist at path: %s", self.file_path)

        with open(self.file_path, "rb") as handle:

            

Reported by Pylint.

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

Line: 11 Column: 1

              
from mvt.common.module import DatabaseNotFoundError

from ..base import IOSExtraction


class BackupInfo(IOSExtraction):
    """This module extracts information about the device and the backup."""


            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 17 Column: 5

              class BackupInfo(IOSExtraction):
    """This module extracts information about the device and the backup."""

    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 mvt.common.module import DatabaseNotFoundError

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 14 Column: 1

              from ..base import IOSExtraction


class BackupInfo(IOSExtraction):
    """This module extracts information about the device and the backup."""

    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: 17 Column: 5

              class BackupInfo(IOSExtraction):
    """This module extracts information about the device and the backup."""

    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

              
        self.results = {}

    def run(self):
        info_path = os.path.join(self.base_folder, "Info.plist")
        if not os.path.exists(info_path):
            raise DatabaseNotFoundError("No Info.plist at backup path, unable to extract device information")

        with open(info_path, "rb") as handle:

            

Reported by Pylint.

Line too long (109/100)
Error

Line: 28 Column: 1

                  def run(self):
        info_path = os.path.join(self.base_folder, "Info.plist")
        if not os.path.exists(info_path):
            raise DatabaseNotFoundError("No Info.plist at backup path, unable to extract device information")

        with open(info_path, "rb") as handle:
            info = plistlib.load(handle)

        fields = ["Build Version", "Device Name", "Display Name", "GUID",

            

Reported by Pylint.

mvt/common/utils.py
7 issues
TODO: This is rather ugly. Happens sometimes with invalid timestamps.
Error

Line: 28 Column: 3

                  if from_2001:
        timestamp = timestamp + 978307200

    # TODO: This is rather ugly. Happens sometimes with invalid timestamps.
    try:
        return datetime.datetime.utcfromtimestamp(timestamp)
    except Exception:
        return None


            

Reported by Pylint.

Catching too general exception Exception
Error

Line: 31 Column: 12

                  # TODO: This is rather ugly. Happens sometimes with invalid timestamps.
    try:
        return datetime.datetime.utcfromtimestamp(timestamp)
    except Exception:
        return None


def convert_chrometime_to_unix(timestamp):
    """Converts Chrome timestamp to a Unix timestamp.

            

Reported by Pylint.

Catching too general exception Exception
Error

Line: 52 Column: 12

                  """
    try:
        return timestamp.strftime("%Y-%m-%d %H:%M:%S.%f")
    except Exception:
        return None

def check_for_links(text):
    """Checks if a given text contains HTTP links.
    :param text: Any provided text

            

Reported by Pylint.

Anomalous backslash in string: '\s'. String constant might be missing an r prefix.
Error

Line: 60 Column: 43

                  :param text: Any provided text
    :returns: Search results
    """
    return re.findall("(?P<url>https?://[^\s]+)", text, re.IGNORECASE)

def get_sha256_from_file_path(file_path):
    """Calculate the SHA256 hash of a file from a file path.
    :param file_path: Path to the file to hash
    :returns: The SHA256 hash string

            

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 hashlib
import re


            

Reported by Pylint.

Using type() instead of isinstance() for a typecheck.
Error

Line: 21 Column: 8

              
    # This is to fix formats in case of, for example, SMS messages database
    # timestamp format.
    if type(timestamp) == int and len(str(timestamp)) == 18:
        timestamp = int(str(timestamp)[:9])

    # MacTime counts from 2001-01-01.
    if from_2001:
        timestamp = timestamp + 978307200

            

Reported by Pylint.

Unnecessary "else" after "return"
Error

Line: 83 Column: 9

                  """
    new_obj = {}
    if not isinstance(obj, dict):
        if isinstance(obj, (tuple, list, set)):
            value = [keys_bytes_to_string(x) for x in obj]
            return value
        else:
            return obj


            

Reported by Pylint.

mvt/ios/modules/fs/webkit_localstorage.py
7 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_LOCALSTORAGE_ROOT_PATHS = [
    "private/var/mobile/Containers/Data/Application/*/Library/WebKit/WebsiteData/LocalStorage/",
]


            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 16 Column: 5

                  """This module looks extracts records from WebKit LocalStorage folders,
    and checks them against any provided list of suspicious domains."""

    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_LOCALSTORAGE_ROOT_PATHS = [
    "private/var/mobile/Containers/Data/Application/*/Library/WebKit/WebsiteData/LocalStorage/",

            

Reported by Pylint.

Too many arguments (7/5)
Error

Line: 16 Column: 5

                  """This module looks extracts records from WebKit LocalStorage folders,
    and checks them against any provided list of suspicious domains."""

    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: 22 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_local_storage",
            "data": f"WebKit Local Storage folder {record['folder']} containing file for URL {record['url']}",

            

Reported by Pylint.

Line too long (110/100)
Error

Line: 27 Column: 1

                          "timestamp": record["isodate"],
            "module": self.__class__.__name__,
            "event": "webkit_local_storage",
            "data": f"WebKit Local Storage folder {record['folder']} containing file for URL {record['url']}",
        }

    def run(self):
        self._process_webkit_folder(WEBKIT_LOCALSTORAGE_ROOT_PATHS)
        self.log.info("Extracted a total of %d records from WebKit Local Storages",

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 30 Column: 5

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

    def run(self):
        self._process_webkit_folder(WEBKIT_LOCALSTORAGE_ROOT_PATHS)
        self.log.info("Extracted a total of %d records from WebKit Local Storages",
                      len(self.results))

            

Reported by Pylint.

mvt/ios/modules/fs/webkit_safariviewservice.py
7 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_SAFARIVIEWSERVICE_ROOT_PATHS = [
    "private/var/mobile/Containers/Data/Application/*/SystemData/com.apple.SafariViewService/Library/WebKit/WebsiteData/",
]


            

Reported by Pylint.

Dangerous default value [] as argument
Error

Line: 16 Column: 5

                  """This module looks extracts records from WebKit LocalStorage folders,
    and checks them against any provided list of suspicious domains."""

    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_SAFARIVIEWSERVICE_ROOT_PATHS = [
    "private/var/mobile/Containers/Data/Application/*/SystemData/com.apple.SafariViewService/Library/WebKit/WebsiteData/",

            

Reported by Pylint.

Line too long (122/100)
Error

Line: 9 Column: 1

              from .webkit_base import WebkitBase

WEBKIT_SAFARIVIEWSERVICE_ROOT_PATHS = [
    "private/var/mobile/Containers/Data/Application/*/SystemData/com.apple.SafariViewService/Library/WebKit/WebsiteData/",
]

class WebkitSafariViewService(WebkitBase):
    """This module looks extracts records from WebKit LocalStorage folders,
    and checks them against any provided list of suspicious domains."""

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 12 Column: 1

                  "private/var/mobile/Containers/Data/Application/*/SystemData/com.apple.SafariViewService/Library/WebKit/WebsiteData/",
]

class WebkitSafariViewService(WebkitBase):
    """This module looks extracts records from WebKit LocalStorage folders,
    and checks them against any provided list of suspicious domains."""

    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: 16 Column: 5

                  """This module looks extracts records from WebKit LocalStorage folders,
    and checks them against any provided list of suspicious domains."""

    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: 22 Column: 5

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

    def run(self):
        self._process_webkit_folder(WEBKIT_SAFARIVIEWSERVICE_ROOT_PATHS)
        self.log.info("Extracted a total of %d records from WebKit SafariViewService WebsiteData",
                      len(self.results))

            

Reported by Pylint.

mvt/ios/versions.py
7 issues
Unused argument 'devices_list'
Error

Line: 227 Column: 41

                  {"build": "18G82", "version": "14.7.1"},
]

def get_device_desc_from_id(identifier, devices_list=IPHONE_MODELS):
    for model in IPHONE_MODELS:
        if identifier == model["identifier"]:
            return model["description"]

def find_version_by_build(build):

            

Reported by Pylint.

Dangerous default value IPHONE_MODELS (builtins.list) as argument
Error

Line: 227 Column: 1

                  {"build": "18G82", "version": "14.7.1"},
]

def get_device_desc_from_id(identifier, devices_list=IPHONE_MODELS):
    for model in IPHONE_MODELS:
        if identifier == model["identifier"]:
            return model["description"]

def find_version_by_build(build):

            

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/

IPHONE_MODELS = [
    {"description": "iPhone 4S", "identifier": "iPhone4,1"},
    {"description": "iPhone 5", "identifier": "iPhone5,1"},
    {"description": "iPhone 5", "identifier": "iPhone5,2"},

            

Reported by Pylint.

Either all return statements in a function should return an expression, or none of them should.
Error

Line: 227 Column: 1

                  {"build": "18G82", "version": "14.7.1"},
]

def get_device_desc_from_id(identifier, devices_list=IPHONE_MODELS):
    for model in IPHONE_MODELS:
        if identifier == model["identifier"]:
            return model["description"]

def find_version_by_build(build):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 227 Column: 1

                  {"build": "18G82", "version": "14.7.1"},
]

def get_device_desc_from_id(identifier, devices_list=IPHONE_MODELS):
    for model in IPHONE_MODELS:
        if identifier == model["identifier"]:
            return model["description"]

def find_version_by_build(build):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 232 Column: 1

                      if identifier == model["identifier"]:
            return model["description"]

def find_version_by_build(build):
    build = build.upper()
    for version in IPHONE_IOS_VERSIONS:
        if build == version["build"]:
            return version["version"]

            

Reported by Pylint.

Either all return statements in a function should return an expression, or none of them should.
Error

Line: 232 Column: 1

                      if identifier == model["identifier"]:
            return model["description"]

def find_version_by_build(build):
    build = build.upper()
    for version in IPHONE_IOS_VERSIONS:
        if build == version["build"]:
            return version["version"]

            

Reported by Pylint.