John Reiser
|
937ae4c5e0
|
Avoid crash on outrageous fuzzed input
https://github.com/upx/upx/issues/828
modified: p_lx_elf.cpp
|
2024-06-04 15:43:11 -07:00 |
|
Markus F.X.J. Oberhumer
|
3495d1affd
|
all: minor cleanups
|
2024-05-28 10:26:39 +02:00 |
|
John Reiser
|
57763ca1e2
|
ELF stubs: go_lang different placement of DT_STRTAB, DT_SYMTAB
https://github.com/upx/upx/issues/825
modified: p_lx_elf.cpp
|
2024-05-21 17:14:21 -07:00 |
|
Markus F.X.J. Oberhumer
|
40b7e24fcc
|
src: introduce upx::max and friends; updates for clang-19 git snapshot
|
2024-05-15 14:06:05 +02:00 |
|
RainRat
|
62265a1bc9
|
fix typos
|
2024-05-07 01:41:41 -07:00 |
|
John Reiser
|
4c32a8e3d4
|
Fix attempted recovery from corrupted b_info
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66271&q=label%3AProj-upx
modified: p_lx_elf.cpp
|
2024-05-04 10:35:39 -07:00 |
|
John Reiser
|
548227a55b
|
mb_dt_offsets.clear() prevents undef from corrupted input
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66344&q=label%3AProj-upx
modified: p_lx_elf.cpp
|
2024-05-04 09:56:34 -07:00 |
|
John Reiser
|
811f66de84
|
Check gnu_shift during unpack
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66273&q=label%3AProj-upx
modified: p_lx_elf.cpp
|
2024-05-04 09:05:48 -07:00 |
|
John Reiser
|
0e6cef99a0
|
Guard against empty PT_NOTE
https://github.com/upx/upx/issues/817
modified: p_lx_elf.cpp
|
2024-05-01 10:09:52 -07:00 |
|
John Reiser
|
80e22a7e38
|
Fix --preserve-build-id
https://github.com/upx/upx/issues/815
modified: p_lx_elf.cpp
|
2024-04-27 08:21:48 -07:00 |
|
John Reiser
|
3949af6d3c
|
Unpacking detects and defends against malicious ELF
|
2024-03-28 07:48:55 -07:00 |
|
Markus F.X.J. Oberhumer
|
839a78f2e0
|
Better fix for previous commit to avoid out-of-bounds pointer.
|
2024-02-27 11:20:29 +01:00 |
|
John Reiser
|
680ce0a7af
|
find_dt_ndx defends against overrun
https://github.com/upx/upx/issues/790
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66344&q=label%3AProj-upx
modified: p_lx_elf.cpp
|
2024-02-26 14:32:02 -08:00 |
|
John Reiser
|
25aa0e2e46
|
un_asl_dynsym() should skip when !dynstr
https://github.com/upx/upx/issues/785
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66302
modified: p_lx_elf.cpp
|
2024-02-08 19:32:03 -08:00 |
|
John Reiser
|
d429801498
|
Avoid &file_image[file_size] because some Standards object
modified: p_lx_elf.cpp
|
2024-02-01 11:41:04 -08:00 |
|
John Reiser
|
dff3766501
|
Detect too-large bit-shift in elf_lookup of DT_GNUHASH
https://github.com/upx/upx/issues/782
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65776
modified: p_lx_elf.cpp
|
2024-01-27 13:38:25 -08:00 |
|
John Reiser
|
ac72c02793
|
check nbucket earlier in DT_HASH on ELF
https://github.com/upx/upx/issues/780
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66079
modified: p_lx_elf.cpp
|
2024-01-27 11:42:25 -08:00 |
|
John Reiser
|
69c51eee4d
|
better checking of DT_STRSZ for ELF
https://github.com/upx/upx/issues/779
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66064
modified: p_lx_elf.cpp
modified: p_lx_elf.h
|
2024-01-27 11:11:07 -08:00 |
|
John Reiser
|
ff5a4eeb96
|
ELF versus --brute: addStubEntrySections() needs ph_forced_method()
https://github.com/upx/upx/issues/770
modified: p_lx_elf.cpp
|
2024-01-25 17:17:32 -08:00 |
|
John Reiser
|
b48f870701
|
Detect circular DT_HASH and DT_GNUHASH lookup
https://github.com/upx/upx/issues/775
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65811&q=label%3AProj-upx
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65840&q=label%3AProj-upx
|
2024-01-25 15:05:53 -08:00 |
|
John Reiser
|
10807ebdc2
|
Unpack 8-byte b_info only if (ph.version <= 11): 2001 or earlier
*x86 only: .e_entry too low
https://github.com/upx/upx/issues/774
modified: p_lx_elf.cpp
|
2024-01-25 09:06:46 -08:00 |
|
John Reiser
|
d615985b8a
|
elf_find_table_size() did not check for empty table
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65765&q=label%3AProj-upx
https://github.com/upx/upx/issues/771
modified: p_lx_elf.cpp
|
2024-01-18 19:11:12 -08:00 |
|
John Reiser
|
d3e780d617
|
Unpacking ELF requires e_phnum at least 2
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65535
https://github.com/upx/upx/issues/763
modified: p_lx_elf.cpp
|
2024-01-10 14:07:58 -08:00 |
|
John Reiser
|
d549c2b5c9
|
More care when recovering from slid b_info
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65531
https://github.com/upx/upx/issues/762
modified: p_lx_elf.cpp
|
2024-01-10 13:38:18 -08:00 |
|
John Reiser
|
553fc9b1fb
|
invert_pt_dynamic: Compilers differ, unsigned vs. signed
modified: p_lx_elf.cpp
|
2024-01-10 10:33:33 -08:00 |
|
John Reiser
|
3dca1175e5
|
invert_pt_dynamic() needs better checking for malformed input
https://github.com/upx/upx/issues/759
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65510
modified: p_lx_elf.cpp
|
2024-01-10 09:41:12 -08:00 |
|
Markus F.X.J. Oberhumer
|
47fc230893
|
all: welcome 2024
|
2024-01-03 17:47:25 +01:00 |
|
John Reiser
|
ed2633bf95
|
Honor .p_align <= 64K; else assume 4K is also available
https://github.com/upx/upx/issues/737
modified: p_lx_elf.cpp
|
2023-11-26 11:46:12 -08:00 |
|
Markus F.X.J. Oberhumer
|
4f0f977f04
|
CI updates and cleanups
|
2023-11-03 17:52:46 +01:00 |
|
Markus F.X.J. Oberhumer
|
e964d4acf3
|
src/util: change TriBool logic to use a bool template parameter
|
2023-10-31 12:24:44 +01:00 |
|
John Reiser
|
d6d5e7ae3d
|
For Android emulator: align i386 LEXEC020 binfo
modified: src/stub/src/i386-linux.elf-entry.S
modified: src/p_lx_elf.cpp
modified: src/stub/i386-linux.elf-entry.h
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
|
2023-09-28 12:02:28 -07:00 |
|
John Reiser
|
854988bc5f
|
Detect AlreadyPacked even when trailing PackHeader has been lopped.
This is heuristic, but strong.
https://github.com/upx/upx/issues/712
modified: p_lx_elf.cpp
modified: p_unix.h
|
2023-09-21 14:12:18 -07:00 |
|
Markus F.X.J. Oberhumer
|
62dbf8485f
|
src: sort cleanups
|
2023-09-04 07:28:48 +02:00 |
|
John Reiser
|
b526eed346
|
Detect "no Shdrs" earlier when already packed
https://github.com/upx/upx/issues/699
modified: p_lx_elf.cpp
|
2023-08-23 19:52:35 +02:00 |
|
John Reiser
|
59c6a71b72
|
More use of ph_forced_method()
modified: p_lx_elf.cpp
|
2023-08-23 19:52:35 +02:00 |
|
John Reiser
|
bfb5ea50a9
|
Temporary
modified: p_lx_elf.cpp
|
2023-08-23 19:52:35 +02:00 |
|
John Reiser
|
149d84edca
|
--brute versus forced_method(ph.method)
https://github.com/upx/upx/issues/694 (partial)
modified: p_lx_elf.cpp
|
2023-08-23 19:52:35 +02:00 |
|
Markus F.X.J. Oberhumer
|
b9bf81d548
|
src/p_lx_elf.cpp: init o_binfo to avoid crash with MSAN build
This should be double-checked by @jreiser
|
2023-08-16 22:23:28 +02:00 |
|
Markus F.X.J. Oberhumer
|
a9ac4b5e23
|
src: introduce type tribool
|
2023-08-15 14:44:50 +02:00 |
|
Markus F.X.J. Oberhumer
|
777d4f5279
|
src: refactoring: create packhead.h and move some methods
|
2023-08-11 03:57:20 +02:00 |
|
Markus F.X.J. Oberhumer
|
757401dd0c
|
CI and spell checks
|
2023-08-09 13:08:38 +02:00 |
|
John Reiser
|
75e153dd99
|
More care in ::forward_Shdrs() and ::pack4()
Also, de-compressing arm64 shlib restores .init_array[0],
although supposedly *_RELATIVE relocation should overwrite.
https://github.com/upx/upx/issues/693
modified: p_lx_elf.cpp
modified: p_lx_elf.h
|
2023-08-04 11:52:58 -07:00 |
|
John Reiser
|
3a16d4a12e
|
Spell check; No-Functional-Change
modified: p_lx_elf.cpp
|
2023-07-31 06:06:31 -07:00 |
|
John Reiser
|
41e9f7985f
|
forward_Shdrs: elfout for main, lowmem for shlib
Especially Android.
https://github.com/upx/upx/issues/680
modified: p_lx_elf.cpp
modified: p_lx_elf.h
|
2023-07-29 13:43:33 -07:00 |
|
John Reiser
|
905bfacf44
|
Pacify clang-tidy
|
2023-07-26 17:21:39 -07:00 |
|
Markus F.X.J. Oberhumer
|
053e95033f
|
all: improve C++ static analyzers
|
2023-07-26 22:28:47 +02:00 |
|
John Reiser
|
745fef7425
|
fpad4, fpad8, and _Shdr hacking should guard against (!fo)
Also pacify some clang scan-build complaints.
modified: p_lx_elf.cpp
|
2023-07-26 07:27:12 -07:00 |
|
John Reiser
|
c9d625a237
|
Use 'elfout' for changing ElfXX_Ehdr
https://github.com/upx/upx/issues/688
modified: p_lx_elf.cpp
|
2023-07-26 07:15:22 +02:00 |
|
John Reiser
|
2684e815e0
|
Fix use of memfd_create for shlib stubs, espcially Android
Also relocation of init_array[0] for Elf32 shlib.
https://github.com/upx/upx/issues/220
https://github.com/upx/upx/issues/609
https://github.com/upx/upx/issues/680
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-linux.elf-so_main.c
modified: p_lx_elf.cpp
modified: stub/src/arm.v4a-linux.elf-so_fold.S
modified: stub/src/arm64-linux.elf-so_entry.S
modified: stub/src/arm64-linux.elf-so_fold.S
modified: stub/src/i386-linux.elf-so_fold.S
modified: stub/amd64-linux.elf-so_fold.h
modified: stub/arm.v4a-linux.elf-so_fold.h
modified: stub/arm.v5a-linux.elf-so_fold.h
modified: stub/arm64-linux.elf-so_entry.h
modified: stub/arm64-linux.elf-so_fold.h
modified: stub/i386-linux.elf-so_fold.h
modified: stub/tmp/amd64-linux.elf-so_fold.bin.dump
|
2023-07-26 07:15:22 +02:00 |
|
John Reiser
|
672d69c68a
|
Fix unpacking of upx-3.94-armeb_linux/upx
Getting past the code of the stub must deal with variances
between released versions.
modified: p_lx_elf.cpp
|
2023-07-18 16:56:39 -07:00 |
|