756 Commits

Author SHA1 Message Date
Romain Thomas f9b6b77101 elf: add support for AArch64 attributes
Resolve: #1350
2026-06-07 07:15:16 +02:00
Romain Thomas 9233847d66 mark Nanobind headers as system headers 2026-06-07 06:01:33 +02:00
Romain Thomas da362e6a35 python: fix abi3 compilation 2026-05-23 09:22:51 +02:00
Romain Thomas 807947f7e0 cmake: raise an exception if the directory does not exist 2026-05-23 09:18:56 +02:00
lief-agent 478de7829b core: normalize the iterator interface 2026-05-23 08:45:45 +02:00
lief-integration-bot 57a0b95070 pe(debug): add support for SPGO/PGI/PGU 2026-05-16 18:43:28 +02:00
lief-agent 835132af6c examples: update and normalize Python examples 2026-04-25 09:44:02 +02:00
lief-agent 255cd71927 Update 2026-04-25 09:39:23 +02:00
Romain Thomas a2484a43b3 python: guard mutating bindings with nb::lock_self()
Ensure Python binding thread-safety on methods that
mutate the underlying binary. Note: this coverage is not exhaustive
but bootstrap the support for free-threaded Python builds.

resolve #1255
2026-04-25 08:24:45 +02:00
Romain Thomas 305fdd7204 Fix TSAN runtime library 2026-04-19 12:10:59 +02:00
Romain Thomas f5b7164f45 guard with mutex 2026-04-19 11:57:20 +02:00
Romain Thomas 43830eacb1 sanitizer: fix asan 2026-04-19 09:44:37 +02:00
lief-agent db9c1bd4db tests: more coverage
AI DISCLAIMER: These new tests are 100% AI-generated and humman-reviewed
2026-04-18 21:45:33 +02:00
Romain Thomas bed43eb08c python: prefers ft_mutex over the regular std::mutex
related to #1255
2026-04-18 15:12:57 +02:00
Romain Thomas 48d241cefa fix lifetime 2026-04-18 14:17:32 +02:00
lief-agent d15b1c7dc6 elf: implement GNU_PROPERTY_1_NEEDED support 2026-04-12 20:18:38 +02:00
Romain Thomas e9764969d5 python: introduce lief-extra-compilation-flags 2026-04-12 19:17:04 +02:00
lief-agent 032780721e Fix typo and standardize comments 2026-04-12 13:11:26 +02:00
lief-agent c9f36fc09e rust: improve ELF note bindings 2026-04-12 08:59:29 +02:00
lief-agent 2ad74fed83 QA: update tests/ code for type checking 2026-04-11 12:41:55 +02:00
lief-agent ec3920229a python: fix typing stubs 2026-04-11 07:07:28 +02:00
lief-agent d35a0ad211 python: fix typo 2026-04-11 07:06:41 +02:00
Romain Thomas aca974e752 cmake: modernize CMake build system for cmake_minimum_required 3.24 2026-04-05 16:19:47 +02:00
lief-agent 0dfd129b47 Fix color 2026-04-05 08:52:07 +02:00
Romain Thomas 8c0c4c48ff macho: add tlv_initial_content_range()
Abstract the TLV initial content range computation from
`LayoutChecker::check_tls()`
2026-04-05 08:30:51 +02:00
lief-agent c5193a4817 code cleaning 2026-04-05 08:49:52 +02:00
Romain Thomas fee8f64a03 macho: add support for ThreadLocalVariables
Introduce `ThreadLocalVariables` that represents
`S_THREAD_LOCAL_VARIABLES` sections. It exposes the array of TLS
descriptors (Thunk) that dyld uses to lazily initialize thread-local
storage.
2026-04-05 06:30:30 +02:00
lief-agent f02175670b python: add byte support for dump. 2026-04-04 13:13:08 +02:00
Romain Thomas c9340c36e9 LLVM 22.1.3 update 2026-04-04 11:26:04 +02:00
Romain Thomas 4db4e3d62c cmake: remove LIEF_USE_PCH since redundant with CMAKE_DISABLE_PRECOMPILE_HEADERS 2026-04-04 10:23:51 +02:00
Romain Thomas 80e790d9a7 Update default config 2026-03-29 10:22:08 +02:00
Romain Thomas d91e91d6b9 more compile time improvment 2026-03-28 23:18:12 +01:00
Romain Thomas d795497828 Improve pch 2026-03-28 18:28:13 +01:00
Romain Thomas bc6a8514e3 compilation: enable precompiled headers (PCH)
Add precompiled headers to the main library, Python bindings,
and unit tests to improve compilation times.
2026-03-28 17:24:44 +01:00
Romain Thomas 8da5388b94 pe: add address range checks for LoadConfiguration fields
Add VA range validation for all address fields in LoadConfiguration
that were previously unchecked. It validates that
each address falls within [imagebase, imagebase + virtual_size).
2026-03-20 18:00:41 +01:00
Romain Thomas 69219fdbe7 pe: add setters for iat_value/ilt_value 2026-03-20 16:27:47 +01:00
Romain Thomas d1382c1863 Bootstrap runtime options 2026-03-20 15:40:36 +01:00
lief-agent 35de7f3592 Improve testing log API 2026-03-19 17:08:49 +01:00
Romain Thomas 1502b48a17 Fix type hint 2026-03-19 09:25:39 +01:00
Romain Thomas 7ac083bb73 Add contextmanager API for log level 2026-03-19 07:56:02 +01:00
Romain Thomas f986c6dd17 Resolve #1318 2026-03-17 17:11:44 +01:00
Romain Thomas cfdcc42fcd Fix warnings 2026-03-17 17:11:39 +01:00
Romain Thomas 22894bef5b clang-tidy fixes 2026-03-17 16:13:57 +01:00
Romain Thomas 702f4e51b8 Resolve #1310 2026-03-17 15:01:41 +01:00
Romain Thomas 6c2e39cfc0 modernize python API 2026-03-17 14:00:48 +01:00
Romain Thomas e1844d4ecc Add check_layout for ELF
This commit implements the check_layout function for ELF binaries
similar to PE and Mach-O. This function aims to ensure that the
ELF binary is consistent according to various loader (e.g., Linux, Android)
2026-03-17 08:30:21 +01:00
Romain Thomas 2e94b01eb8 Force link against libpythonX.YZ.so on Android
It seems that Android does not support `undefined dynamic_lookup`
as we do for macOS and Linux. Therefore, we force link with the shared
library
2026-03-08 15:15:45 +01:00
Romain Thomas 3847142f1e add support to create a FAT MachO from binaries
Resolve: #1271
2026-03-08 14:10:57 +01:00
lief-agent 83bdf9c8d4 Add support for ELF DT_AUXILIARY and DT_FILTER
Resolve #1159
2026-03-08 11:33:50 +01:00
Charles Bousseau 63d5500ee7 Add TLSDESC_PLT and TLSDESC_GOT to ELF dynamic tags (#1311)
* Add TLSDESC_PLT and TLSDESC_GOT to ELF dynamic tags

---------

Co-authored-by: Romain Thomas <me@romainthomas.fr>
2026-03-07 20:57:50 +01:00