LIEF
https://lief-project.github.io/
The purpose of this project is to provide a cross platform library
which can parse, modify and abstract ELF, PE and MachO formats.
Main features:
Parsing: LIEF can parse ELF, PE, MachO and provides an
user-friendly API to access to format internals.
Modify: LIEF enables to modify some parts of these formats
Abstract: Three formats have common features like sections,
symbols, entry point... LIEF factors them.
API: LIEF can be used in C, C++ and Python
-
1
derived packages
- Download package
-
Checkout Package
osc -A https://api.opensuse.org checkout devel:tools/LIEF && cd $_
- Create Badge
Refresh
Refresh
Source Files
Filename | Size | Changed |
---|---|---|
LIEF-0.12.0.tar.gz | 0014424608 13.8 MB | |
LIEF-fix_library.patch | 0000000529 529 Bytes | |
LIEF-link_python.patch | 0000000551 551 Bytes | |
LIEF.changes | 0000007301 7.13 KB | |
LIEF.spec | 0000004420 4.32 KB |
Revision 8 (latest revision is 9)
Luigi Baldoni (alois)
accepted
request 965015
from
Luigi Baldoni (alois)
(revision 8)
- Update to version 0.12.0 ELF: * Added the support to insert and assign a `lief.ELF.SymbolVersionAuxRequirement` class * Enhance the ELF parser to support corner cases * New ELF Builder which is more efficient in terms of speed and in terms of number of segments added when modifying binaries. * Improved the reconstruction of the dynamic symbol table by sorting local symbols and non-exported symbols. It fixes a warning when parsing a modified binary with readelf. MachO: * The API to configure the MachO parser has been redesigned to provide a better granularity * Added support for the `LC_FILESET_ENTRY`. This command is usually found in kernel cache files. * `LIEF::MachO::Binary::get_symbol` now returns a pointer (instead of a reference). If the symbol can't be found, it returns a nullptr. * Add API to select a `~lief.MachO.Binary` class from a `~lief.MachO.FatBinary` class by its architecture. * Handle the `0x0D` binding opcode. * Fixed performances issues in the Mach-O parser. PE: * Adding `lief.PE.OptionalHeader.computed_checksum` that re-computes the `lief.PE.OptionalHeader.checksum`. * Enable to recompute the `~lief.PE.RichHeader` class. * Add support for PE's delayed imports. * `lief.PE.LoadConfiguration.reserved1` has been aliased to `lief.PE.LoadConfiguration.dependent_load_flags`. * `lief.PE.LoadConfiguration.characteristics` has been aliased to `lief.PE.LoadConfiguration.size`. * We updated the PE checks to support PE files that have a corrupted `lief.PE.OptionalHeader.magic`. DEX: * Added support for DEX's fields. Abstraction: * Abstract binary imagebase for PE, ELF and Mach-O (`lief.Binary.imagebase`). * Add `lief.Binary.offset_to_virtual_address` method. * Add PE imports/exports as *abstracted* symbols. Compilation & Integration: * Updated and modernized the CMake integration files. * Enable to use a pre-compiled version of spdlog. This feature aims at improving compilation time when developing on LIEF. * Enable to feed LIEF's dependencies externally (c.f. `lief_third_party`) * Replace the keywords `and`, `or`, `not` with `&&`, `||` and `!`. Dependencies: * Upgrade to MbedTLS 3.1.0 * Upgrade Catch2 to 2.13.8 * The different dependencies can be *linked* externally (cf. above and `lief_third_party`). Documentation: * New section about the errors handling (`err_handling`) and the upcoming deprecation of the exceptions. * New section about how to compile LIEF for debugging/developing. See: `lief_debug`. General Design: * LIEF now exposes Section/Segment's data through a `span` interface. Exceptions: * We started to refactor the API and the internal design to remove C++ exceptions. - Refresh LIEF-fix_library.patch
Comments 0