109 Commits

Author SHA1 Message Date
Romain Thomas b2b7fb96ec Add support for extensions. 2024-07-13 07:51:52 +02:00
Romain Thomas 9da2466609 Improve the LIEF Python build system by using pyproject.toml
- It also provides typing info (close #650)
- Enhance the test suite
- Remove deprecated PE functions
2023-02-19 20:19:03 +01:00
Romain Thomas 969411f8ef Welcome 2023 2023-01-03 10:38:09 +01:00
Romain Thomas e1a8244b92 Enhance Mach-O's builder and add support for recent LC commands 2022-04-16 15:10:56 +02:00
Romain Thomas 724cf995f3 Check if the binary is None 2022-03-01 06:34:41 +01:00
Romain Thomas ba54ea632b Add support for PE delayed imports
Resolve #664
2022-03-01 06:18:44 +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
Romain Thomas 2cf5ab2917 Better support of Mach-O exported symbols 2022-01-15 11:37:15 +01:00
Romain Thomas 92812dfe2e Redesign the configuration of the MachO parser 2021-12-18 12:05:30 +01:00
Romain Thomas dc2425a314 Fix API 2021-09-25 20:19:29 +02:00
Romain Thomas 3b7b5a738d Enhance relocation output 2021-04-03 19:38:00 +02:00
Daniel Firer b43d3fd6c8 Add support for DEX fields 2021-02-15 18:33:31 +01:00
Romain Thomas 6720ed2385 Update copyright 2021-01-16 18:17:17 +01:00
Romain Thomas 9b49d5d4ab Fix test 2021-01-16 09:44:51 +01:00
Romain Thomas e6c606e78a Update tests 2021-01-16 09:44:51 +01:00
Romain Thomas d29a74996b Process PKCS #9 counter signature and enhance signature verification 2021-01-16 09:44:51 +01:00
rthomas 634c2fc98e Enhance PE Authenticode 2021-01-16 09:44:51 +01:00
rthomas 1364f22c78 Improve logging interface 2020-11-09 21:02:50 +01:00
rthomas d6753b17c5 Fix error 2020-10-10 11:01:05 +02:00
rthomas 2e65a94b7c Export binding's original offset 2020-10-09 18:42:52 +02:00
Romain Thomas eeddc38393 Handle PE forwarded exports
Resolve: #307
2019-12-10 06:33:48 +01:00
rthomas 4105c31f61 Missing import 2019-11-08 16:05:59 +01:00
Andrew Williams 20f46e74a3 Unify SignerInfo issuer field format (#319)
* Unify SignerInfo issuer field format

This makes it so that the SignerInfo issuer field has the same
format as the issuer fields in each x509 cert, so the two can
be more easily compared.

Also, this commit adds '0x' in front of the Data Directory
RVAs and sizes to make it more clear that the values are printed
in hex.

* Add missing include in SignerInfo.cpp

* Address Codacy feedback and minor change to text

The serial number of the signing certificate will now be
printed as 'Serial Number' instead of 'Issuer Serial Number'
since the latter is a bit confusing (the serial number in
the SignerInfo section is the serial number of the certificate
that actually signed the executable)

* Update python pe_reader example based on issuer changes
2019-07-25 11:38:42 +02:00
Romain Thomas 7ff0859879 Fix terminal columns 2019-06-23 10:20:21 +02:00
Cédric Tessier 9fc3a8a433 Add coredump support in LIEF 2019-04-18 07:17:46 +02:00
Romain Thomas 8d7ec26a93 Add ELF ABI Version 2018-12-30 20:27:53 +01:00
1orenz0 3537440b8d Add support to parse POGO debug entries 2018-12-16 16:34:12 +01:00
Romain Thomas 6f967238fc Introduce Mach-O Build Version command
New API:
  LIEF::MachO::BuildVersion
  LIEF::MachO::BuildToolVersion

  LIEF::MachO::Binary::has_build_version
  LIEF::MachO::Binary::build_version
2018-12-13 15:37:19 +01:00
Romain Thomas decb8621f8 Enhancement 2018-10-01 10:40:58 +02:00
Romain Thomas b5a08463ad Expose API to list functions found in a binary 2018-09-12 14:44:18 +02:00
Romain Thomas 2d603ede82 Move from fatal to error 2018-08-12 10:55:32 +02:00
Romain Thomas 1f875dbea8 Fix error 2018-08-10 11:15:49 +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 16595316fd Enable write on Fat Mach-O 2018-07-16 13:32:00 +02:00
Romain Thomas 9268a35c68 Bug fix: Exit too early 2018-07-16 08:58:26 +02:00
Romain Thomas 406115c8d0 Enhance Mach-O modification
* Add load command
  * Add sections
  * Add segments

Resolve #46 (partially)
2018-06-27 14:44:42 +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 f4e2d81bfe Add Mach-O encryption info command 2018-06-08 16:39:11 +02:00
Romain Thomas 163cd3bcc9 Expose ELF relocation info 2018-06-06 14:13:07 +02:00
Romain Thomas 4fcfba0cbf Enhance Dylib version API 2018-05-16 10:35:51 +02:00
Romain Thomas 9e3b5b45f7 Support new Mach-O command:
* Segment split info
  * Sub framework
  * Dyld environment
2018-05-14 16:34:45 +02:00
Romain Thomas 5d9645847b Change logging level from DEBUG to INFO 2018-05-10 10:57:38 +02:00
Romain Thomas 4ef1bb845f Add new formats: OAT, DEX, VDEX, ART 2018-05-04 12:46:28 +02:00
Romain Thomas db26017872 Remove debug message 2018-04-23 09:37:41 +02:00
Romain Thomas 4ef839c3d8 Enhance BinaryStream Interface 2018-04-15 08:55:23 +02:00
Romain Thomas a16e1c4d13 Expose DataInCode 2018-04-02 08:21:15 +02:00
Romain Thomas 9cadce30e7 Expose basic structure of code signature 2018-04-02 08:21:15 +02:00
Romain Thomas 237611f859 Expose the Dynamic symbol command 2018-03-28 16:14:56 +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