46 Commits

Author SHA1 Message Date
Adrien Guinet
b69fc05107 fat_offset API for MachO binaries within FAT MachO 2017-07-15 14:48:41 +02:00
Romain Thomas
15937dee41 Fix typo 2017-07-13 08:53:52 +02:00
Adrien Guinet
9de39bf2d9 Add virtual_address_to_offset to MachO::Binary Python API 2017-07-12 07:38:33 -07:00
Romain Thomas
483b8dc2ea Parse relocations in ELF object file (Resolve #51)
New API:
  * lief.ELF.Binary.object_relocations - Object relocations
  * lief.ELF.Binary.relocations - All relocations(plt/got, dynamic, obj)
2017-07-11 20:09:19 +02:00
Romain Thomas
b7b0bde4d5 Add a *purpose* property to ELF relocations
Adding such property enables to store plt/got and dynamic relocations
in a same container. (related to #51)
2017-07-11 11:22:21 +02:00
Romain Thomas
0b4bb7d565 Update doc for Mach-O Source Version 2017-07-08 08:45:29 +02:00
Romain Thomas
c359778194 Parse LC_SOURCE_VERSION. Resolve #45 2017-07-07 21:21:22 +02:00
Romain Thomas
18d89198a0 Parse MachO LC_FUNCTION_STARTS 2017-07-07 08:43:42 +02:00
Romain Thomas
0e972d69ce Add Mach-O/dyld_info API 2017-07-05 13:43:28 +02:00
Romain Thomas
e2b81e0a8e Parse MachO Dyld Info, add Python API and update doc 2017-07-04 14:46:48 +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
25b9985c80 Add relocation size 2017-06-28 17:45:32 +02:00
Romain Thomas
744c24518c Add the endianness in the abstraction layer (resolve #29) 2017-06-28 07:50:00 +02:00
Romain Thomas
8ddc71d337 Parse PE Rich Header (resolve #15) 2017-06-27 09:12:40 +02:00
Romain Thomas
b37c608cbd Enhance MachO API
* Add API to retrieve UUID, Main, Dylinker command
* Add Python API for UUID, Main, Dylinker command
2017-06-25 19:34:45 +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
a57139afea Fix conflict between OSX uuid_t and LIEF uuid_t 2017-06-24 08:19:04 +02:00
Romain Thomas
0622118cbc Add API for Mach-O UUID object 2017-06-23 21:37:40 +02:00
Romain Thomas
c44a975913 Enhance 'macho_reader.py' 2017-06-23 21:37:23 +02:00
Romain Thomas
e4cd61e4bf Serialize PE object into json (resolve #18) 2017-06-14 10:17:45 +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
a8e1e40e1e Update doc 2017-06-11 16:21:30 +02:00
Romain Thomas
6d70333f64 Implement equals operators for ELF::GnuHash 2017-06-11 16:02:01 +02:00
Romain Thomas
37cd8aa3cc Resolve #36 2017-06-11 15:26:42 +02:00
Romain Thomas
d9c6b436b5 Parse ELF notes (resolve #35) 2017-06-11 11:00:41 +02:00
Romain Thomas
caceb3a527 Improve abstraction layer
* Enable bitness through ``LIEF::Header::is_32`` and
   ``LIEF::Header::is_64` (See #29)
  * Add ``modes`` ot the Python API
  * Abstract binary object type (executable, library...)
2017-05-06 17:45:04 +02:00
Romain Thomas
ffa51ada1d Bug fix in abstract layer for MachO binaries without entrypoint (library)
* MachO API: add ``has_entrypoint``
2017-05-06 17:06:18 +02:00
Romain Thomas
77d43f9db4 Fully handle section-less ELF binaries
* Fix #25
  * ELF `tiny` binaries are now handled (see #7)
  * Computation of dynamic symbols can be done with differents methods:
    hash table, sections and relocations. (See LIEF::ELF::DYNSYM_COUNT_METHODS)
  * ELF parser can be configured to use one of the DYNSYM_COUNT_METHODS
  * Improve tests
2017-05-06 16:18:02 +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
2a737b5d02 Change to version 'v2.1.1' 2017-04-29 20:23:26 +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
a7ef358f33 Disable '-Wno-macro-redefined' when not available 2017-04-16 10:40:30 +02:00
Romain Thomas
99042451d8 Add function to apply a permutation on the dynamic symbols 2017-04-07 11:06:04 +02:00
Romain Thomas
4df7c5bb84 Fix typo 2017-04-06 14:42:45 +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
044fa78513 Change pybind11 version 2017-04-04 19:01:02 +02:00
Romain Thomas
c6a3d198ad Fix error with unicode 2017-04-04 17:22:16 +02:00
Romain Thomas
e100c60417 Fix typos 2017-04-04 16:32:41 +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