Skip to content

Issue with Signify v0.9.2 #13

@Damag3dRoot

Description

@Damag3dRoot

When importing thrember with recent versions of signify, the following error occurs:

ImportError: cannot import name 'SignedPEFile' from 'signify.authenticode'

Root cause

thrember/features.py currently imports:

from signify.authenticode import SignedPEFile

However, in recent versions of signify, SignedPEFile is no longer exposed at this location.
According to the current Signify documentation, the class is now defined in:

from signify.authenticode.signed_file import SignedPEFile

Additionally, the Signify API has changed:

  • iter_signed_datas() has been replaced by iter_embedded_signatures()

As a result, thrember fails to import with up-to-date Signify versions, even though the required class still exists.

Proposed fix

  1. Update the import in thrember/features.py:
from signify.authenticode.signed_file import SignedPEFile
  1. Replace calls to:
iter_signed_datas()

with:

iter_embedded_signatures()

This aligns thrember with the current Signify public API and restores compatibility without removing Authenticode features.

Environment

  • Python: 3.10 / 3.11
  • signify: recent (>= 0.7.x)
  • thrember / EMBER2024: current main branch

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions