Commit Graph

176 Commits

Author SHA1 Message Date
Romain Thomas 38e5565568 Abstract pdb::Type::{size, name} 2026-02-14 10:55:16 +01:00
Romain Thomas 21cf565261 Update copyright 2026-01-11 22:04:09 +01:00
Romain Thomas 7fce27408a Provide lief-patchelf: a LIEF-based implementation of NixOS's patchelf
Related: NixOS/patchelf#568
Support: NixOS/patchelf#596
2025-07-12 10:01:33 +02:00
Romain Thomas 84f963a716 Initial support for the COFF format
Resolve #1091
2025-06-08 20:01:21 +02:00
Romain Thomas 5a19dc9d73 Add support for creating DWARF files
This commit also bootstraps plugin for Ghidra and BinaryNinja

Related to NationalSecurityAgency/ghidra#2687
2025-05-27 14:48:07 +02:00
Cristian Le 0e72c53729 Include GNUInstallDirs unconditionally 2025-05-06 07:34:08 +02:00
Romain Thomas c000b17be0 Enhance PE parser/builder
close #1021
close #1118
close #192
close #276
close #358
close #642
close #746
close #777
resolve #1043
resolve #109
resolve #114
resolve #1167
resolve #124
resolve #137
resolve #140
resolve #277
resolve #472
resolve #473
resolve #517
resolve #523
resolve #528
resolve #530
resolve #546
resolve #69
resolve #876
2025-02-15 05:33:25 +01:00
Romain Thomas 2c0bf31cc0 ++year 2025-01-01 09:49:21 +01:00
Romain Thomas f7a127eac3 Initial disassembler support 2024-11-02 16:42:41 +01:00
Romain Thomas 442fb46395 Initial support for Apple's dyld shared cache 2024-10-19 06:29:24 +02:00
Romain Thomas b2b7fb96ec Add support for extensions. 2024-07-13 07:51:52 +02:00
Romain Thomas 2a31841aec Update logging interface 2024-06-22 05:49:59 +02:00
Romain Thomas 35b201bdf0 Cleaup examples 2024-06-22 05:26:42 +02:00
Romain Thomas 393fc9cabb Cleanup CMake 2024-06-22 05:19:20 +02:00
Romain Thomas e46074212d Re-scope Mach-O enums 2024-05-09 06:02:00 +02:00
Romain Thomas b2b56a7107 Replace std::endl with \n 2024-05-05 23:31:23 +02:00
Romain Thomas 9c5c513dd5 Fix heap-buffer-overflow as described in issue #1049 2024-04-28 16:52:24 +02:00
Romain Thomas 6d1a230da2 Rename master branch into main 2024-04-27 06:19:02 +02:00
Romain Thomas 307e113f8e Resolve #1038 2024-03-30 07:14:40 +01:00
Romain Thomas ec17282da3 Update documentation 2024-03-17 05:45:45 +01:00
Romain Thomas 9502c2b7ec Update copyrights 2024-02-04 05:50:39 +01:00
Romain Thomas cddd8dd076 Rename the static_symbol API into symtab_symbol 2024-02-03 06:31:30 +01:00
Romain Thomas 7a62df9b58 Re-scope ELF enums 2024-01-28 22:54:25 +01:00
Romain Thomas 1eb2df6e47 Use a CMakeLists.txt in the src/ directory 2023-11-04 05:31:13 +01:00
Romain Thomas 78006bc772 New build backend based on scikit-build-core 2023-11-04 04:06:51 +01:00
Romain Thomas d34d20c198 Refactor and clean LIEF::PE::Header 2023-07-27 18:33:09 +02:00
Romain Thomas 22a6ffa0bd Refactor and clean LIEF::PE::OptionHeader 2023-07-27 18:30:11 +02:00
Romain Thomas 1781ba0f61 Clean DosHeader interface 2023-07-27 18:23:43 +02:00
Romain Thomas 9f66386cef Fix removed attribute 2023-04-28 06:30:32 +02:00
Romain Thomas cfe89fdc3c Bump version 2023-04-15 13:16:25 +02:00
Romain Thomas 656c6b4fdd Fix warning 2023-03-25 07:19:39 +01:00
Romain Thomas 9da2466609 Improve the LIEF Python build system by using pyproject.toml
- It also provides typing info (close #650)
- Enhance the test suite
- Remove deprecated PE functions
2023-02-19 20:19:03 +01:00
Romain Thomas 969411f8ef Welcome 2023 2023-01-03 10:38:09 +01:00
Romain Thomas 1149e81c2b Merge pull request #849 from mrexodia/msvc-runtime
Fix MSVC runtime selection
2023-01-03 09:20:42 +00:00
Duncan Ogilvie bbdc62f691 Fix MSVC runtime selection 2023-01-02 17:30:42 +01:00
Romain Thomas a12a522410 Backport check from #846 2022-12-17 13:22:17 +01:00
Romain Thomas eac0bd7141 Backport check from liyansong2018 (#845 / #846) 2022-12-17 11:19:38 +01:00
liyansong2018 b42b5e68be Check ELF section 2022-12-09 22:12:54 -05:00
liyansong2018 0d21ae733e Avoid null pointer in c-api 2022-12-07 04:25:43 -05:00
Romain Thomas 91d5162be4 Enable support for parsing a Mach-O from memory 2022-11-22 10:55:15 +01:00
Romain Thomas e1a8244b92 Enhance Mach-O's builder and add support for recent LC commands 2022-04-16 15:10:56 +02:00
Romain Thomas 266f989e52 Enable support for modifying section-less ELF binaries 2022-04-03 19:34:44 +02:00
Romain Thomas baa023b914 Remove exceptions 2022-04-01 05:38:30 +02:00
Romain Thomas 724cf995f3 Check if the binary is None 2022-03-01 06:34:41 +01:00
Romain Thomas ba54ea632b Add support for PE delayed imports
Resolve #664
2022-03-01 06:18:44 +01:00
Eric Kilmer 79b9caf424 Minor fixup/cleanup for consistency in example(s) 2022-02-27 19:46:01 -05:00
Eric Kilmer a2a9d1b137 Export LIEF targets with CMake
With these changes, we no longer need to manually find the LIEF library
by filename. CMake takes care of generating the LIEF::LIEF target and
library location for us in the exported target set. This is basically a
requirement when using external dependencies because the original
functionality did not take care of this.

I have updated the example projects to make sure that they will work
with this new setup. In doing so, I changed quite a bit to more closely
follow CMake best practices that I hope we can agree on to both improve
reliability and reduce maintenance and support questions for people who
configure LIEF with external dependencies.

This project still supports finding static or shared LIEF libraries in
the same install prefix using the find_package COMPONENTS method.

This project still supports development of other projects that want to
use LIEF without installing. Just specify the following option during
configuration of your project that depends on LIEF:

```cmake
cmake -DLIEF_DIR=<LIEF_BUILD_DIR> ...
```
2022-02-25 19:02:36 -05:00
Romain Thomas 77328b0071 Bump year 2022-02-08 21:16:25 +01:00
Romain Thomas e9782c5927 Clean & modernize LIEF code base
This commit (obviously non-atomic) cleans LIEF's code base by:
  - Using pointer semantics (`std::unique_ptr<>`)
  - Using LEAF boost error in the binary stream
  - Reducing the scope of the iterators (`it_section`, ...)
  - Removing `Structures.hpp` from the public headers
  - etc
2022-02-05 06:09:06 +01:00
rthomas a615adbee4 This commit cleans and modernizes the code base of LIEF.
Among the changes:

- It removes the ``and, or, not`` keywords
- It updates the Documentation
- It moves the internal structures in the ``details::`` namespace
2022-01-27 20:18:54 +01:00