Romain Thomas
2a9b156f99
Abstract PIE
...
Resolve : #71
2017-08-01 17:57:38 +02:00
Romain Thomas
cbe8354847
Improve API of Mach-O's Header
...
API changes:
- 'has_flag' renamed to 'has'
- 'add' to add a flag - added
- 'remove' to remove a flag - added
- operator+= to add a flag - added
- operator-= to remove a flag - added
2017-08-01 16:32:49 +02:00
Romain Thomas
754b8afa2b
Add object (ELF::DynamicEntryFlags) for ELF's DT_FLAGS and DT_FLAGS_1
2017-08-01 15:22:01 +02:00
Romain Thomas
730d045e05
Enhance LIEF's ELF header
...
API Changes (Python / C++):
* lief.ELF.Header.{arm_flags_list, mips_flags_list, ppc64_flags_list, hexagon_flags_list} - Added
In python, one can do:
`` if lief.ELF.ARM_EFLAGS.EABI_VER5 in lief.ELF.Header: ...``
In C++ we added:
* LIEF::ELF::Header::has(ARM_EFLAGS, PPC64_EFLAGS, MIPS_EFLAGS...)
2017-08-01 09:35:55 +02:00
Romain Thomas
782295bfb8
Parser Dyld Info in depth (binding, rebases, exports)
...
Binding and rebase bytes codes are now parsed as well as export info
trie. Through ``RelocationDyld`` we created kind of *virtual* relocation
to modeling relocation process performed by Dyld
API Changes (Python / C++)
* MachO::RelocationDyld - Added
* MachO::RelocationObject - Added
* MachO::Relocation - Updated according to previous ones
* MachO::ExportInfo - Added
* MachO::BindingInfo - Added
* MachO::DyldInfo::rebase_opcodes - Added
* MachO::DyldInfo::bindings - Added
* MachO::DyldInfo::bind_opcodes - Added
* MachO::DyldInfo::weak_bind_opcodes - Added
* MachO::DyldInfo::lazy_bind_opcodes - Added
* MachO::DyldInfo::exports - Added
* MachO::DyldInfo::export_trie - Added
* MachO::Symbol
- Tied to MachO::BindingInfo (if any)
- Tied to MachO::ExportInfo (if any)
* MachO::Binary::relocations - Added
* MachO::Binary::has_symbol - Added
* MachO::Binary::get_symbol - Added
Resolve : #67
2017-07-30 17:29:09 +02:00
Romain Thomas
5b993117ed
Parse Mach-O 'Version Min' command
...
Resolve : #44
2017-07-27 15:50:55 +02:00
Romain Thomas
20a5f666de
Rename 'flag' to 'flags' (ELF's segment)
...
API changes:
[C++] LIEF::ELF::Segment::flag -> LIEF::ELF::Segment::flags
[Python] lief.ELF.Segment.flag -> lief.ELF.Segment.flags
Resolve : #63
2017-07-25 07:56:21 +02:00
Romain Thomas
d96971b0c3
Rename 'sizeof_section_header' to 'section_header_size' (ELF's header)
...
API changes:
[C] Elf_Header_t.sizeof_section_header -> Elf_Header_t.section_header_size
[C++] LIEF::ELF::Header::sizeof_section_header -> LIEF::ELF::Header::section_header_size
[Python] lief.ELF.sizeof_section_header -> lief.ELF.section_header_size
Resolve #62
2017-07-24 07:44:11 +02:00
Romain Thomas
6cea9bd235
Print resources in 'pe_reader.py'
2017-07-19 07:48:09 +02:00
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