LIEF - Library to Instrument Executable Formats (C++, Python, Rust)
This report summarizes scanner evidence for lief-project/LIEF, a C++ project with 5,616 GitHub stars. SynthScan examined 546,638 lines of code across 3506 source files, recording 815 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 1.9 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 626 finding(s).
Are imports declared and package/API names verified? 62 finding(s).
Are wrappers, guards, and repeated structures necessary? 261 finding(s).
Which changes need focused human review? 815 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 815 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | config/mbedtls/config.h | 1 | #include "mbedtls/mbedtls_config.h" | COMMENT |
| LOW | config/mbedtls/psa_config.h | 1 | // Disable MbedTLS options that are not thread-safe. See | COMMENT |
| LOW | plugins/binaryninja/dwarf-export/tools/main.cpp | 1 | #include <string_view> | COMMENT |
| LOW | plugins/binaryninja/dwarf-export/src/DwarfExport.cpp | 21 | #include <LIEF/MachO/Binary.hpp> | COMMENT |
| LOW | plugins/binaryninja/include/binaryninja/api_compat.hpp | 1 | #pragma once | COMMENT |
| LOW | plugins/binaryninja/extra/android/jni.h | 1221 | COMMENT | |
| LOW | plugins/binaryninja/src/lief_utils.cpp | 21 | COMMENT | |
| LOW | plugins/ghidra/jni/lief/dwarf/Editor.cpp | 21 | #include "jni/lief/dwarf/editor/CompilationUnit.hpp" | COMMENT |
| LOW | …ugins/ghidra/jni/lief/dwarf/editor/CompilationUnit.cpp | 21 | #include "jni/lief/dwarf/editor/BaseType.hpp" | COMMENT |
| LOW | include/LIEF/DebugDeclOpt.hpp | 21 | #include <string> | COMMENT |
| LOW | include/LIEF/DebugDeclOpt.hpp | 81 | DeclOpt& include_locals(bool value) LIEF_LIFETIMEBOUND; | COMMENT |
| LOW | include/LIEF/MachO.hpp | 21 | COMMENT | |
| LOW | include/LIEF/MachO.hpp | 41 | #include "LIEF/MachO/DyldExportsTrie.hpp" | COMMENT |
| LOW | include/LIEF/MachO.hpp | 61 | #include "LIEF/MachO/NoteCommand.hpp" | COMMENT |
| LOW | include/LIEF/MachO.hpp | 81 | #include "LIEF/MachO/TwoLevelHints.hpp" | COMMENT |
| LOW | include/LIEF/errors.hpp | 61 | /// Wrapper that contains an Object (``T``) or an error | COMMENT |
| LOW | include/LIEF/errors.hpp | 101 | COMMENT | |
| LOW | include/LIEF/DWARF.hpp | 21 | #include "LIEF/DWARF/DebugInfo.hpp" | COMMENT |
| LOW | include/LIEF/DWARF.hpp | 41 | #include "LIEF/DWARF/editor/Type.hpp" | COMMENT |
| LOW | include/LIEF/runtime.hpp | 21 | #include "LIEF/runtime/Memory.hpp" | COMMENT |
| LOW | include/LIEF/DyldSharedCache.hpp | 21 | #include "LIEF/DyldSharedCache/MappingInfo.hpp" | COMMENT |
| LOW | include/LIEF/ASM.hpp | 21 | COMMENT | |
| LOW | include/LIEF/compiler_attributes.hpp | 21 | #define LIEF_CPP11 | COMMENT |
| LOW | include/LIEF/compiler_attributes.hpp | 41 | #endif | COMMENT |
| LOW | include/LIEF/compiler_attributes.hpp | 61 | #else | COMMENT |
| LOW | include/LIEF/compiler_attributes.hpp | 81 | #endif | COMMENT |
| LOW | include/LIEF/Abstract.hpp | 21 | #include "LIEF/Abstract/Function.hpp" | COMMENT |
| LOW | include/LIEF/visitor_macros.hpp | 21 | // ========== | COMMENT |
| LOW | include/LIEF/visitor_macros.hpp | 41 | class OBJ; \ | COMMENT |
| LOW | include/LIEF/visitor_macros.hpp | 61 | #define LIEF_MACHO_VISITABLE(OBJ) | COMMENT |
| LOW | include/LIEF/visitor_macros.hpp | 81 | // =========== | COMMENT |
| LOW | include/LIEF/visitor_macros.hpp | 101 | } | COMMENT |
| LOW | include/LIEF/visitor_macros.hpp | 121 | #define LIEF_ART_VISITABLE(OBJ) | COMMENT |
| LOW | include/LIEF/ObjC.hpp | 21 | #include "LIEF/ObjC/DeclOpt.hpp" | COMMENT |
| LOW | include/LIEF/iterators.hpp | 101 | template<class T, class U, class Category> | COMMENT |
| LOW | include/LIEF/iterators.hpp | 781 | template<class T, typename U, class IT> | COMMENT |
| LOW | include/LIEF/iterators.hpp | 801 | /// designs where this doesn't work well. It doesn't really force much added | COMMENT |
| LOW | include/LIEF/iterators.hpp | 821 | /// mutable or use const_cast. | COMMENT |
| LOW | include/LIEF/OAT.hpp | 21 | COMMENT | |
| LOW | include/LIEF/DEX.hpp | 21 | #if defined(LIEF_DEX_SUPPORT) | COMMENT |
| LOW | include/LIEF/PE.hpp | 21 | COMMENT | |
| LOW | include/LIEF/PE.hpp | 41 | #include "LIEF/PE/Parser.hpp" | COMMENT |
| LOW | include/LIEF/PE.hpp | 61 | #include "LIEF/PE/resources/ResourceDialogRegular.hpp" | COMMENT |
| LOW | include/LIEF/PE.hpp | 81 | COMMENT | |
| LOW | include/LIEF/LIEF.hpp | 21 | #include "LIEF/Abstract.hpp" | COMMENT |
| LOW | include/LIEF/ELF.hpp | 21 | #if defined(LIEF_ELF_SUPPORT) | COMMENT |
| LOW | include/LIEF/ELF.hpp | 41 | #include "LIEF/ELF/NoteDetails.hpp" | COMMENT |
| LOW | include/LIEF/ART.hpp | 21 | COMMENT | |
| LOW | include/LIEF/COFF.hpp | 21 | #if defined(LIEF_COFF_SUPPORT) | COMMENT |
| LOW | include/LIEF/COFF.hpp | 41 | // IWYU pragma: end_exports | COMMENT |
| LOW | include/LIEF/visibility.h | 21 | COMMENT | |
| LOW | include/LIEF/visibility.h | 41 | #elif defined(LIEF_IMPORT) | COMMENT |
| LOW | include/LIEF/utils.hpp | 141 | LIEF_API result<std::string> demangle(std::string_view mangled); | COMMENT |
| LOW | include/LIEF/types.hpp | 21 | #elif defined(__GNUC__) | COMMENT |
| LOW | include/LIEF/PDB.hpp | 21 | #include "LIEF/PDB/DebugInfo.hpp" | COMMENT |
| LOW | include/LIEF/VDEX.hpp | 21 | COMMENT | |
| LOW | include/LIEF/to_json.hpp | 21 | COMMENT | |
| LOW | include/LIEF/Abstract/Binary.hpp | 21 | #include <memory> | COMMENT |
| LOW | include/LIEF/Abstract/Binary.hpp | 301 | /// For PE file, this function tries to find the **external** PDB using | COMMENT |
| LOW | include/LIEF/Abstract/Binary.hpp | 321 | instructions_it disassemble(uint64_t address, | COMMENT |
| 407 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | CMakeLists.txt | 40 | # ============ | COMMENT |
| MEDIUM | CMakeLists.txt | 46 | # ============= | COMMENT |
| MEDIUM | CMakeLists.txt | 75 | # ============ | COMMENT |
| MEDIUM | CMakeLists.txt | 80 | # =================== | COMMENT |
| MEDIUM | CMakeLists.txt | 110 | # ====================== | COMMENT |
| MEDIUM | CMakeLists.txt | 195 | # ===================== | COMMENT |
| MEDIUM | CMakeLists.txt | 209 | # ============= | COMMENT |
| MEDIUM | CMakeLists.txt | 262 | # ======================================= | COMMENT |
| MEDIUM | CMakeLists.txt | 264 | # ======================================= | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 276 | # ======================================= | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 278 | # ======================================= | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 288 | # ======================================= | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 290 | # ======================================= | COMMENT |
| MEDIUM | CMakeLists.txt | 311 | # ---------------- | COMMENT |
| MEDIUM | CMakeLists.txt | 461 | # ====================== | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 483 | # ======================================= | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 487 | # ====================== | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 497 | # ====================== | COMMENT |
| MEDIUM | prek.toml | 240 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | prek.toml | 242 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | plugins/binaryninja/CMakeLists.txt | 85 | ## --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | plugins/binaryninja/CMakeLists.txt | 87 | ## --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | plugins/binaryninja/CMakeLists.txt | 104 | ## --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | plugins/binaryninja/CMakeLists.txt | 106 | ## --------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | plugins/binaryninja/analysis/tools/CMakeLists.txt | 1 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/binaryninja/analysis/tools/CMakeLists.txt | 3 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/binaryninja/analysis/tools/CMakeLists.txt | 26 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/binaryninja/analysis/tools/CMakeLists.txt | 28 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/binaryninja/analysis/tools/CMakeLists.txt | 50 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/binaryninja/analysis/tools/CMakeLists.txt | 52 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/binaryninja/analysis/tools/CMakeLists.txt | 75 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/binaryninja/analysis/tools/CMakeLists.txt | 77 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | tests/assembly/test_x86.py | 107 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/assembly/test_x86.py | 119 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/assembly/test_x86.py | 132 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/assembly/test_x86.py | 142 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/oat/test_oat64.py | 183 | # ============ | COMMENT |
| MEDIUM | tests/oat/test_oat64.py | 191 | # ============== | COMMENT |
| MEDIUM | tests/oat/test_oat79.py | 106 | # ============ | COMMENT |
| MEDIUM | tests/oat/test_oat124.py | 76 | # ============ | COMMENT |
| MEDIUM | tests/oat/test_oat131.py | 79 | # ============ | COMMENT |
| MEDIUM | tests/elf/test_core.py | 17 | # ================= | COMMENT |
| MEDIUM | tests/elf/test_core.py | 37 | # ================= | COMMENT |
| MEDIUM | tests/elf/test_core.py | 95 | # ================= | COMMENT |
| MEDIUM | tests/elf/test_core.py | 121 | # ================= | COMMENT |
| MEDIUM | tests/elf/test_core.py | 158 | # ================= | COMMENT |
| MEDIUM | tests/elf/test_core.py | 177 | # ================= | COMMENT |
| MEDIUM | tests/elf/test_core.py | 246 | # ================= | COMMENT |
| MEDIUM | tests/elf/test_core.py | 257 | # ================= | COMMENT |
| MEDIUM | tests/elf/test_core.py | 286 | # ================= | COMMENT |
| MEDIUM | examples/cmake/find_package/CMakeLists.txt | 6 | # ============================== | COMMENT |
| MEDIUM | examples/cmake/find_package/CMakeLists.txt | 14 | # ================== | COMMENT |
| MEDIUM | examples/cmake/external_project/CMakeLists.txt | 8 | # =========================== | COMMENT |
| MEDIUM | examples/cmake/external_project/CMakeLists.txt | 45 | # ============ | COMMENT |
| MEDIUM | …amples/cmake/external_project/HelloLIEF/CMakeLists.txt | 6 | # ============================== | COMMENT |
| MEDIUM | …amples/cmake/external_project/HelloLIEF/CMakeLists.txt | 14 | # ================== | COMMENT |
| MEDIUM | examples/cmake/add_subdirectory/CMakeLists.txt | 6 | # ======================================== | COMMENT |
| MEDIUM | examples/cmake/add_subdirectory/CMakeLists.txt | 64 | # ================== | COMMENT |
| MEDIUM | scripts/osx/package_sdk.sh | 7 | # ================================================ | COMMENT |
| MEDIUM | scripts/osx/package_sdk.sh | 24 | # ================================================ | COMMENT |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …in/java/lief/ghidra/core/dwarf/export/DataManager.java | 27 | public class DataManager { | CODE |
| LOW | tests/utils.py | 275 | def has_dyld_shared_cache_samples(): | CODE |
| LOW | tests/coff/test_coff_strings.py | 9 | def test_string_table_offset_overflow(): | CODE |
| LOW | tests/coff/test_coff_strings.py | 44 | def test_get_section_long_name(): | CODE |
| LOW | tests/coff/test_coff_strings.py | 66 | def test_get_section_unresolved_long_name(): | CODE |
| LOW | tests/pe/test_parser.py | 455 | def test_import_remove_entry_ordinal(): | CODE |
| LOW | tests/pe/test_parser.py | 1091 | def test_exceptions_ahead_chained(): | STRING |
| LOW | tests/pe/test_parser.py | 1159 | def test_data_directories_overflow(): | CODE |
| LOW | tests/pe/test_parser.py | 1170 | def test_section_padding_underflow(): | CODE |
| LOW | tests/pe/test_parser.py | 1183 | def test_section_padding_no_content(): | CODE |
| LOW | tests/pe/test_parser.py | 1195 | def test_section_content_offset_wrap(): | CODE |
| LOW | tests/pe/test_parser.py | 1205 | def test_coff_string_table_offset_overflow(): | CODE |
| LOW | tests/pe/test_tls_mod.py | 260 | def test_create_tls_with_raw_data(tmp_path: Path): | CODE |
| LOW | tests/pe/test_resources.py | 84 | def test_resource_string_table(): | CODE |
| LOW | tests/pe/test_resources.py | 101 | def test_resource_accelerator(): | CODE |
| LOW | tests/pe/test_resources.py | 333 | def test_resource_dialogs_regular(): | STRING |
| LOW | tests/pe/test_resources.py | 494 | def test_resource_dialogs_extended(): | STRING |
| LOW | tests/pe/test_resources.py | 590 | def test_mfc_resource_builder(): | STRING |
| LOW | tests/pe/test_resources.py | 600 | def test_notepadpp_resource_builder(tmp_path: Path): | STRING |
| LOW | tests/pe/test_resources.py | 618 | def test_filezilla_resource_builder(tmp_path: Path): | STRING |
| LOW | tests/pe/test_resources.py | 635 | def test_resource_directory_add_directory_node(tmp_path: Path): | STRING |
| LOW | tests/pe/test_resources.py | 761 | def test_resource_directory_add_data_node(tmp_path: Path): | STRING |
| LOW | tests/pe/test_resources.py | 858 | def test_node_name_surrogate_pair(): | STRING |
| LOW | tests/pe/test_resources.py | 1107 | def test_truncated_resource_directory(): | CODE |
| LOW | tests/pe/test_loadconfig.py | 218 | def test_guard_cf_functions_large(): | CODE |
| LOW | tests/pe/check_bin_examples.py | 27 | def test_pe_authenticode_check() -> None: | CODE |
| LOW | tests/pe/test_debug.py | 335 | def test_ex_dll_characteristics(tmp_path: Path): | CODE |
| LOW | tests/pe/test_delay_imports.py | 119 | def test_delay_import_names_corrupted(): | CODE |
| LOW | tests/pe/test_issues.py | 37 | def test_patch_address_out_of_segment(): | CODE |
| LOW | tests/pe/test_builder.py | 248 | def test_build_remove_imports(tmp_path: Path): | CODE |
| LOW | tests/pe/test_imports_mod.py | 439 | def test_import_out_of_bounds(): | CODE |
| LOW | tests/pe/check_python_examples.py | 35 | def test_pe_authenticode_reader( | CODE |
| LOW | tests/pe/check_python_examples.py | 92 | def test_pe_resources_manager(monkeypatch: MonkeyPatch) -> None: | CODE |
| LOW | tests/pe/test_pe.py | 337 | def test_delay_import_setters(): | CODE |
| LOW | tests/pe/test_debug_mod.py | 216 | def test_dbg_modify_pdbchecksum(tmp_path: Path): | CODE |
| LOW | tests/pe/test_debug_mod.py | 272 | def test_dbg_modify_vcfeatures(tmp_path: Path): | CODE |
| LOW | tests/pe/test_debug_mod.py | 299 | def test_dbg_modify_exdllcharacteristics(tmp_path: Path): | CODE |
| LOW | tests/pe/test_authenticode.py | 299 | def test_ms_spc_nested_signature(): | CODE |
| LOW | tests/pe/test_authenticode.py | 452 | def test_verification_flags_str(): | CODE |
| LOW | tests/pe/test_authenticode.py | 471 | def test_ms_manifest_binary_id(): | CODE |
| LOW | tests/pe/test_authenticode.py | 483 | def test_ms_counter_signature(): | CODE |
| LOW | tests/macho/test_dyld.py | 328 | def test_shift_dyldinforeloc_taggedptr(tmp_path: pathlib.Path): | CODE |
| LOW | tests/macho/test_exports_trie.py | 96 | def test_show_export_trie_cycle(): | CODE |
| LOW | tests/macho/test_linkedit_alignment.py | 19 | def test_string_pool_alignment( | CODE |
| LOW | tests/macho/test_linkedit_alignment.py | 65 | def test_reject_misaligned_string_pool(): | CODE |
| LOW | tests/macho/test_function_variants.py | 92 | def test_func_variants_modification(tmp_path: Path): | CODE |
| LOW | tests/macho/test_function_variants.py | 230 | def test_function_variant_fixups_api(): | CODE |
| LOW | tests/macho/test_function_variants.py | 283 | def test_function_variant_fixups(tmp_path: Path): | CODE |
| LOW | tests/macho/test_function_variants.py | 340 | def test_function_variant_fixups_modification(tmp_path: Path): | CODE |
| LOW | tests/macho/test_function_variants.py | 399 | def test_function_variant_fixups_layout_check(): | CODE |
| LOW | tests/macho/test_function_variants.py | 429 | def test_function_variant_shift(tmp_path: Path): | CODE |
| LOW | tests/macho/test_generic.py | 572 | def test_virtual_address_to_offset_bss(): | CODE |
| LOW | tests/macho/test_generic.py | 597 | def test_dyld_exports_trie_str(): | CODE |
| LOW | tests/macho/test_generic.py | 645 | def test_dynamic_symbol_command_str(): | CODE |
| LOW | tests/macho/test_generic.py | 706 | def test_note_command_unterminated_owner(tmp_path: Path): | CODE |
| LOW | tests/macho/test_issues.py | 149 | def test_large_dyld_rebase_count(): | CODE |
| LOW | tests/macho/test_issues.py | 165 | def test_negative_relative_offset(): | CODE |
| LOW | tests/macho/test_issues.py | 193 | def test_dyld_corrupted_indices(): | CODE |
| LOW | tests/macho/test_issues.py | 222 | def test_symtab_uncapped_alloc(): | CODE |
| LOW | tests/macho/test_issues.py | 248 | def test_build_version_ntools(): | CODE |
| 74 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fuzzing/clean-corpus.py | 54 | except Exception as e: | CODE |
| MEDIUM | fuzzing/clean-corpus.py | 55 | print("Error: {}".format(e)) | CODE |
| LOW | tests/pe/test_authenticode.py | 11 | except Exception: # pragma: no cover # noqa | CODE |
| LOW | api/python/backend/versioning.py | 101 | except Exception as e: | CODE |
| MEDIUM | api/python/examples/elf_symbol_obfuscation.py | 48 | print(f"Error: failed to parse '{args.input}' as ELF", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/elf_bin2lib.py | 46 | print(f"Error: failed to parse '{args.binary}' as ELF", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/runtime_windows.py | 238 | print("Error: LIEF's runtime is not enabled", file=sys.stderr) | STRING |
| LOW | api/python/examples/macho_reader.py | 252 | except Exception: # noqa | CODE |
| LOW | api/python/examples/macho_reader.py | 284 | except Exception: # noqa | CODE |
| LOW | api/python/examples/pe_reader.py | 306 | except Exception: # noqa | CODE |
| MEDIUM | api/python/examples/elf_deps.py | 48 | print(f"Error: failed to parse '{filename}' as ELF") | CODE |
| MEDIUM | api/python/examples/vdex_reader.py | 130 | print(f"Error: failed to parse '{args.file}' as VDEX", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/pe_resources_manager.py | 26 | print(f"Error: failed to parse '{args.binary}' as PE", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/pe_resources_manager.py | 31 | print("Error: failed to access the resource manager") | CODE |
| MEDIUM | api/python/examples/pdb_inspect.py | 28 | print(f"Error: failed to load '{args.file}'", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/pe_authenticode_api_example.py | 34 | print(f"Error: failed to parse '{args.binary}' as PE", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/runtime_osx.py | 191 | print("Error: LIEF's runtime is not enabled", file=sys.stderr) | STRING |
| MEDIUM | api/python/examples/dex_json.py | 31 | print(f"Error: failed to parse '{args.file}'", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/json_dump.py | 28 | print(f"Error: failed to parse '{args.file}'", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/dwarf_editor.py | 38 | print(f"Error: failed to parse '{args.file}' as PE", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/oat_reader.py | 190 | print(f"Error: failed to parse '{args.binary}' as OAT", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/runtime_android.py | 184 | print("Error: LIEF's runtime is not enabled", file=sys.stderr) | STRING |
| MEDIUM | api/python/examples/elf_reader.py | 741 | print(f"Error: failed to parse '{args.elf_file}' as ELF", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/pe_json.py | 27 | print(f"Error: failed to parse '{args.binary}' as PE", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/runtime_linux.py | 179 | print("Error: LIEF's runtime is not enabled", file=sys.stderr) | STRING |
| MEDIUM | api/python/examples/dex_reader.py | 224 | print(f"Error: failed to parse '{args.file}' as DEX", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/elf_remove_section_table.py | 26 | print(f"Error: failed to parse '{filename}' as ELF", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/pe_forwardinfo.py | 26 | print(f"Error: failed to parse '{args.binary}' as PE", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/abstract_reader.py | 210 | print(f"Error: failed to parse '{args.binary}'", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/nm.py | 23 | print(f"Error: failed to parse '{filename}'", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/vdex_json.py | 30 | print(f"Error: failed to parse '{args.file}'", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/pe_extract_features.py | 276 | print(f"Error: failed to parse '{path}' as PE", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/elf_unstrip.py | 40 | print(f"Error: failed to parse '{args.input}' as ELF", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/pe_authenticode.py | 34 | print(f"Error: failed to parse '{filename}' as PE") | CODE |
| MEDIUM | api/python/examples/pe_authenticode_reader.py | 378 | print(f"Error while parsing {args.file}") | CODE |
| MEDIUM | api/python/examples/abstract_json.py | 28 | print(f"Error: failed to parse '{args.binary}'", file=sys.stderr) | CODE |
| MEDIUM | api/python/examples/elf_json.py | 27 | print(f"Error: failed to parse '{args.binary}' as ELF", file=sys.stderr) | CODE |
| LOW | doc/code/python/error_handling.py | 11 | except Exception as e: | CODE |
| MEDIUM | doc/code/python/error_handling.py | 12 | print(f"Error: {e}") | CODE |
| LOW | doc/sphinx/sphinx_lief_doc/python_typing.py | 66 | except Exception as e: | CODE |
| LOW | doc/sphinx/sphinx_lief_doc/python_typing.py | 103 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/metrics/upload.py | 8 | CODE | |
| LOW | scripts/metrics/upload.py | 9 | CODE | |
| LOW | api/python/backend/config.py | 1 | CODE | |
| LOW | api/python/backend/setup.py | 1 | CODE | |
| LOW | api/python/backend/versioning.py | 1 | CODE | |
| LOW | api/python/backend/dynamic_provider.py | 1 | CODE | |
| LOW | api/python/lief/__init__.py | 1 | CODE | |
| LOW | api/python/lief/__init__.py | 3 | CODE | |
| LOW | api/python/lief/__init__.py | 7 | CODE | |
| LOW | api/python/lief/__init__.py | 8 | CODE | |
| LOW | api/python/lief/__init__.py | 8 | CODE | |
| LOW | api/python/lief/__init__.py | 8 | CODE | |
| LOW | api/python/lief/__init__.py | 8 | CODE | |
| LOW | api/python/lief/__init__.py | 8 | CODE | |
| LOW | api/python/lief/__init__.py | 18 | CODE | |
| LOW | api/python/lief/__init__.py | 18 | CODE | |
| LOW | api/python/lief/__init__.py | 18 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/plugin_package.py | 1 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/seo.py | 1 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/img_comparison.py | 1 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/literalinclude.py | 1 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/sdk_package.py | 1 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/config/__init__.py | 1 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/config/__init__.py | 2 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/config/html_config.py | 3 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/config/breathe_config.py | 1 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/config/breathe_config.py | 4 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/__init__.py | 1 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 1 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 4 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 6 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 7 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 7 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 7 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 10 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 10 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 11 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 12 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 14 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 15 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 16 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 18 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 19 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 20 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 20 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 21 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 22 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 22 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 22 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 25 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 27 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 30 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 30 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/elf/test_add_content.py | 0 | \ #include <stdlib.h> #include <stdio.h> int add(int a, int b); int add(int a, int b) { printf("%d + %d = %d\\n", a, b, | STRING |
| HIGH | tests/elf/test_hash.py | 0 | \ #include <stdlib.h> #include <stdio.h> int add(int a, int b); int add(int a, int b) { printf("%d + %d = %d\\n", a, b, | STRING |
| HIGH | tests/elf/test_dynamic.py | 0 | \ #include <stdlib.h> #include <stdio.h> int add(int a, int b); int add(int a, int b) { printf("%d + %d = %d\\n", a, b, | STRING |
| HIGH | tests/elf/test_add_content.py | 0 | \ #include <stdio.h> #include <stdlib.h> int add(int a, int b); int main(int argc, char **argv) { if (argc != 3) { print | STRING |
| HIGH | tests/elf/test_static.py | 0 | \ #include <stdio.h> #include <stdlib.h> int add(int a, int b); int main(int argc, char **argv) { if (argc != 3) { print | STRING |
| HIGH | tests/elf/test_dynamic.py | 0 | \ #include <stdio.h> #include <stdlib.h> int add(int a, int b); int main(int argc, char **argv) { if (argc != 3) { print | STRING |
| HIGH | tests/elf/test_hash.py | 0 | \ #include <stdio.h> #include <stdlib.h> int add(int a, int b); int main(int argc, char **argv) { if (argc != 3) { print | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/runtime/osx/test_osx_host.py | 14 | assert lief.runtime.osx.Host.os_version >= lief.runtime.osx.Host.version_t.big_sur() | CODE |
| CRITICAL | doc/sphinx/_cross_api.md | 190 | .. |lief-dwarf-editor-Parameter-set_location| lief-api:: lief.dwarf.editor.Function.Parameter.set_location() | CODE |
| CRITICAL | doc/sphinx/tutorials/10_android_formats.md | 100 | 05-04 10:16:37.688 1987 1998 W dex2oat : Compilation of void com.google.android.snet.Snet.enterSnetIdle(android.conten | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fuzzing/clean-corpus.py | 40 | CODE | |
| LOW | tests/dl_samples.py | 27 | CODE | |
| LOW | .github/deploy.py | 125 | CODE | |
| LOW | api/python/backend/versioning.py | 105 | CODE | |
| LOW | api/python/examples/runtime_windows.py | 87 | CODE | |
| LOW | api/python/examples/macho_reader.py | 172 | CODE | |
| LOW | api/python/examples/pe_reader.py | 281 | CODE | |
| LOW | api/python/examples/pe_reader.py | 408 | CODE | |
| LOW | api/python/examples/elf_deps.py | 44 | CODE | |
| LOW | api/python/examples/elf_reader.py | 206 | CODE | |
| LOW | api/python/examples/elf_reader.py | 322 | CODE | |
| LOW | api/python/examples/pe_authenticode_reader.py | 54 | CODE | |
| LOW | api/python/examples/pe_authenticode_reader.py | 280 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/seo.py | 293 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/ai.py | 182 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/ai.py | 266 | CODE | |
| LOW | doc/sphinx/sphinx_lief_doc/config/lief_config.py | 57 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/pe/test_authenticode.py | 11 | except Exception: # pragma: no cover # noqa | CODE |
| HIGH | api/python/examples/elf_deps.py | 119 | except ValueError: | CODE |
| HIGH | doc/sphinx/sphinx_lief_doc/python_typing.py | 88 | except ValueError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/deploy.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | doc/code/python/tuto_coredump.py | 50 | def set_register(core: lief.ELF.Binary) -> None: | CODE |
| LOW | doc/code/python/tuto_pe_resource.py | 63 | def set_admin(filezilla: lief.PE.Binary) -> None: | CODE |
| LOW | doc/code/python/pe_resources.py | 36 | def set_manifest(pe: lief.PE.Binary) -> None: | CODE |
| LOW | doc/code/python/tuto_macho_mod.py | 94 | def set_entrypoint(app: lief.MachO.Binary, section: lief.MachO.Section) -> None: | CODE |
| LOW | doc/sphinx/sphinx_lief_doc/plugin_package.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | doc/sphinx/sphinx_lief_doc/img_comparison.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | doc/sphinx/sphinx_lief_doc/ai.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | doc/sphinx/sphinx_lief_doc/lief_api.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | doc/sphinx/sphinx_lief_doc/sdk_package.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | doc/sphinx/sphinx_lief_doc/writers/html5.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | doc/sphinx/sphinx_lief_doc/config/lief_config.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 32 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | include/LIEF/DyldSharedCache/caching.hpp | 24 | /// Enable globally cache/memoization. One can also leverage this function | COMMENT |
| MEDIUM | api/rust/crates/lief/src/dsc/caching.rs | 4 | /// Enable globally cache/memoization. One can also leverage this function | COMMENT |
| MEDIUM | src/PE/Builder.cpp | 368 | // Note(romain): We could/should leverage this optimization: | COMMENT |
| MEDIUM | …dConfigurations/DynamicRelocation/FunctionOverride.cpp | 198 | // is already sorted by image_bdd_info_t::original_offset. We can leverage | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/elf/test_notes.py | 327 | b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed" | CODE |
| LOW | tests/elf/test_notes.py | 327 | b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed" | CODE |
| LOW | tests/elf/test_notes.py | 348 | == b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed" | CODE |
| LOW | tests/elf/test_notes.py | 348 | == b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed" | CODE |
| LOW | doc/sphinx/changelog.md | 1135 | description=list(b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed"), | CODE |
| LOW | doc/sphinx/changelog.md | 1135 | description=list(b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed"), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | README.md | 24 | [Node.js](https://github.com/Piebald-AI/node-lief) (unofficial, AI-generated) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/macho/test_bin2lib.py | 27 | # Create a new export :) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | doc/sphinx/sphinx_lief_doc/rust_domain/rustdomain.py | 235 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/macho/test_issues.py | 72 | # Check if cache is updated that is used by segment_from_offset | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/abstract/test_abstract.py | 115 | def test_function(): | CODE |