781 Commits

Author SHA1 Message Date
rthomas
da371b3780 Fix const-ness 2020-05-23 20:46:35 +02:00
Romain
26ae54a175
Merge pull request #413 from JanuszL/optimization
This PR introduces several performance optimizations for the binary write/build process
2020-05-22 10:14:10 +02:00
Janusz Lisiecki
1e0c4e81d4 This PR introduces several performance optimizations for the binary write/build process
- it changes the way how the number of symbols is reduced and how offsets to names are calculated.
  Instead of n^2 algorithms, it introduces nlog(n) algorithm.
  When the symbols optimization step is performed map<symbol_name, offset_to_name>
  is created so it saves another n^2 pass
- a couple of performance improvements to filter_iterator - from pre to post incrementation
  to save an unneeded copy, memoization of end iterator as the compiler cannot do it on its own
  and recreates it every loop iteration, simplified construction of the end iterator
  on the test binary that has a couple of hundreds of MB, it reduces the execution time of
  elf_add_section example form 20 minutes to a couple of seconds
- adds an ability to modify single value inplace in the sectiton to save coying it just to do that
- the reason behind this patch is to use LIEF as a patchelf replacement so the performance
  is one of the factors

Signed-off-by: Janusz Lisiecki <jlisiecki@nvidia.com>
2020-05-22 02:29:59 +02:00
rthomas
a2a1ce6fe3 Fix #412 2020-05-21 18:38:30 +02:00
rthomas
3cee05646c Fix typo 2020-05-20 16:30:38 +02:00
Romain
2ed4dd0157
Merge pull request #417 from kohnakagawa/fix/empty_fixed_file_version_entry
Fix to parse PE files that have empty fixed_file_version entry
2020-05-20 16:27:23 +02:00
Koh M. Nakagawa
2166c91773 fix to parse empty fixed_file_version entry 2020-05-20 16:46:11 +09:00
rthomas
b99e791be6 Prefer unordered_map 2020-05-11 09:44:54 +02:00
rthomas
6fd553114d Update references 2020-05-11 09:33:03 +02:00
rthomas
8671cc0a97 Fix changelog 2020-05-11 09:25:03 +02:00
Romain
cf2f92fc65
Merge pull request #408 from kohnakagawa/fix/debug_type
add IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS
2020-05-11 09:18:09 +02:00
Koh M. Nakagawa
cd05f34bae add IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS 2020-05-11 09:16:59 +02:00
Romain
e4a3659297
Merge pull request #407 from kohnakagawa/fix/add_json_records
Fix to show some missing JSON records
2020-05-11 08:55:36 +02:00
Koh M. Nakagawa
541c38c9e8 add some json records 2020-05-11 08:53:38 +02:00
Romain
b023698df8
Merge pull request #409 from benjamb/bundle-license
Add LICENSE to MANIFEST.in
2020-05-11 08:51:23 +02:00
Ben Brown
37f38b3a42 Add LICENSE to MANIFEST.in 2020-05-06 10:29:40 +01:00
Romain
84ffe2d478
Merge pull request #405 from kohnakagawa/fix/reloc_base_types
add missing RELOCATIONS_BASE_TYPES
2020-05-03 20:18:24 +02:00
rthomas
a04eb8888a Enhancement 2020-05-03 11:15:36 +02:00
Koh M. Nakagawa
c03125045e add missing RELOCATIONS_BASE_TYPES 2020-05-03 11:15:36 +02:00
rthomas
798950d874 Fix memcpy 2020-05-03 11:14:07 +02:00
rthomas
c0d028b4eb Fix symbol size 2020-05-03 10:51:52 +02:00
rthomas
9b2420d2e4 Fix uninitialized variable 2020-05-02 11:51:23 +02:00
Romain
9a64ced220
Merge pull request #406 from kohnakagawa/fix/machine_type_enum
fix machine type enum
2020-05-01 19:29:20 +02:00
Koh M. Nakagawa
6ee808a1e4 fix machine type enum 2020-05-01 10:01:19 +09:00
rthomas
1400144455 Fix python path 2020-04-26 19:29:31 +02:00
rthomas
59fb3b5da5 Update travis 2020-04-26 16:56:07 +02:00
rthomas
faf2067f08 Update travis 2020-04-26 14:45:39 +02:00
Romain
f96d95d718
Merge pull request #400 from intezer/master
feature: release the GIL on parse
2020-04-26 11:53:14 +02:00
thetufik
2c85678fb6 feature: release the GIL on parse 2020-04-21 16:54:23 +03:00
Romain
ec8ed4d842
Merge pull request #394 from kohnakagawa/fix/README
fix C++ sample in README
2020-04-15 06:08:09 +02:00
Romain
1deb7f945d
Merge pull request #393 from suletm/patch-1
To fix documentation issue #392
2020-04-15 06:07:52 +02:00
Koh M. Nakagawa
ee7ccb2863 fix C++ sample in README 2020-04-11 14:07:59 +09:00
suletm
7daff3bf9b
To fix documentation issue #392
1. Inconsistent function name fix.
2. Compilation fix as discussed in #392
2020-04-10 20:12:25 -07:00
rthomas
8ac569cb52 Update travis 2020-04-10 14:48:57 +02:00
Romain
43b65f616b
Merge pull request #389 from kohnakagawa/fix/resource-parse-bug
fix resource parsing bug
2020-04-07 13:57:13 +02:00
Romain
5d45f8c6cb
Merge pull request #385 from aeflores/always-parse-section-relocs
parse section relocations but do not parse dynamic relocations twice.
2020-04-07 13:56:54 +02:00
rthomas
b57f32333a Consider relative offset when parsing EH frame.
Related to #385
2020-04-07 09:28:48 +02:00
Koh Nakagawa
a7254d1ba9 fix resource parsing bug 2020-04-05 15:49:17 +09:00
Antonio Flores Montoya
fe7c725f3b remove leftover debugging code. 2020-03-23 08:59:03 -04:00
Antonio Flores Montoya
594ea3b356 add test for binary with all relocations. 2020-03-23 08:53:25 -04:00
aeflores
6c53646bb7 parse section relocations but do not parse dynamic relocations twice. 2020-03-14 12:06:56 -04:00
Romain
1014ba0ad1
Merge pull request #384 from lief-project/revert-382-always-parse-section-relocs
Revert "Binaries generated with --emit-relocs have dynamic and section relocations"
2020-03-14 07:37:01 +01:00
Romain
e39f939899
Revert "Binaries generated with --emit-relocs have dynamic and section relocations" 2020-03-14 07:36:23 +01:00
Romain
f210e6ba9b
Merge pull request #382 from aeflores/always-parse-section-relocs
Binaries generated with --emit-relocs have dynamic and section relocations
2020-03-14 07:35:54 +01:00
Antonio Flores Montoya
a8293b4343 Binaries generated with --emit-relocs have dynamic and section relocations. 2020-03-09 16:47:43 -04:00
rthomas
33d1b894c0 Fix collisions in string optimization 2020-01-04 07:59:13 +01:00
rthomas
0b205665c3 Add package dir 2019-12-27 06:21:51 +01:00
Romain
fb789a8e9a
Merge pull request #368 from newgre/master
Use ifstream::read method to read file data instead of std::copy.
2019-12-15 10:53:28 +01:00
newgre
89bd542833 Use ifstream::read method to read file data instead of std::copy.
Improves the time to load and parse a large executable (~100MB) on my machine from ~1000ms to ~400ms.
2019-12-14 23:29:18 +01:00
Romain
a26ae60e83
Merge pull request #365 from mingwandroid/FixMissing-typeinfo-symbol
Export BuildToolVersion and fix typo
2019-12-11 07:46:31 +01:00