mirror of
https://github.com/lief-project/LIEF
synced 2026-06-08 15:30:44 +00:00
259bf7091f
* 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
About
=====
The purpose of this project is to provide a cross platform library that can parse, modify and
abstract ELF, PE and MachO formats.
Main features:
* **Parsing**: LIEF can parse ELF, PE, MachO, OAT, DEX, VDEX, ART 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++, Python and Rust
LIEF Extended:
* DWARF/PDB Support
* Objective-C Metadata
* dyld shared cache
Checkout: https://lief.re/doc/latest/extended/intro.html for the details
Getting Started
================
.. code-block:: console
$ pip install lief
.. code-block:: python
import lief
elf = lief.ELF.parse("/bin/ls")
for section in elf.sections:
print(section.name, len(section.content))
pe = lief.PE.parse("cmd.exe")
for imp in pe.imports:
print(imp.name)
fat = lief.MachO.parse("/bin/dyld")
for macho in fat:
for sym in macho.symbols:
print(sym)
Documentation
=============
* `Main documentation <https://lief.re/doc/latest/index.html>`_
* `API <https://lief.re/doc/latest/api/python/index.html>`_
Contact
=======
* **Mail**: contact at lief.re
* **Discord**: `LIEF <https://discord.gg/jGQtyAYChJ>`_
Authors
=======
Romain Thomas `@rh0main <https://x.com/rh0main>`_
----
LIEF is provided under the `Apache 2.0 license <https://github.com/lief-project/LIEF/blob/0.15.1/LICENSE>`_