Library to instrument executable formats
Project description
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++ and Python
Downloads / Install
First, make sure to have an updated version of setuptools:
$ pip install setuptools --upgrade
To install the latest version (release):
$ pip install lief
To install nightly build:
$ pip install [--user] --index-url https://lief.s3-website.fr-par.scw.cloud/latest lief
Getting started
Python
import lief
# ELF
binary = lief.parse("/usr/bin/ls")
print(binary)
# PE
binary = lief.parse("C:\\Windows\\explorer.exe")
print(binary)
# Mach-O
binary = lief.parse("/usr/bin/ls")
print(binary)
C++
#include <LIEF/LIEF.hpp>
int main(int argc, char** argv) {
// ELF
try {
std::unique_ptr<LIEF::ELF::Binary> elf = LIEF::ELF::Parser::parse("/bin/ls");
std::cout << *elf << '\n';
} catch (const LIEF::exception& err) {
std::cerr << err.what() << '\n';
}
// PE
try {
std::unique_ptr<LIEF::PE::Binary> pe = LIEF::PE::Parser::parse("C:\\Windows\\explorer.exe");
std::cout << *pe << '\n';
} catch (const LIEF::exception& err) {
std::cerr << err.what() << '\n';
}
// Mach-O
try {
std::unique_ptr<LIEF::MachO::FatBinary> macho = LIEF::MachO::Parser::parse("/bin/ls");
std::cout << *macho << '\n';
} catch (const LIEF::exception& err) {
std::cerr << err.what() << '\n';
}
return 0;
}
C (Limited API)
#include <LIEF/LIEF.h>
int main(int argc, char** argv) {
Elf_Binary_t* elf = elf_parse("/usr/bin/ls");
Elf_Section_t** sections = elf->sections;
for (size_t i = 0; sections[i] != NULL; ++i) {
printf("%s\n", sections[i]->name);
}
elf_binary_destroy(elf);
return 0;
}
Documentation
Contact
Mail: contact at lief.re
Gitter: lief-project
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for lief-0.15.1-cp313-cp313-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5af7dcb9c3f44baaf60875df6ba9af6777db94776cc577ee86143bcce105ba2f |
|
MD5 | d74506a3751f774309cf221120667aac |
|
BLAKE2b-256 | 892e41447b878b77d6f1f359888c1babfe5cce8c7525e16f9d847d5522977556 |
Hashes for lief-0.15.1-cp313-cp313-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d10e5b22e86bbf2d1e3877b604ffd8860c852b6bc00fca681fe1432f5018fe9 |
|
MD5 | b161432d5eaea8c2f16893dfa562b51d |
|
BLAKE2b-256 | d277893193b36b30cb2a9f1977994294dd71899015f1078db60e3563b7a175cd |
Hashes for lief-0.15.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcd489ff80860bcc2b2689faa330a46b6d66f0ee3e0f6ef9e643e2b996128a06 |
|
MD5 | 859b85739e3f21a3456eb7be78de559d |
|
BLAKE2b-256 | 5e52d1b7da1b5c879114e12181b3d95084cc0b8574c8dfc94e7315747c499544 |
Hashes for lief-0.15.1-cp313-cp313-manylinux_2_33_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a08b2e512a80040429febddc777768c949bcd53f6f580e902e41ec0d9d936b8 |
|
MD5 | 6cb1e71b20ef982e7ad9f0bf75a1aae3 |
|
BLAKE2b-256 | 9389cb9d18a91c5c631b0b0bb1498f4787503c33db92e9941383ebe197041180 |
Hashes for lief-0.15.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0616e6048f269d262ff93d67c497ebff3c1d3965ffb9427b0f2b474764fd2e8c |
|
MD5 | 50dd638be78b3a09909228fa1041809f |
|
BLAKE2b-256 | a6408dd03093980d3e0363d366c90fdf4e84a43a8b8cc9e5a80d21227f6207d3 |
Hashes for lief-0.15.1-cp313-cp313-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0119306b6a38759483136de7242b7c2e0a23f1de1d4ae53f12792c279607410 |
|
MD5 | 9478ab839acc8aa2032e2e1964532228 |
|
BLAKE2b-256 | 51a2922fb959fa09985170ea48b5d83f4e4b40e776da8bb50087d79c65a5bf5c |
Hashes for lief-0.15.1-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7580defe140e921bc4f210e8a6cb115fcf2923f00d37800b1626168cbca95108 |
|
MD5 | d85e9a463ec4a8d42c44b1da40050001 |
|
BLAKE2b-256 | ff4ae6ff3e23a5d8f531d21b2a80519645f8ad538c27485f2faabc8509e29948 |
Hashes for lief-0.15.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0805301e8fef9b13da00c33c831fb0c05ea892309230f3a35551c2dfaf69b11d |
|
MD5 | 02e7e338ede93ffce6ecc96ccad1f58d |
|
BLAKE2b-256 | 604780ae922fab72d5656bc5eaab2750a39e2b351816bc464db111b6811e673f |
Hashes for lief-0.15.1-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28bf0922de5fb74502a29cc47930d3a052df58dc23ab6519fa590e564f194a60 |
|
MD5 | f7d6e8ffdf97e48a9b4a1e1af89d84da |
|
BLAKE2b-256 | 1841569d821d7b87a8d38c279eddcaf90a782afd7476fa0b1c5f2febc391848a |
Hashes for lief-0.15.1-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db38619edf70e27fb3686b8c0f0bec63ad494ac88ab51660c5ecd2720b506e41 |
|
MD5 | 26dc2471885f4bce326ed0c15c95d6ab |
|
BLAKE2b-256 | d994a1ce1bb89e46c9a95f575ecc344baee9049a81952fb8c8f60c42d93a99b0 |
Hashes for lief-0.15.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2ec738bcafee8a569741f4a749f0596823b12f10713306c7d0cbbf85759f51c |
|
MD5 | 0a223b5258a2a5a112b92af3f38cf9f2 |
|
BLAKE2b-256 | bde8398583add15a3a74207624be6a853a30a986252440f19b4052022cea911a |
Hashes for lief-0.15.1-cp312-cp312-manylinux_2_33_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 864f17ecf1736296e6d5fc38b11983f9d19a5e799f094e21e20d58bfb1b95b80 |
|
MD5 | 1daf9136ecb9ed2d3dc1a5348672fc1c |
|
BLAKE2b-256 | 858e99c13dd8f7886275b5f4a6643382e870f8b192b0da1eb15e4b4a5303c240 |
Hashes for lief-0.15.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0f10d80202de9634a16786b53ba3a8f54ae8b9a9e124a964d83212444486087 |
|
MD5 | 090871e46bd4dcc95e58317ac20ecc38 |
|
BLAKE2b-256 | ad270ab4d3ee85674cc9ccae0d357e176c9690a21c7146e5b0d3cb819bb01504 |
Hashes for lief-0.15.1-cp312-cp312-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 536a4ecd46b295b3acac0d60a68d1646480b7761ade862c6c87ccbb41229fae3 |
|
MD5 | eeed91ee7af33c91a584f75f2dba57cd |
|
BLAKE2b-256 | 242848ac28d459420d5b964a5715d3094bf79ca20fa32c12570b53b26620960c |
Hashes for lief-0.15.1-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d780af1762022b8e01b613253af490afea3864fbd6b5a49c6de7cea8fde0443d |
|
MD5 | 98327880780e3929e2437604330865d1 |
|
BLAKE2b-256 | c9f089843b581eed17364aac8310e38bf669dc1431e93e97c93eda027ae281b9 |
Hashes for lief-0.15.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a96f17c2085ef38d12ad81427ae8a5d6ad76f0bc62a1e1f5fe384255cd2cc94 |
|
MD5 | aeade25561a5c230981678e0d16fd00b |
|
BLAKE2b-256 | 3b5f75cc1854bb81ff593039a1da06a1cdf98ff1bd53bb24f05a380243123ef2 |
Hashes for lief-0.15.1-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9b96a37bf11ca777ff305d85d957eabad2a92a6e577b6e2fb3ab79514e5a12e |
|
MD5 | 7810529da69ecb3d1de4575e131e6ddd |
|
BLAKE2b-256 | 29feac50b4554825884c57e846e236b40b5349bf203c2be6a0da095b00cba86f |
Hashes for lief-0.15.1-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbdcd70fd23c90017705b7fe6c716f0a69c01d0d0ea7a2ff653d83dc4a61fefb |
|
MD5 | eae81cc0134a53bca9e6e1fac904263e |
|
BLAKE2b-256 | ee1d870db82152bcfda4a24e534792a8b7d06faa8230fd226d16ab4a9185daea |
Hashes for lief-0.15.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 674b620cdf1d686f52450fd97c1056d4c92e55af8217ce85a1b2efaf5b32140b |
|
MD5 | 5e0cf7af4fff2395c4eddc4ce2ccdee9 |
|
BLAKE2b-256 | 08910ff1b6af8e54c181dd3c11cda210fe8a468ee145f1cb5096a7fac6248286 |
Hashes for lief-0.15.1-cp311-cp311-manylinux_2_33_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e11e046ad71fe8c81e1a8d1d207fe2b99c967d33ce79c3d3915cb8f5ecacf52 |
|
MD5 | c317502197303760035e533139b29f61 |
|
BLAKE2b-256 | 98039cefa36c418486cd6a3c42ad86b37f88e626ba7d0c7736eb0312ef2e2e11 |
Hashes for lief-0.15.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8634ea79d6d9862297fadce025519ab25ff01fcadb333cf42967c6295f0d057 |
|
MD5 | 863ad125a5f6b878e7d9d01e728702a2 |
|
BLAKE2b-256 | 18f9bec987608181e65e32f4d98b1c532b6b8e8b7f3dccf38937e3fcf0e7938b |
Hashes for lief-0.15.1-cp311-cp311-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e49bd595a8548683bead982bc15b064257fea3110fd15e22fb3feb17d97ad1c |
|
MD5 | 9b0d313914873bcba1c2228ca6f7174f |
|
BLAKE2b-256 | 8d955450a104cca7d0a935209dea831a1111be6465201147ea963ee840004a5c |
Hashes for lief-0.15.1-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0750c892fd3b7161a3c2279f25fe1844427610c3a5a4ae23f65674ced6f93ea5 |
|
MD5 | 6554e993815b11dff9ed0645b7ed0e82 |
|
BLAKE2b-256 | 090497c89095228590dffcdb8ba3c2a07eb85fd8d21def8a8d4a36fd2a90cfdc |
Hashes for lief-0.15.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20508c52de0dffcee3242253541609590167a3e56150cbacb506fdbb822206ef |
|
MD5 | 0f6893cfefae51cc932308d92eef495e |
|
BLAKE2b-256 | d447a70d0eb993d52df43192bb0edc4166f853ff5ac8d6a83329599d559edd99 |
Hashes for lief-0.15.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddf2ebd73766169594d631b35f84c49ef42871de552ad49f36002c60164d0aca |
|
MD5 | b402c93d120d13eaf1943e1cc3025132 |
|
BLAKE2b-256 | aecb845eda783c36993b5813128f36b2037cdc2211bc61c211ce0e259c497bc6 |
Hashes for lief-0.15.1-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38b9cee48f42c355359ad7e3ff18bf1ec95e518238e4e8fb25657a49169dbf4c |
|
MD5 | 0cecc71d470dd649ba94ee2bbb61bfe2 |
|
BLAKE2b-256 | b3733d58051ca9997876493f6b68d7f3f75c3835946204f57082222741cd73c2 |
Hashes for lief-0.15.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12e53dc0253c303df386ae45487a2f0078026602b36d0e09e838ae1d4dbef958 |
|
MD5 | be215576d82e9ec3eb4110fd4d041a6c |
|
BLAKE2b-256 | 2fe43f7a7c66937530f0d20263251edb5b485f1c3bcb44122101460346deb6a5 |
Hashes for lief-0.15.1-cp310-cp310-manylinux_2_33_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5852a246361bbefa4c1d5930741765a2337638d65cfe30de1b7d61f9a54b865 |
|
MD5 | 5ccaa83ef74cd96df270253fac932a41 |
|
BLAKE2b-256 | b1e5fa7c23b44e8fee2d50860fae1e8def63c11e8c48abd51cf5e991d89d74a9 |
Hashes for lief-0.15.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fb58efb77358291109d2675d5459399c0794475b497992d0ecee18a4a46a207 |
|
MD5 | bb0328bd01d8c1ad0612e04760945b59 |
|
BLAKE2b-256 | ee055c14f6b16769fd539637c832532cf7ee3e8176fb6239e00be231d4803dc5 |
Hashes for lief-0.15.1-cp310-cp310-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 517dc5dad31c754720a80a87ad9e6cb1e48223d4505980c2fd86072bd4f69001 |
|
MD5 | c25b5764a4687897be9eaf0d95d28ffa |
|
BLAKE2b-256 | 6095f2350fb438c55789568a00bca10550afe5cc4e2bea2887d38f492f037ceb |
Hashes for lief-0.15.1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84bf310710369544e2bb82f83d7fdab5b5ac422651184fde8bf9e35f14439691 |
|
MD5 | a24f0153bbacf7ab8cbf016e1eabd2ad |
|
BLAKE2b-256 | 590b6d6af31aae6d796291208871d42ad687677ea0fa2a0680608519c5c57e57 |
Hashes for lief-0.15.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a80246b96501b2b1d4927ceb3cb817eda9333ffa9e07101358929a6cffca5dae |
|
MD5 | 0df89e9314131c757a883ca0a6caa5ac |
|
BLAKE2b-256 | 09e6dd8f35f6e68470b6bdfaba50ac7f442be0b86264164a99ba1eaf176947e6 |
Hashes for lief-0.15.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 382a189514c0e6ebfb41e0db6106936c7ba94d8400651276add2899ff3570585 |
|
MD5 | da36904b2497fd72310e94f65f1f290c |
|
BLAKE2b-256 | b5dd6a635272c723682b79680275c7c50b8e88f2b4593b5b8620f9261521710e |
Hashes for lief-0.15.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de9453f94866e0f2c36b6bd878625880080e7e5800788f5cbc06a76debf283b9 |
|
MD5 | 80c6203aae9f59948e4d50002d9862e7 |
|
BLAKE2b-256 | d151f66d6390e25a75cc80a8ebc7e68f95d025fb4a32f0b873cf4ccebdfc3c29 |
Hashes for lief-0.15.1-cp39-cp39-manylinux_2_33_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 932f880ee8a130d663a97a9099516d8570b1b303af7816e70a02f9931d5ef4c2 |
|
MD5 | 7fbf4b76558a412a7e2d19e5117d722b |
|
BLAKE2b-256 | 9dbfe8634ce5f032efd8fef963fee7b10e9aab5f095d14a718eaefebea9fe3e8 |
Hashes for lief-0.15.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13285c3ff5ef6de2421d85684c954905af909db0ad3472e33c475e5f0f657dcf |
|
MD5 | 49233aa5323f5cd9d89ba47a218875ff |
|
BLAKE2b-256 | e36c53446960e067bc4be0733cb0edb03623b27ec9342ea1fd8d65702a825796 |
Hashes for lief-0.15.1-cp39-cp39-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa020f3ed6e95bb110a4316af544021b74027d18bf4671339d4cffec27aa5884 |
|
MD5 | e7a539c243ebc2b7313e5172aee6051f |
|
BLAKE2b-256 | 78d2b6ad4dab532379da76035e4a126015f142479bc2a6e78d0d7b44ac95ba2c |
Hashes for lief-0.15.1-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7044553cf07c8a2ab6e21874f07585610d996ff911b9af71dc6085a89f59daa |
|
MD5 | 2112bf072f0e2e1b3bd6906966f178a0 |
|
BLAKE2b-256 | 5a019c11a7fe49e2387e65ef6955ca78d29155fb7d58f96985c99bb5f2b8e161 |
Hashes for lief-0.15.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 785a3aa14575f046ed9c8d44ea222ea14c697cd03b5331d1717b5b0cf4f72466 |
|
MD5 | de97c0b3368859bb337a1669d96468bc |
|
BLAKE2b-256 | 49af268da910553d89dcd5f57341ca9541af25a2eadc1560145004ea85cff751 |
Hashes for lief-0.15.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a079a76bca23aa73c850ab5beb7598871a1bf44662658b952cead2b5ddd31bee |
|
MD5 | e7ed80dcc4daa66a2bbe8fa1961e05b5 |
|
BLAKE2b-256 | 46b324da6731ce3fff38116bacdadae04a9a71bfb9b95f4f92af2fc885e61be5 |
Hashes for lief-0.15.1-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82e6308ad8bd4bc7eadee3502ede13a5bb398725f25513a0396c8dba850f58a1 |
|
MD5 | 91d4424c7fdc96c7592897ee67e9001b |
|
BLAKE2b-256 | 055b9a236aa25a65adc926ada98d920b87ec9e4c5d5113d0c70219de5cc322d3 |
Hashes for lief-0.15.1-cp38-cp38-manylinux_2_33_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9217578f7a45f667503b271da8481207fb4edda8d4a53e869fb922df6030484 |
|
MD5 | 1bb91f2edbb89376607145548bd23243 |
|
BLAKE2b-256 | 0ac041d0cd05b11202176f10583eea91a4f0e05d9679cd22d5106234290a1051 |
Hashes for lief-0.15.1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dedeab498c312a29b58f16b739895f65fa54b2a21b8d98b111e99ad3f7e30a8 |
|
MD5 | e8d902d5cc94f34d7ef781e10788f1fa |
|
BLAKE2b-256 | 14f73e5c8fe33eb4063a287655de849bb7d32d5e8465e2820ef0cdd8db6e9679 |
Hashes for lief-0.15.1-cp38-cp38-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e732619acc34943b504c867258fc0196f1931f72c2a627219d4f116a7acc726d |
|
MD5 | 5e54f42cf1ec6a52e1a4dc5da03e38e3 |
|
BLAKE2b-256 | 47b5982ca4675a9d43d0fd093589984f4ffa28e3791176ce40dc1dd3205417e9 |
Hashes for lief-0.15.1-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ac3cd099be2580d0e15150b1d2f5095c38f150af89993ddf390d7897ee8135f |
|
MD5 | 6929139fbd8addbc87b774c75860ceaa |
|
BLAKE2b-256 | b7c2ae5ba18f4cd08af4fb213e892e3681e29f07ebfa36a971a46b59e71637ff |
Hashes for lief-0.15.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9757ff0c7c3d6f66e5fdcc6a9df69680fad0dc2707d64a3428f0825dfce1a85 |
|
MD5 | 856bdf1da7096ed1cf0e682c22f1ab34 |
|
BLAKE2b-256 | 15790acda2fcb8e039d8ce8a8e298930f25b01f343ee835601cd54de72a8840e |