Romain Thomas
7e88e2b2c0
Add function to check if a symbol can be removed
2019-02-18 14:17:08 +01:00
Romain Thomas
616d739da5
Enable to remove Mach-O symbols
2019-02-18 14:17:08 +01:00
Romain Thomas
6f967238fc
Introduce Mach-O Build Version command
...
New API:
LIEF::MachO::BuildVersion
LIEF::MachO::BuildToolVersion
LIEF::MachO::Binary::has_build_version
LIEF::MachO::Binary::build_version
2018-12-13 15:37:19 +01:00
Romain Thomas
b5a08463ad
Expose API to list functions found in a binary
2018-09-12 14:44:18 +02:00
Romain Thomas
16595316fd
Enable write on Fat Mach-O
2018-07-16 13:32:00 +02:00
Romain Thomas
918438c6be
Enable to remove sections using the abstract layer
2018-07-09 15:08:39 +02:00
Romain Thomas
406115c8d0
Enhance Mach-O modification
...
* Add load command
* Add sections
* Add segments
Resolve #46 (partially)
2018-06-27 14:44:42 +02:00
Romain Thomas
f4e2d81bfe
Add Mach-O encryption info command
2018-06-08 16:39:11 +02:00
Romain Thomas
33a2af4b18
Enhance Python binding
2018-06-08 14:58:00 +02:00
Romain Thomas
cd1cc457cf
Resolve #119 and enhance ELF Python bindings
2018-06-08 10:48:33 +02:00
Romain Thomas
4fcfba0cbf
Enhance Dylib version API
2018-05-16 10:35:51 +02:00
Romain Thomas
9e3b5b45f7
Support new Mach-O command:
...
* Segment split info
* Sub framework
* Dyld environment
2018-05-14 16:34:45 +02:00
Romain Thomas
a16e1c4d13
Expose DataInCode
2018-04-02 08:21:15 +02:00
Romain Thomas
9cadce30e7
Expose basic structure of code signature
2018-04-02 08:21:15 +02:00
Romain Thomas
237611f859
Expose the Dynamic symbol command
2018-03-28 16:14:56 +02:00
Romain Thomas
4969a4c55a
Expose MachO SymbolCommand (LC_SYMTAB)
2018-03-19 16:46:48 +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
5d56141061
Show Mach-O opcodes and export-trie
2018-03-02 09:24:59 +01:00
Romain Thomas
9d93cc5ec4
Update API for MachO RPath. Related to 27575527db
2018-01-18 14:41:48 +01:00
Jakob Rieck
196994dc08
Parse the MachO LC_RPATH command
2017-12-15 00:14:00 +01:00
Romain Thomas
aa70e07791
Handle Python BytesIO, TextIO for LIEF' parsers
...
Resolve : #49
2017-11-01 16:44:39 +01:00
Romain Thomas
880b99aeef
Provide MachO::ParserConfig to parametrize the parsing.
...
Resolve : #105
2017-10-30 15:34:53 +01:00
Romain Thomas
3602643f5d
Fix memory leaks in the MachO Python API and create FatBinary
...
API Changes:
LIEF::MachO::Parser won't return a 'std::vector' of MachO::Binary*
but a pointer to MachO::FatBinary object
It's a kind of wrapper on std::vector<MachO::Binary*>
2017-09-29 13:06:08 +02:00
Romain Thomas
accf47ebf2
Fix performances issues
...
Fix #94
2017-09-20 13:58:19 +02:00
Romain Thomas
23257830b2
Parse the MachO LC_THREAD/LC_UNIXTHREAD command
...
New object: MachO::ThreadCommand
Resolve : #89
2017-09-13 17:42:05 +02:00
Romain Thomas
8ecaab0a7c
Resolve #88
2017-09-07 22:23:57 +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
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
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