173 Commits

Author SHA1 Message Date
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
Romain Thomas
5d56141061 Show Mach-O opcodes and export-trie 2018-03-02 09:24:59 +01:00
Romain Thomas
a40da3e3b4 Enable to export and create dynamic symbols
New API:

  * Binary::{has_dynamic_symbol, has_static_symbol}
  * Binary::{get_dynamic_symbol, get_static_symbol}
  * Binary::add_exported_function
  * Binary::export_symbol

  * Symbol::visibility
  * SymbolVersion::local / SymbolVersion::global

Resolve #112
2018-02-28 16:18:33 +01:00
Romain Thomas
d13db18214 Support the '.note.android.ident' section 2018-02-28 15:45:46 +01:00
Romain Thomas
1418272c2c Expose item iterator 2018-02-19 09:32:01 +01:00