Commit Graph

159 Commits

Author SHA1 Message Date
Romain Thomas f999e49345 Bootstrap new MachO segmented chained fixups 2025-07-26 11:26:14 +02:00
Romain Thomas 6afae6c314 Enhance Mach-O support 2025-07-26 07:33:04 +02:00
Romain Thomas 1f0dff6c67 Add additional constants 2025-07-26 06:05:04 +02:00
Romain Thomas c40dcea762 Add support for contextual assembly patching 2025-07-13 18:09:50 +02:00
Romain Thomas 0762ca3cf4 Resolve #1233 2025-07-12 11:39:49 +02: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 baa063c823 Add support to remove version from .gnu.version_r 2025-06-29 19:05:06 +02:00
Romain Thomas 836620bfbb Add API to remove a version requirement from a symbol 2025-06-29 17:34:58 +02:00
Romain Thomas a1e0155007 Enhance support for endian and s390x support 2025-06-29 09:07:45 +02:00
Romain Thomas 497b95e3de Add support for SH4 2025-06-28 09:35:21 +02:00
Romain Thomas e661bb7422 Improve page size support 2025-06-24 16:48:02 +02:00
Romain Thomas 1b18d17a7e Add doc about Mach-O library/rpath modification 2025-06-24 06:05:26 +02:00
Romain Thomas a8097e5def Export write_to_bytes for ELF & Mach-O 2025-06-14 20:08:08 +02:00
Romain Thomas 2babf12d93 Add support to access and disassemble COFF functions 2025-06-14 07:32:21 +02:00
Romain Thomas d9e949a463 Fix typing 2025-06-09 06:31:22 +02:00
Romain Thomas 84f963a716 Initial support for the COFF format
Resolve #1091
2025-06-08 20:01:21 +02:00
Romain Thomas 9260bae262 Fix #define conflicts 2025-06-07 11:50:27 +02:00
Romain Thomas 14bbcabac8 Rename enum to avoid compilation issue 2025-06-07 10:14:23 +02:00
Romain Thomas 968d9c24ab Support Mach-O modifications that need to extend commands size
Resolve #1204, resolve #1125
2025-05-30 10:59:35 +02:00
Romain Thomas a1ec0f815f Fix missing PPC64 (resolve #1217) 2025-05-29 13:27:52 +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
Romain Thomas d717340c92 Improve the logic of sections insertion in ELF binaries 2025-04-19 08:32:37 +02:00
Romain Thomas 6b0446b16e Update nanobind 2025-04-12 06:30:44 +02:00
Romain Thomas 0d217ef67b Update enums 2025-03-30 09:43:56 +02:00
Romain Thomas 0397b96569 Update typing 2025-02-22 08:01:56 +01:00
Romain Thomas 23d37113a2 Update typing 2025-02-22 07:41:02 +01:00
Romain Thomas 0614b7f2cf Add support for PDB build metadata 2025-02-22 04:45:58 +01:00
willboka f97627cd58 Dex: add getter for registers count (#1171)
* Add getters for the register count

* Add tests for the getter for the number of registers

* Fix: use const ref to avoid unecessary copy

---------

Co-authored-by: willboka <willbaka>
2025-02-15 17:56:36 +01: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 cc288c7215 Add support for pretty printing PDB debug info 2025-02-15 04:15:03 +01:00
Romain Thomas 8cae0420d9 Make sure ELF, PE, and Mach-O parser can consume bytes.
Related to #1167
2025-02-04 12:40:32 +01:00
Romain Thomas b086796f43 Resolve #1165 2025-02-01 20:45:31 +01:00
Romain Thomas 94275484bd Resolve #1164 and resolve #1163 2025-01-25 06:16:11 +01:00
bhoehl ac3b57deb1 add support for spc link / urls in spc indirect data 2025-01-25 05:16:29 +01:00
Romain Thomas 1de204ada8 Update stubs 2024-12-25 07:04:13 +01:00
Richard Dzenis 259bf7091f MachO::binary: add extend_section (#1137)
* MachO::Binary::add_section: respect alignment of empty sections

* MachO/layout_check: relax offset continuity requirement for __text section

Sections in MachO are prepended, but __text section is not moved.
Due to this there might be redundant gap between __text section and a
section that comes before __text.

Note: we don't want to alter distance between __DATA and __text, because
there might be position relative references in metadata.

* tests/macho: use lief.MachO.check_layout

* MachO::binary: add extend_section

This commit adds member function MachO::Binary::extend_section that is
able to extend sections from the first segment in MachO.

* macho/test_builder: add test_extend_section
2024-12-24 09:58:47 +01:00
Romain Thomas 2cd4d99fc6 Enhance Mach-O layout checks 2024-12-15 08:04:34 +01:00
Romain Thomas a5cf726667 Add more architectures 2024-12-14 19:48:04 +01:00
Romain Thomas 29b79cbece Add more platforms 2024-12-13 10:36:33 +01:00
Romain Thomas 531377b388 Add support for LC_ATOM_INFO 2024-12-12 20:34:50 +01:00
Romain Thomas 738f60b555 Update Rich headers variables 2024-12-11 18:00:56 +01:00
Romain Thomas a11b1b72a9 Expose write() operation in Rust 2024-12-09 16:58:29 +01:00
Romain Thomas c1a7332233 Add support for AArch64 operands 2024-12-07 18:27:27 +01:00
Romain Thomas 69d777e4c0 Add support for x86/x86-64 operands 2024-12-07 06:01:28 +01:00
Romain Thomas de58725db9 Initial assembler 2024-11-30 07:54:08 +01:00
Romain Thomas de49dceba9 Update nanobind
Resolve: #1128
2024-11-30 05:30:21 +01:00
Romain Thomas 102a6171a7 Some updates 2024-11-23 07:45:56 +01:00
Romain Thomas 33a8e16976 Improve disassembler support 2024-11-23 07:31:41 +01:00
Romain Thomas 4e8838a5a7 Improve the documentation 2024-11-23 06:56:34 +01:00
Romain Thomas a2100f9aeb Update typing 2024-11-23 05:47:09 +01:00