From d0b36aa4b34404e1e83b56712bda0e7e90285bf0 Mon Sep 17 00:00:00 2001 From: Ella Bouenos Date: Sat, 20 Sep 2025 17:10:41 +0300 Subject: [PATCH 1/2] feat(elf): add support for ARM-BE8 architecture --- cle/backends/elf/elf.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cle/backends/elf/elf.py b/cle/backends/elf/elf.py index 011acd4d6..657de24c4 100644 --- a/cle/backends/elf/elf.py +++ b/cle/backends/elf/elf.py @@ -20,6 +20,7 @@ from elftools.dwarf.ranges import BaseAddressEntry, RangeEntry from elftools.elf import dynamic, elffile, enums, sections from elftools.elf.relocation import RelocationSection, RelrRelocationSection +from elf_tools.elf.constans.E_FLAGS import EF_ARM_BE8 from sortedcontainers import SortedDict from cle.address_translator import AT @@ -339,6 +340,8 @@ def extract_arch(reader): return archinfo.ArchARMEL("Iend_LE" if reader.little_endian else "Iend_BE") elif reader.header.e_flags & 0x400: return archinfo.ArchARMHF("Iend_LE" if reader.little_endian else "Iend_BE") + elif reader.header.e_flags & EF_ARM_BE8: # ARM-BE8 has big endian data and little endian instructions + return archinfo.ArchARMEL("Iend_LE") try: return archinfo.arch_from_id(arch_str, "le" if reader.little_endian else "be", reader.elfclass) From 0f08584c2179de95820c7b5002d9557a66436d1f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 20 Sep 2025 14:50:04 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- cle/backends/elf/elf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cle/backends/elf/elf.py b/cle/backends/elf/elf.py index 657de24c4..7e33e88d8 100644 --- a/cle/backends/elf/elf.py +++ b/cle/backends/elf/elf.py @@ -10,6 +10,7 @@ from typing import cast import archinfo +from elf_tools.elf.constans.E_FLAGS import EF_ARM_BE8 from elftools.common.exceptions import DWARFError, ELFError, ELFParseError from elftools.dwarf import callframe from elftools.dwarf.compileunit import CompileUnit @@ -20,7 +21,6 @@ from elftools.dwarf.ranges import BaseAddressEntry, RangeEntry from elftools.elf import dynamic, elffile, enums, sections from elftools.elf.relocation import RelocationSection, RelrRelocationSection -from elf_tools.elf.constans.E_FLAGS import EF_ARM_BE8 from sortedcontainers import SortedDict from cle.address_translator import AT