Commit Graph

177 Commits

Author SHA1 Message Date
Romain Thomas 678039cf44 Add missing enum 2018-12-16 17:57:57 +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 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
1orenz0 fcc75dd879 Parse PE debug data directory as a list of debug entries
PE's DATA_DIRECTORY_DEBUG does not define a single debug entry, but
a list of struct pe_debug entries (the number of entries is determined
by the data directory's size).

This commit reflect this layout by returning a vector<> when calling
PE.debug()
2018-11-29 09:16:34 +01:00
Romain Thomas 184074841b Drop Python 2.7 support. Add Python 3.7 support 2018-11-16 11:00:09 +01:00
Romain Thomas b5a08463ad Expose API to list functions found in a binary 2018-09-12 14:44:18 +02:00
Adrien Guinet 89d4de54c8 Fix git tag commmand to always work
Forward CRT on other targets
2018-08-29 13:38:27 +02:00
Adrien Guinet 4b03ac45e0 Remove LIEF_SHARED_LIB from cmake
Moreover, add macros to force the CRT usage when using MSVC.
This is based on the LLVM one.
2018-08-29 08:50:56 +02:00
Romain Thomas d394e0e58f Strip file for Release Build 2018-08-20 09:04:28 +02:00
Romain Thomas bce9ebe170 Add support for Android 9 2018-08-10 16:10:51 +02:00
Romain Thomas 04dddd3710 Fix alignment issue when removing a PE section 2018-08-10 15:16:29 +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 16595316fd Enable write on Fat Mach-O 2018-07-16 13:32:00 +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 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 a9f3cb8f9b Enable to add relocation associated with symbol
Resolve #184
2018-06-19 09:59:29 +02:00
Romain Thomas f4e2d81bfe Add Mach-O encryption info command 2018-06-08 16:39:11 +02:00
Romain Thomas 311c7951e6 Fix missing builder 2018-06-08 15:34:21 +02:00
Romain Thomas cc5617dd75 Fix missing dyldinfo 2018-06-08 15:23:03 +02:00
Romain Thomas 33a2af4b18 Enhance Python binding 2018-06-08 14:58:00 +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
Romain Thomas 4fcfba0cbf Enhance Dylib version API 2018-05-16 10:35:51 +02:00
Romain Thomas 68b0958a2a Set default python version to 3.5
Resolve: #127
2018-05-16 10:32:05 +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 f97751f075 Fix typo 2018-05-10 11:23:21 +02:00
Romain Thomas e7e0b4678b Update doc 2018-05-10 10:57:38 +02:00
Romain Thomas 3a381ca5fc Fix typo 2018-05-08 18:24:05 +02:00
Romain Thomas 8023aa2ce5 Update python doc 2018-05-07 07:57:07 +02:00
Romain Thomas 60c042fa6e Update OAT doc 2018-05-05 16:07:32 +02:00
Romain Thomas a47ff2ea66 Update OAT doc 2018-05-05 15:59:43 +02:00
Romain Thomas d3fe00cc48 Include modules according to cmake options 2018-05-05 11:02:41 +02:00
Romain Thomas 4ef1bb845f Add new formats: OAT, DEX, VDEX, ART 2018-05-04 12:46:28 +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 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 6676d6c91d Fix typo 2018-03-27 21:26:52 +02:00
Romain Thomas 5a6448c00d Explicit is better than implicit:
Add api to specify if the virtual address given to
LIEF::Binary::patch_address or
LIEF::Binary::get_content_from_virtual_address
is relative or absolute
2018-03-27 15:36:08 +02:00
Romain Thomas 4969a4c55a Expose MachO SymbolCommand (LC_SYMTAB) 2018-03-19 16:46:48 +01:00
Romain Thomas 46fa0e9747 Fix #139
API added:
  * PE::ResourceDialog::lang
  * PE::ResourceDialog::sub_lang
2018-03-18 18:16:19 +01:00
Romain Thomas 4e3e87eea4 Fix #136 2018-03-18 18:15:21 +01: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
Romain Thomas df3d269e23 Enhance ELF symbols 2018-03-07 12:51:28 +01:00