Commit Graph

20 Commits

Author SHA1 Message Date
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 f330fa887d Improve parser API
API Changes:
  - lief.parse() can takes a list of integer as entry
  - LIEF::MachO::parse can take a std::vector<uint8_t> as entry

Related to #49
2017-07-27 15:46:03 +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 114616b81d Return 0 instead of an exception when the imagebase can't be computed 2017-07-17 17:21:47 +02:00
Romain Thomas 8c7ceafa82 Handle encoding errors (resolve #59) 2017-07-15 15:10:47 +02:00
Adrien Guinet b69fc05107 fat_offset API for MachO binaries within FAT MachO 2017-07-15 14:48:41 +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 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 744c24518c Add the endianness in the abstraction layer (resolve #29) 2017-06-28 07:50:00 +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 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 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 306a191a03 First public release 2017-03-30 16:56:49 +02:00