Skip to content

[Analyzer] Unable to Execute loris_analyzer.py – Missing firmwire.vendor.shannon.sael3 and angr API Compatibility Error #4

@Clingto

Description

@Clingto

Hi, thank you very much for your excellent and interesting work on this project, and for sharing it as open source!

I'm currently trying to reproduce and use the tool, and I encountered a couple of issues while running Analyzer of the following command:


🔧 Execution Command

Loris/analyzer/loris_analyzer.py  -n 1   --debug   --firmwire-log debug   --angr-log info   -b modem_files/CP_G973FXXSHHWI1_CP25062570_CL25257816_Q
B71477174_REV01_user_low_ship.tar.md5

❗ First Error: Missing firmwire.vendor.shannon.sael3

ModuleNotFoundError: No module named 'firmwire.vendor.shannon.sael3'

To bypass this error, I temporarily commented out the following line in:

File: Loris/analyzer/loris_analyzer/util/utils.py
Line: 22

# from firmwire.vendor.shannon.sael3 import SAEL3

This allowed the script to proceed further.


❗ Second Error: angr internal API change

After bypassing the missing module, I encountered this:

AttributeError: module 'angr.storage.memory_mixins' has no attribute 'memory_mixin'

File: Loris/analyzer/loris_analyzer/util/utils.py
Line: 282

def get_initialized_intervals(memory: angr.storage.memory_mixins.memory_mixin.MemoryMixin, addr_range: range):

This appears to be due to an internal structure/API change in angr. The module angr.storage.memory_mixins.memory_mixin no longer exists in newer versions of angr.


🧪 Environment

  • Python Version: PyPy 3.10.14
  • angr Version: 9.2.102 (installed via pip)
  • Execution Context: Virtual environment fw-env
  • Platform: Linux

Python shell output:

>>>> import angr
>>>> print(angr.__version__)
9.2.102

🙋 My Questions

  1. Which version or commit hash of angr is known to be compatible with this project and the current codebase?
  2. Is there a public version or branch that does not rely on firmwire.vendor.shannon.sael3? Or is this module expected to be private?
  3. Is there any guideline or minimal working configuration to execute loris_analyzer.py reliably?

Thank you again for your great work and for making it available to the community. I'd love to explore more of this tool if I can get past these issues. Any guidance or clarification you can provide would be much appreciated!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions