20 Commits

Author SHA1 Message Date
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
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
b5a08463ad Expose API to list functions found in a binary 2018-09-12 14:44:18 +02:00
Romain Thomas
04dddd3710 Fix alignment issue when removing a PE section 2018-08-10 15:16:29 +02:00
Romain Thomas
918438c6be Enable to remove sections using the abstract layer 2018-07-09 15:08:39 +02:00
Romain Thomas
33a2af4b18 Enhance Python binding 2018-06-08 14:58:00 +02:00
Romain Thomas
4ef839c3d8 Enhance BinaryStream Interface 2018-04-15 08:55:23 +02:00
Romain Thomas
0234e3b8bb Parse the PE Load Configuration structure 2017-10-06 07:55:58 +02:00
Romain Thomas
a4c69f7868 Rename getter from get_XXX to XXX
related to #66
2017-09-07 14:45:41 +02:00
Romain Thomas
66b4cd4550 Fix enums conflicts
Enums changes (C++/C):

ELF:
  * s/SECTION_TYPES/ELF_SECTION_TYPES/
  * s/SECTION_FLAGS/ELF_SECTION_FLAGS/
  * s/SYMBOL_TYPES/ELF_SYMBOL_TYPES/
  * s/SEGMENT_FLAGS/ELF_SEGMENT_FLAGS/

MachO:
  * s/SECTION_TYPES/MACHO_SECTION_TYPES/
  * s/SECTION_FLAGS/MACHO_SECTION_FLAGS/
  * s/SYMBOL_TYPES/MACHO_SYMBOL_TYPES/
  * s/SEGMENTS_FLAGS/MACHO_SEGMENTS_FLAGS/

PE:
  * s/SECTION_TYPES/PE_SECTION_TYPES/

Resolve #32
2017-08-21 09:23:40 +02:00
Romain Thomas
c0bb618307 Update doc 2017-07-01 18:35:10 +02:00
Romain Thomas
8ddc71d337 Parse PE Rich Header (resolve #15) 2017-06-27 09:12:40 +02:00
Romain Thomas
907e853b18 Fix some ambiguous API (fix #27)
PE::Binary::get_content_from_virtual_address can now take either:
  Absolute Virtual Address / Relative Virtual Address

In the PE Python API:
  * Merge 'PE.parse_from_raw' and 'PE.parse'
  * Change 'PE.Binary.section_from_virtual_address' to 'PE.Binary.section_from_rva'

In the PE C++ API:
  * Change 'Binary::section_from_virtual_address' to 'Binary::section_from_rva'
2017-06-25 15:11:47 +02:00
Romain Thomas
733053bc63 Enhance PE resources
* Improve Resource Manager
* Fix bug when rebuilding resources (aligment issue)
* Provide a Python API to access to the resource tree
* Pretty print lang/sublang of resources
* Parse resource dialog
* Parse resource icons
* Parse resource version
* Add tests on the resource builder
* Add tutorial (related to #28)
2017-06-11 16:47:16 +02:00
Romain Thomas
baa1b415ae Enable DOS stub rebuilding
Python API:

  * lief.PE.Binary.dos_stub property
  * lief.PE.Builder.build_dos_stub method

  C++ API:

  * LIEF::PE::Binary::dos_stub setter/getter
  * LIEF::PE::Builder::build_dos_stub method
2017-05-01 20:45:53 +02:00
Romain Thomas
b60b36a844 Enable PE hooking
* Add 'hook_function' to hook a PE imported function
  * Add tutorial on PE hooking (resolve #5)
  * Add 'PE::get_import' and 'PE::has_import' to retrieve import
2017-05-01 18:11:37 +02:00
Romain Thomas
2ded57e676 Improve documentation 2017-04-29 10:45:26 +02:00
Romain Thomas
c031d7accf Fix #20 2017-04-21 13:59:33 +02:00
Romain Thomas
306a191a03 First public release 2017-03-30 16:56:49 +02:00