Romain Thomas
969411f8ef
Welcome 2023
2023-01-03 10:38:09 +01:00
Romain Thomas
b3167cb78b
Fix missing relationship between symbols and sections
...
See: #841
2022-12-11 09:01:31 +01:00
Romain Thomas
2a10494b8a
Enhance the Python IO interface
...
Related to #832
2022-12-09 10:22:53 +01:00
Romain Thomas
d445beaac3
Expose 'remove_dynamic_symbol'
2022-11-24 04:22:22 +01:00
Romain Thomas
803127cf52
Resolve #816
2022-11-09 17:55:54 +01:00
ζeh Matt
6085bbc949
Use explicit function signature for python bindings on write function
2022-07-22 06:36:35 +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
Adrian Haensler
9331982bfe
support update of auxiliary symbol versions and adding new SymbolVersionAuxRequirements
2022-02-25 05:08:44 +01:00
Romain Thomas
50986fcaf1
Use a span interface
2022-02-13 10:39:38 +01: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
Nicolas Iooss
bb7faf3e72
Support setting ELF header identity from bytes
...
The following Python code currently fails with Python 3.9:
import lief
elf = lief.ELF.Binary("test", lief.ELF.ELF_CLASS.CLASS32)
elf.header.identity = bytes.fromhex("7f454c46010101000000000000000000")
The reported error is:
TypeError: b'\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00' is not supported!
It is possible to use `.decode()` to convert the bytes to string, or to
use `list(...)` to convert them to a list of integers. Both these
solutions work, but they are not as elegant as directly using `bytes`.
Modify the `identity` setter to support bytes. As `Header::identity_t`
is directly an array of `uint8_t`, casting it from `py::bytes` is
straightforward.
2022-01-24 23:18:20 +01:00
Romain Thomas
72ebe0d89e
Refector the ELF builder
2022-01-22 13:23:52 +01:00
Jasper Lievisse Adriaanse
5a4c94cbba
Fix a few small textual mistakes
2021-06-22 17:50:57 +02:00
Romain Thomas
009306cedd
Update section_from_{offset,va} to enable skipping SHT_NOBITS
2021-06-13 06:56:32 +02:00
Romain Thomas
1d63c60ee8
Add missing functions
2021-05-31 05:34:18 +02:00
Romain Thomas
672d73f1cb
Add crashpad note
2021-05-30 20:38:30 +02:00
Romain Thomas
d9303f682c
Enable to add object relocations
2021-05-30 20:17:13 +02:00
Romain Thomas
06aa75c085
Fix error
2021-03-29 08:00:46 +02:00
fanquake
e83f812e5d
add RISC-V machine type
...
Similar to #486 , add the RISCV machine type to the ELF_ARCH enums.
EM_RISCV 243 RISC-V
2021-03-29 07:07:20 +02:00
Romain Thomas
6720ed2385
Update copyright
2021-01-16 18:17:17 +01:00
Romain Thomas
13222b6974
Fix #515
2021-01-04 09:56:19 +01:00
Meir Komet
9dd641d380
added ELF enums for Android relocations and special compiler sections
2020-12-12 00:48:32 -08:00
rthomas
3b7c8fb203
Clean ELF headers
2020-11-20 06:42:23 +01:00
rthomas
8a72f4310e
Update documentation & python bindings
2020-11-18 13:07:21 +01:00
Meir Komet
1851382170
added eBPF file support (compiled to ELF, via new llvm support)
2020-11-07 15:46:28 +01:00
rthomas
081ec5c0e9
Add DF_1_PIE enum
2020-09-23 13:33:42 +02:00
rthomas
5f26216f90
Resolve #455
2020-08-27 09:59:59 +02:00
rthomas
0ade59de75
Add PT_GNU_PROPERTY
2019-12-06 06:22:01 +01:00
rthomas
934d84ffea
Move to Pybind11 v2.4.3 and fix enum conflicts
2019-11-19 06:41:11 +01:00
Romain Thomas
fa3195b1bd
Add API to check if a section associated with an Off/VA exists
2019-05-28 09:47:33 +02:00
Cédric Tessier
9fc3a8a433
Add coredump support in LIEF
2019-04-18 07:17:46 +02:00
Romain Thomas
b26abae9a9
Fix #285
2019-03-25 20:38:28 +01:00
dm
3833e0be9c
Add min_size parameters to Binary::strings function
2019-01-15 07:41:50 +01:00
Romain Thomas
8d7ec26a93
Add ELF ABI Version
2018-12-30 20:27:53 +01:00
Romain Thomas
35b3d039f7
Only relocate section if the original one was not empty.
...
We also introduce ELF API for overlay:
* lief.ELF.Binary.eof_offset
* lief.ELF.Binary.has_overlay
* lief.ELF.Binary.overlay
2018-12-13 09:32:54 +01:00
Romain Thomas
b5a08463ad
Expose API to list functions found in a binary
2018-09-12 14:44:18 +02:00
Romain Thomas
02f4851c9f
Return string located in the .rodata section
...
New API: lief.ELF.Binary.strings / LIEF::ELF::Binary::strings()
2018-07-27 10:56:41 +02:00
Romain Thomas
c6779702b1
Expose Python API to remove ELF static symbols
2018-07-23 13:23:04 +02:00
Romain Thomas
918438c6be
Enable to remove sections using the abstract layer
2018-07-09 15:08:39 +02:00
Romain Thomas
957384cd36
Add ELF dtor functions
2018-06-28 16:49:55 +02:00
Romain Thomas
67d924a220
Add constructor functions in the abstract layer
...
New API:
* LIEF::ELF::Binary::get_relocation
* LIEF::Binary::ctor_functions
2018-06-19 15:27:35 +02:00
Romain Thomas
a9f3cb8f9b
Enable to add relocation associated with symbol
...
Resolve #184
2018-06-19 09:59:29 +02:00
Romain Thomas
cd1cc457cf
Resolve #119 and enhance ELF Python bindings
2018-06-08 10:48:33 +02:00
Romain Thomas
163cd3bcc9
Expose ELF relocation info
2018-06-06 14:13:07 +02:00
yd0b0N
0bbeaa81e9
Add applies_to field to Relocation
...
The field contains a pointer to the Section object
the OBJECT Relocation applies to.
2018-05-03 07:34:46 +02:00
yd0b0N
08b514191f
Add support for PPC32/64 relocations
2018-05-02 15:15:33 +02:00
Romain Thomas
3b17aba10e
Refactor some parts of the Architecture:
...
* JSON visitor are located in the format namespace
* Visitor are *real* visitor
* Visitable class has been renamed to Object
* Due to a bug in Visual Studio 2015, we move to VS2017
2018-03-13 16:49:02 +01:00