Romain Thomas
4ef1bb845f
Add new formats: OAT, DEX, VDEX, ART
2018-05-04 12:46:28 +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
5a6448c00d
Explicit is better than implicit:
...
Add api to specify if the virtual address given to
LIEF::Binary::patch_address or
LIEF::Binary::get_content_from_virtual_address
is relative or absolute
2018-03-27 15:36:08 +02:00
Romain Thomas
4969a4c55a
Expose MachO SymbolCommand (LC_SYMTAB)
2018-03-19 16:46:48 +01:00
Francisco Falcon
eaf1713b81
LoadConfigurationV5 doc fix
...
Tiny documentation fix: LoadConfigurationV5 was showing the documentation for the LoadConfigurationV4 class.
2018-03-09 22:46:23 -03:00
Romain Thomas
5d56141061
Show Mach-O opcodes and export-trie
2018-03-02 09:24:59 +01:00
Romain Thomas
a40da3e3b4
Enable to export and create dynamic symbols
...
New API:
* Binary::{has_dynamic_symbol, has_static_symbol}
* Binary::{get_dynamic_symbol, get_static_symbol}
* Binary::add_exported_function
* Binary::export_symbol
* Symbol::visibility
* SymbolVersion::local / SymbolVersion::global
Resolve #112
2018-02-28 16:18:33 +01:00
Romain Thomas
d13db18214
Support the '.note.android.ident' section
2018-02-28 15:45:46 +01:00
Romain Thomas
49a2e40bf3
Add CODE_VIEW_SIGNATURES in the doc
2018-02-17 14:06:29 +01:00
Romain Thomas
eab4a7614f
Parse PE Code View (PDB 7.0)
...
Resolve : #138
2018-02-17 12:50:10 +01:00
Romain Thomas
463e471b33
Fix extra spaces
2018-02-15 09:06:47 +01:00
Romain Thomas
3e704e78c5
Add "ResourceDialogItem" in the Python PE documentation
...
Related to #139
2018-02-14 22:16:24 +01:00
Jakob Rieck
196994dc08
Parse the MachO LC_RPATH command
2017-12-15 00:14:00 +01:00
Romain Thomas
ba7dfeab39
Update doc
2017-11-01 20:34:20 +01:00
Romain Thomas
880b99aeef
Provide MachO::ParserConfig to parametrize the parsing.
...
Resolve : #105
2017-10-30 15:34:53 +01:00
Romain Thomas
ef95d0ab69
Add changelog and bump to v0.8.0
2017-10-14 21:16:32 +02:00
Romain Thomas
0234e3b8bb
Parse the PE Load Configuration structure
2017-10-06 07:55:58 +02: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
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
754b8afa2b
Add object (ELF::DynamicEntryFlags) for ELF's DT_FLAGS and DT_FLAGS_1
2017-08-01 15:22:01 +02:00
Romain Thomas
f721d02d91
Update doc
2017-08-01 10:18:16 +02:00
Romain Thomas
4600c2ba8d
Provide API to configure the LIEF's logger
...
API changes:
LIEF::Logger::{set_level, set_verbose_level...}
Resolve : #68
2017-07-31 15:16:02 +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
cbd1aed703
Update doc with ELF's relocations
2017-07-25 08:09:15 +02:00
Romain Thomas
9391238f11
Add the underlying executable format in the abstract layer
...
API changes (Python/C++):
* lief.Binary.format
* LIEF::ELF::Binary::format()
2017-07-22 08:23:17 +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
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
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
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
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
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
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
2ded57e676
Improve documentation
2017-04-29 10:45:26 +02:00
Romain Thomas
cb65fe95b0
Add missing documentation for GnuHash object
2017-04-06 13:42:19 +02:00
Romain Thomas
306a191a03
First public release
2017-03-30 16:56:49 +02:00