Markus F.X.J. Oberhumer
8bf49aa4f2
all: prepare for release
2025-02-20 16:02:44 +01:00
Markus F.X.J. Oberhumer
b8079bb6eb
CI updates
2025-02-19 16:45:44 +01:00
John Reiser
5dcad7a387
Mention ELF work
...
modified: NEWS
2025-02-18 08:26:30 -08:00
John Reiser
83e5f74b3d
Compiler different type checking
...
modified: p_lx_elf.cpp
2025-02-17 09:39:55 -08:00
John Reiser
3d402134f5
Better checking of DT_GNU_HASH during de-compression
...
https://issues.oss-fuzz.com/u/1/issues/396167884
modified: p_lx_elf.cpp
2025-02-17 09:14:19 -08:00
John Reiser
b8b64a3e0f
Fuzz nuisance: wild p_info for de-compression
...
https://issues.oss-fuzz.com/u/1/issues/383200048
modified: p_lx_elf.cpp
2025-02-17 08:26:17 -08:00
John Reiser
c0bf7bf9ab
Old powerpc* kernels lack MFD_EXEC
...
For example: Debian 3.16.43-2+deb8u5 (2017-09-19)
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/Makefile
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64-linux.elf-entry.S
modified: stub/src/powerpc64-linux.elf-fold.S
plus generated .h, .dump, .map
2025-02-16 15:33:58 -08:00
John Reiser
0144f81c28
Cleanup stub for arm64 shared library
...
modified: stub/arm64-linux.elf-so_entry.h
modified: stub/src/arm64-linux.elf-so_entry.S
2025-02-16 08:41:50 -08:00
John Reiser
78f4959521
Fix de-compression of ELF shared libraries
...
Reset ph.method on each b_info.b_method.
Use file_image[] as ReadOnly, subsuming fi->seek()+read().
Use lowmem[0, +xct_off) for changing values.
Work on un_DT_INIT().
https://github.com/upx/upx/issues/882
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_unix.cpp
2025-02-15 19:35:21 -08:00
John Reiser
eff1ef2d70
Fix amd64 shared libraries
...
Inspired by https://github.com/upx/upx/issues/880
(https://github.com/microsoft/mimalloc.git on Linux)
but still need test case.
modified: p_lx_elf.cpp
modified: stub/amd64-linux.elf-so_entry.h
modified: stub/src/amd64-linux.elf-so_entry.S
2025-02-13 17:22:37 -08:00
John Reiser
782b07c752
PPC64 check ehdri.e_ident[EI_DATA], not elfout
...
modified: p_lx_elf.cpp
2025-02-12 08:56:18 -08:00
John Reiser
bd67677389
Honor dos_header_t.e_cparhdr for small header
...
... and cleanup PackDjgpp2::readFileHeader()
https://github.com/upx/upx/issues/881
modified: p_djgpp2.cpp
modified: p_djgpp2.h
2025-02-11 10:29:53 -08:00
John Reiser
8c9e04daaf
Propagate .e_ident[EI_ABIVERSION]
...
Linux on bare metal (and explicit qemu) seems not to care,
but qemu-user-binfmt gives ENOEXEC (Exec format error)
https://github.com/upx/upx/issues/876
2025-02-07 19:24:46 -08:00
John Reiser
bddc05e787
Fix elf_lookup() defenses against fuzzed DT_HASH
...
modified: p_lx_elf.cpp
2025-02-01 13:22:26 -08:00
John Reiser
a49d023bd0
Detect too-short Mach_command, also be careful in recovery
...
fuzzing from leon.weiss AT @ruhr-uni-bochum.de
https://github.com/upx/upx/issues/875
https://github.com/upx/upx/issues/874
modified: p_mach.cpp
2025-01-31 11:34:48 -08:00
John Reiser
7b06ba0b78
Detect empty DT_STRTAB
...
https://github.com/upx/upx/issues/872
fuzzing from leon.weiss AT @ruhr-uni-bochum.de
modified: p_lx_elf.cpp
2025-01-31 11:32:48 -08:00
John Reiser
344b73dab0
invert_pt_dynamic defends against missing DT_STRTAB or DT_STRSIZ
...
https://github.com/upx/upx/issues/872
fuzzing from leon.weiss AT @ruhr-uni-bochum.de
modified: p_lx_elf.cpp
2025-01-30 11:42:09 -08:00
John Reiser
0870514194
elf_lookup must defend against bad chain in hash table
...
https://github.com/upx/upx/issues/871
fuzzing from leon.weiss AT @ruhr-uni-bochum.de
2025-01-30 10:56:45 -08:00
Markus F.X.J. Oberhumer
0a61ffea3a
submodules: update for new versions
2025-01-30 00:05:15 +01:00
Markus F.X.J. Oberhumer
fbc650791d
CI updates
2025-01-29 22:19:21 +01:00
Markus F.X.J. Oberhumer
4b41aa1226
CI updates
2025-01-29 16:11:03 +01:00
Markus F.X.J. Oberhumer
3fd68d3ec6
CI updates
2025-01-27 18:11:44 +01:00
John Reiser
d41ceb0d31
ARM64: move Psync closer to PAGE_MASK
...
and use 'bic' instead of 'and'
modified: stub/arm64-linux.elf-so_fold.h
modified: stub/src/arm64-linux.elf-so_fold.S
2025-01-26 18:43:14 -08:00
John Reiser
aee970e80b
Allow empty .rsrc Section in PE file
...
https://github.com/upx/upx/issues/869
modified: pefile.cpp
2025-01-24 07:45:05 -08:00
Markus F.X.J. Oberhumer
ef8a24ba53
CI updates. Closes #862 .
2025-01-21 21:16:01 +01:00
Markus F.X.J. Oberhumer
2edf91d315
testsuite: update checksums caused by version bump
2025-01-17 22:06:55 +01:00
Markus F.X.J. Oberhumer
9fe377b288
all: version bump
2025-01-17 21:50:38 +01:00
Markus F.X.J. Oberhumer
996ca8d17d
all: welcome 2025
2025-01-17 21:18:55 +01:00
Markus F.X.J. Oberhumer
b356595eb5
CI updates
2025-01-17 21:15:43 +01:00
Markus F.X.J. Oberhumer
e4668e5328
CI updates
2025-01-08 12:57:52 +01:00
John Reiser
a846e483be
clang-format uglifies again
...
modified: p_w64pe_amd64.cpp
2025-01-02 12:05:59 -08:00
John Reiser
f6e3df69eb
stub/amd64-win64.pe.h matches upx-v4.2.4
...
so that anti-virus checkers of apps for 64-bit Windows that are newly-
compressed by upx should not complain about new matches with malware.
This costs a few bytes and a small fraction of cycles in NRV2
de-compressors, but is considered to be a tolerable concession
to the cesspool environment of software for Microsoft Windows.
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_w64pe_amd64.cpp see code comments
modified: stub/amd64-win64.pe.h
modified: stub/src/arch/amd64/lzma_d.S see code comments
modified: stub/src/arch/amd64/nrv2b_d.S
modified: stub/src/arch/amd64/nrv2d_d.S
modified: stub/src/arch/amd64/nrv2e_d.S
modified: stub/tmp/amd64-win64.pe.bin.dump
2025-01-02 11:47:34 -08:00
John Reiser
1a6c1f0589
Fix unpackExtent() of non-compressible extent (PT_LOAD)
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/amd64-darwin.macho-main.c
modified: stub/src/amd64-darwin.macho-upxmain.c
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/amd64-linux.elf-main2.c
modified: stub/src/amd64-linux.elf-so_entry.S
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-bsd.elf-main.c
modified: stub/src/i386-darwin.macho-main.c
modified: stub/src/i386-darwin.macho-upxmain.c
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/i386-linux.elf-main2.c
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/src/i386-linux.elf.interp-main.c
modified: stub/src/i386-linux.elf.shell-main.c
modified: stub/src/i386-openbsd.elf-main.c
modified: stub/src/powerpc-darwin.macho-main.c
modified: stub/src/powerpc-darwin.macho-upxmain.c
modified: stub/src/powerpc64-darwin.macho-main.c
plus generated *.h *.map *.dump
2024-12-30 16:49:31 -08:00
John Reiser
e3e5d8a3a5
Try again for Android Elfxx_Shdr
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_unix.cpp
2024-12-23 11:20:26 -08:00
John Reiser
505f6b7373
Remove PROT_WRITE from de-compressed folded code.
...
Safer; required for SELinux Enforcing mode;
but inhibits breakpoint debugging.
modified: stub/amd64-linux.elf-entry.h
modified: stub/mips.r3000-linux.elf-entry.h
modified: stub/mipsel.r3000-linux.elf-entry.h
modified: stub/powerpc-linux.elf-entry.h
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-entry.S
2024-12-23 10:52:07 -08:00
John Reiser
7d907d9d65
is_asl handles per-file opt->o_unix.android_shlib
...
Also slide_sh_offset() handles so_slide.
TODO: if asl_delta, then relocate sh_offset that is above xct_off.
PT_DYNAMIC.p_offset and {.dynamic}.sh_offset must match; etc.
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_unix.cpp
2024-12-17 17:17:24 -08:00
John Reiser
d00ba4b465
Forgotten file
...
new file: src/amd64-linux.elf-so_entry.lds
2024-12-12 11:13:12 -08:00
John Reiser
d4deb2a100
Psync: msync demands page-aligned first argument
...
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/src/amd64-linux.elf-fold.S
modified: src/stub/src/amd64-linux.elf-main2.c
modified: src/stub/src/amd64-linux.elf-so_fold.S
modified: src/stub/src/amd64-linux.elf-so_main.c
modified: src/stub/src/arm.v4a-linux.elf-entry.S
modified: src/stub/src/arm.v4a-linux.elf-fold.S
modified: src/stub/src/arm.v4a-linux.elf-so_fold.S
modified: src/stub/src/arm64-linux.elf-fold.S
modified: src/stub/src/arm64-linux.elf-so_fold.S
modified: src/stub/src/i386-linux.elf-fold.S
modified: src/stub/src/i386-linux.elf-main2.c
modified: src/stub/src/i386-linux.elf-so_entry.S
modified: src/stub/src/i386-linux.elf-so_fold.S
modified: src/stub/src/i386-linux.elf-so_main.c
modified: src/stub/src/mipsel.r3000-linux.elf-fold.S
modified: src/stub/src/powerpc-linux.elf-fold.S
modified: src/stub/src/powerpc64-linux.elf-fold.S
plus stubs *.h *.dump *.map
2024-12-12 10:50:30 -08:00
John Reiser
5999b0a959
Unused get_page_mask but satisfies external for upxfd_*.c
...
modified: stub/src/i386-linux.elf-entry.S
2024-12-10 17:10:27 -08:00
John Reiser
e2f1e6697a
Stubs for shared libraries on amd64-linux.elf and arm64-linux.elf
...
modified: stub/Makefile
modified: stub/src/amd64-linux.elf-so_entry.S
modified: stub/src/amd64-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/upxfd_linux.c
2024-12-10 16:49:35 -08:00
Markus F.X.J. Oberhumer
baee96347d
CI updates
2024-12-11 07:54:48 +01:00
John Reiser
f60d8f6d18
Fix MIPS stubs
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/Makefile
modified: stub/mips.r3000-linux.elf-entry.h
modified: stub/mipsel.r3000-linux.elf-entry.h
modified: stub/tmp/mips.r3000-linux.elf-entry.bin.dump
modified: stub/tmp/mips.r3000-linux.elf-fold.map
modified: stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump
modified: stub/tmp/mipsel.r3000-linux.elf-fold.map
2024-12-09 14:26:00 -08:00
John Reiser
d3300e9564
Sync stubs
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/arm.v4a-linux.elf-entry.h
modified: stub/arm.v5a-linux.elf-entry.h
modified: stub/armeb.v4a-linux.elf-entry.h
modified: stub/mips.r3000-linux.elf-entry.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-entry.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/tmp/arm.v4a-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v5a-linux.elf-entry.bin.dump
modified: stub/tmp/armeb.v4a-linux.elf-entry.bin.dump
2024-12-09 13:33:21 -08:00
John Reiser
877390a2ba
FIx MIPS stubs
...
modified: stub/Makefile
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/i386-linux.elf-main2.c
modified: stub/src/upxfd_android.c
modified: stub/src/upxfd_linux.c
2024-12-09 13:26:22 -08:00
John Reiser
5afe2af365
EINVAL whitespace
...
modified: src/stub/src/i386-linux.elf-so_main.c
2024-12-07 09:46:42 -08:00
John Reiser
5028d559c5
msync for *-so_fold.S
...
Android 14 returnes -EINVAL but can be ignored
modified: stub/arm64-linux.elf-so_fold.h
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/i386-linux.elf-so_fold.h
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/src/arm.v4a-linux.elf-so_entry.S
modified: stub/src/arm.v4a-linux.elf-so_fold.S
2024-12-07 09:39:45 -08:00
John Reiser
deda4f1bae
Sync stubs
...
modified: stub/arm64-linux.elf-so_fold.h
modified: stub/amd64-linux.elf-so_fold.h
modified: stub/arm.v4a-linux.elf-entry.h
modified: stub/arm.v4a-linux.elf-fold.h
modified: stub/arm.v4a-linux.elf-so_entry.h
modified: stub/arm.v4a-linux.elf-so_fold.h
modified: stub/arm.v5a-linux.elf-entry.h
modified: stub/arm.v5a-linux.elf-fold.h
modified: stub/arm.v5a-linux.elf-so_entry.h
modified: stub/arm.v5a-linux.elf-so_fold.h
modified: stub/armeb.v4a-linux.elf-entry.h
modified: stub/armeb.v4a-linux.elf-fold.h
modified: stub/i386-linux.elf-entry.h
modified: stub/i386-linux.elf-fold.h
modified: stub/i386-linux.elf-so_entry.h
modified: stub/i386-linux.elf-so_fold.h
plus *.dump *.map
2024-12-07 08:56:34 -08:00
John Reiser
927a9d10a7
zig -musleabihf default -mdouble-float conflicts -msoft-float
...
modified: .github/workflows/ci.yml
2024-12-07 08:53:30 -08:00
John Reiser
ad96cee14c
Unify prep_SELinux and upx_so_main
...
Also va_top, not hi_offset
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/src/upxfd_android.c
2024-12-07 08:43:04 -08:00
John Reiser
f95bb4953f
CI updates: target ".2.3.4" invalid; "*-linux-musl" appends "eabi"
...
modified: ci.yml
2024-12-05 11:30:05 -08:00