32 Commits

Author SHA1 Message Date
Romain Thomas
b9ccec798d Split symbols printing and print Import/Export 2017-07-18 10:31:47 +02:00
Romain Thomas
29c8157ecc Parse Mach-O relocations and add MachO API to retrieve section from name
API Update:
  lief.MachO.Section.relocations - to access to the relocations
  lief.MachO.binary.get_section - Get section from name
  lief.MachO.binary.has_section -Check if section with given name exists

Resolve #57
2017-07-17 17:27:28 +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
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
44d5df39e8 Remove path 2017-07-10 23:35:17 +02:00
Romain Thomas
c359778194 Parse LC_SOURCE_VERSION. Resolve #45 2017-07-07 21:21:22 +02:00
Romain Thomas
ba9be1f63f Handle exceptions 2017-07-07 16:25:14 +02:00
Romain Thomas
18d89198a0 Parse MachO LC_FUNCTION_STARTS 2017-07-07 08:43:42 +02:00
Romain Thomas
f7cc518dcf Add dyld info to macho_reader 2017-07-06 18:20:22 +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
64b0ddf769 Add changelog 2017-07-01 18:38:43 +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
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
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
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
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
d8cddd6932 Remove useless code 2017-04-26 14:14:43 +02:00
Romain Thomas
4dcf824350 Disable 'program_name' due to an error in the PE Authenticode parser (related to #3) 2017-04-05 16:32:58 +02:00
Romain Thomas
d75fd098b9 Enclose paths within quotes (fix #9) 2017-04-05 15:33:18 +02:00
Romain Thomas
a8565505e6 Fix unicode problem 2017-04-05 08:25:46 +02:00
Romain Thomas
46a9017b55 Fix unicode error with Python 2.7 2017-04-04 23:04:18 +02:00
Romain Thomas
babf69240b Don't use section's entry size to compute the number of symbols 2017-04-04 16:58:14 +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