dod-cyber-crime-center / DC3-MWCP

DC3 Malware Configuration Parser (DC3-MWCP) is a framework for parsing configuration information from malware. The information extracted from malware includes items such as addresses, passwords, filenames, and mutex names.
Other
293 stars 59 forks source link

Bug: Installation Broken with SetupTools>=70.0.0 on Windows #46

Open notgriffin opened 3 months ago

notgriffin commented 3 months ago

MWCP doesn't work with setuptools>=70.0.0. I have verified that this still works with setuptools==69.5.1. This issue is tracked upstream at https://github.com/pypa/setuptools/issues/4399. If MWCP is updated to use a pyproject.toml for installation, then the setuptools version would be able to be specified and no longer cause opaque issues.

Traceback (most recent call last):
  File "\\?\C:\Users\analyst\AppData\Roaming\Python\Python310\Scripts\mwcp-script.py", line 33, in <module>
    sys.exit(load_entry_point('mwcp', 'console_scripts', 'mwcp')())
  File "\\?\C:\Users\analyst\AppData\Roaming\Python\Python310\Scripts\mwcp-script.py", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "C:\Python310\lib\importlib\metadata\__init__.py", line 171, in load
    module = import_module(match.group('module'))
  File "C:\Python310\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "c:\users\analyst\git\mwcp\mwcp\__init__.py", line 9, in <module>
    from mwcp.config import _config as config
  File "c:\users\analyst\git\mwcp\mwcp\config\__init__.py", line 6, in <module>
    import pkg_resources
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 3283, in <module>
    def _initialize_master_working_set():
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 3266, in _call_aside
    f(*args, **kwargs)
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 3295, in _initialize_master_working_set
    working_set = _declare_state('object', 'working_set', WorkingSet._build_master())
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 589, in _build_master
    ws.require(__requires__)
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 926, in require
    needed = self.resolve(parse_requirements(requirements))
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 787, in resolve
    dist = self._resolve_dist(
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 816, in _resolve_dist
    env = Environment(self.entries)
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 1014, in __init__
    self.scan(search_path)
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 1046, in scan
    for dist in find_distributions(item):
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 2091, in find_on_path
    yield from factory(fullpath)
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 2183, in resolve_egg_link
    return next(dist_groups, ())
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 2179, in <genexpr>
    resolved_paths = (
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 2167, in non_empty_lines
    for line in _read_utf8_with_fallback(path).splitlines():
NameError: name '_read_utf8_with_fallback' is not defined
Traceback (most recent call last):
  File "\\?\C:\Users\analyst\AppData\Roaming\Python\Python310\Scripts\kordesii-script.py", line 33, in <module>
    sys.exit(load_entry_point('kordesii', 'console_scripts', 'kordesii')())
  File "\\?\C:\Users\analyst\AppData\Roaming\Python\Python310\Scripts\kordesii-script.py", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "C:\Python310\lib\importlib\metadata\__init__.py", line 171, in load
    module = import_module(match.group('module'))
  File "C:\Python310\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "c:\users\analyst\git\kordesii\kordesii\__init__.py", line 7, in <module>
    from .tester import Tester
  File "c:\users\analyst\git\kordesii\kordesii\tester.py", line 17, in <module>
    from kordesii import registry
  File "c:\users\analyst\git\kordesii\kordesii\registry.py", line 9, in <module>
    import pkg_resources
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 3283, in <module>
    def _initialize_master_working_set():
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 3266, in _call_aside
    f(*args, **kwargs)
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 3295, in _initialize_master_working_set
    working_set = _declare_state('object', 'working_set', WorkingSet._build_master())
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 589, in _build_master
    ws.require(__requires__)
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 926, in require
    needed = self.resolve(parse_requirements(requirements))
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 787, in resolve
    dist = self._resolve_dist(
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 816, in _resolve_dist
    env = Environment(self.entries)
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 1014, in __init__
    self.scan(search_path)
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 1046, in scan
    for dist in find_distributions(item):
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 2091, in find_on_path
    yield from factory(fullpath)
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 2183, in resolve_egg_link
    return next(dist_groups, ())
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 2179, in <genexpr>
    resolved_paths = (
  File "C:\Users\analyst\AppData\Roaming\Python\Python310\site-packages\pkg_resources\__init__.py", line 2167, in non_empty_lines
    for line in _read_utf8_with_fallback(path).splitlines():
NameError: name '_read_utf8_with_fallback' is not defined
dc3-tsd commented 3 months ago

Thanks for the report. We'll look into switching the project to using pyproject.toml.