mandiant / flare-floss

FLARE Obfuscated String Solver - Automatically extract obfuscated strings from malware.
Apache License 2.0
3.25k stars 452 forks source link

Clean Python3.12.6 install results in python-flirt error #1043

Closed LloydLabs closed 1 month ago

LloydLabs commented 1 month ago

I'm on:

I simply ran:

pip3 install flare-floss

Which presented the following error:

ERROR: Ignored the following versions that require a different python version: 0.1.0 Requires-Python <3; 0.1.0rc1 Requires-Python <3; 0.1.0rc2 Requires-Python <3; 0.1.0rc3 Requires-Python <3; 0.2.0 Requires-Python <3; 0.2.1 Requires-Python <3
ERROR: Could not find a version that satisfies the requirement python-flirt==0.7.0; extra == "flirt" (from viv-utils[flirt]) (from versions: 0.8.9, 0.8.10)
ERROR: No matching distribution found for python-flirt==0.7.0; extra == "flirt"

I assume the version needs bumped?

Thanks in advance!

williballenthin commented 1 month ago

Yup that's it exactly. I'll try to push an update tomorrow and tag you again here. Thanks for the report!

LloydLabs commented 1 month ago

Awesome, thank you for your great work to the open-source security community @williballenthin!

williballenthin commented 1 month ago

need to bump viv-utils to v0.7.11. v0.7.10 added support for py3.12.

...but our version spec says >=0.7.9, so pip should pull 0.7.11 if it's available. so maybe this isn't the issue.

williballenthin commented 1 month ago
❯ uv pip install flare-floss
  × No solution found when resolving dependencies:
  ╰─▶ Because python-flirt==0.7.0 has no wheels are available with a matching Python implementation and viv-utils[flirt]==0.7.5 depends on python-flirt==0.7.0, we can
      conclude that viv-utils[flirt]==0.7.5 cannot be used.
      And because flare-floss>=2.0.0,<=2.1.0 depends on viv-utils[flirt]==0.7.5 and only flare-floss>=2.0.0 is available, we can conclude that flare-floss<2.2.0 cannot be
      used. (1)

      Because python-flirt==0.8.6 has no wheels are available with a matching Python ABI and any of:
          viv-utils[flirt]==0.7.7
          viv-utils[flirt]==0.7.9
      depends on python-flirt==0.8.6, we can conclude that any of:
          viv-utils[flirt]==0.7.7
          viv-utils[flirt]==0.7.9
       cannot be used.
      And because flare-floss==2.2.0 depends on viv-utils[flirt]==0.7.7, we can conclude that flare-floss==2.2.0 cannot be used.
      And because we know from (1) that flare-floss<2.2.0 cannot be used, we can conclude that flare-floss<2.3.0 cannot be used. (2)

      Because python-flirt==0.8.6 has no wheels are available with a matching Python ABI and viv-utils[flirt]==0.7.9 depends on python-flirt==0.8.6, we can conclude that
      viv-utils[flirt]==0.7.9 cannot be used.
      And because flare-floss>=2.3.0 depends on viv-utils[flirt]==0.7.9, we can conclude that flare-floss>=2.3.0 cannot be used.
      And because we know from (2) that flare-floss<2.3.0 cannot be used, we can conclude that all versions of flare-floss cannot be used.
      And because you require flare-floss, we can conclude that the requirements are unsatisfiable.

      hint: Pre-releases are available for flare-floss in the requested range (e.g., 1.7.0a1), but pre-releases weren't enabled (try: `--prerelease=allow`)
williballenthin commented 1 month ago

ahh, in #1012 which is in master, but not part of a release yet, we relax the versioning requirements. viv-utils and python-flirt install just fine on my py3.12 installation. So I think we just need to do a release of floss with the relaxed requirements.

mr-tz commented 1 month ago

Can you confirm that it works now with the new release?

williballenthin commented 1 month ago

working for me. how about you @LloydLabs?

image

LloydLabs commented 1 month ago

Hey, sorry for getting back a bit later than expected - yes, all working on my end now after the version bump. Thanks a lot!