31 Commits

Author SHA1 Message Date
Romain Thomas
4ef839c3d8 Enhance BinaryStream Interface 2018-04-15 08:55:23 +02: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
eab4a7614f Parse PE Code View (PDB 7.0)
Resolve: #138
2018-02-17 12:50:10 +01:00
Romain Thomas
ae4c2a95ee Fix #126 2017-12-11 08:55:40 +01:00
Romain Thomas
aa70e07791 Handle Python BytesIO, TextIO for LIEF' parsers
Resolve: #49
2017-11-01 16:44:39 +01: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
9503f2fc7b Add relocation in the Abstract layer
The abstracted attributes are:
  * Address: virtual address where the relocation occurs
  * Size: size in bits of the relocation

See: LIEF::Relocation / lief.Relocation and abstract_reader

Resolve: #53
2017-09-05 22:00:31 +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
5666351e07 Improve API of PE's OptionalHeader
API changes:
  - 'has_dll_characteristics' renamed to 'has'
  - 'add' to add a characteristic - added
  - 'remove' to remove a characteristic - added
  - operator+= to add a characteristic - added
  - operator-= to remove a characteristic - added
2017-08-01 16:11:39 +02:00
Romain Thomas
8e378c0e32 Fix some warnings 2017-07-19 08:20:18 +02:00
Romain Thomas
a89bc6df4f Add import hash function as well as ordinal resolver functions (PE part)
For PE binary it's now possible get the *imphash* value through the
lief.PE.get_imphash function. It's also possible to resolve ordinals
imports by using the lief.PE.resolve_ordinals

Resolve #54
2017-07-16 18:02:54 +02:00
Romain Thomas
8c7ceafa82 Handle encoding errors (resolve #59) 2017-07-15 15:10:47 +02:00
Romain Thomas
c0bb618307 Update doc 2017-07-01 18:35:10 +02:00
Romain Thomas
99896da627 Add 'PE.Symbol.has_section' python API 2017-06-30 17:24:40 +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
Jessy Campos
27c78a3715 Grouping src files and headers in order to display them correctly in VS Solution Explorer 2017-04-25 12:41:21 -04:00
Romain Thomas
c031d7accf Fix #20 2017-04-21 13:59:33 +02:00
Romain Thomas
3ffbb53850 Uniform API name for sections and segments.
ELF:
  - segment.data has been renamed to segment.content
2017-04-17 07:32:30 +02:00
Romain Thomas
d75fd098b9 Enclose paths within quotes (fix #9) 2017-04-05 15:33:18 +02:00
Romain Thomas
8ecba03288 Add 'has_section' and 'has_data_directory' methods to PE::TLS object 2017-04-04 22:25:17 +02:00
Romain Thomas
c6a3d198ad Fix error with unicode 2017-04-04 17:22:16 +02:00
Romain Thomas
dae0c81eda Fix typo (Algorithm) 2017-04-04 15:34:20 +02:00
Romain Thomas
306a191a03 First public release 2017-03-30 16:56:49 +02:00