John Reiser
4ec866594b
Mixing python3 strings with bytes requires .encode and .decode
...
modified: stub/scripts/bin2h.py
modified: stub/scripts/brandelf.py
modified: stub/scripts/gpp_inc.py
modified: stub/scripts/xstrip.py
2025-10-10 08:38:59 -07:00
John Reiser
a3d5a0a7b8
Replace 'has_key' with 'in'
...
modified: src/stub/scripts/bin2h.py
modified: src/stub/scripts/xstrip.py
modified: src/stub/src/arch/i086/cleanasm.py
2025-10-08 14:35:13 -07:00
John Reiser
3a61782f12
no more PYTHON2
...
modified: src/stub/Makefile
2025-10-08 14:18:52 -07:00
John Reiser
36271c3244
python (python3) replaces python2
...
https://github.com/upx/upx/issues/868
Thanks to 'tansy' for the patches to *.py .
modified: .github/workflows/ci.yml
modified: src/stub/scripts/bin2h.py
modified: src/stub/scripts/brandelf.py
modified: src/stub/scripts/gpp_inc.py
modified: src/stub/scripts/xstrip.py
modified: src/stub/src/arch/i086/cleanasm.py
modified: src/stub/src/arch/i086/wdis2gas.py
2025-10-08 08:32:24 -07:00
John Reiser
aef93548f9
Fix memfd_create in shared libraries on amd64 Linux < kernel 6.3
...
https://github.com/upx/upx/issues/929
modified: stub/src/amd64-linux.elf-so_fold.S
plus generated .h .dump
2025-09-09 14:58:00 -07:00
John Reiser
26ca21f6cb
arm.v4a: cancel_sigsegv
...
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/src/arm.v4a-linux.elf-entry.S
modified: src/stub/src/arm.v4a-linux.elf-fold.S
plus generated .h .dump .map
2025-08-21 06:19:21 -07:00
Markus F.X.J. Oberhumer
404fb48668
CI updates
2025-08-21 00:21:15 +02:00
John Reiser
e85e8bec5d
New option --catch-sigsegv on amd64, arm64, arm.v4a
...
Catch SIGSEGV during de-compression, and print state info
("auto debug") using /proc/self/maps and gdb.
This was motivated by suspicion of unreliable hardware
which triggered "Heisenbugs": a crash which cannot be reproduced.
If SIGSGV occurs without the "auto debug" info, then that
implies an error user code after de-compression, often when
user code accesses /proc/self/exe, which is not the un-compressed file.
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/help.cpp
modified: src/main.cpp
modified: src/options.h
modified: src/p_lx_elf.cpp
modified: src/stub/Makefile
modified: src/stub/src/amd64-linux.elf-entry.S
modified: src/stub/src/amd64-linux.elf-fold.S
modified: src/stub/src/arm.v4a-linux.elf-entry.S
modified: src/stub/src/arm.v4a-linux.elf-fold.S
modified: src/stub/src/arm64-linux.elf-entry.S
modified: src/stub/src/arm64-linux.elf-fold.S
plus generated .h .dump .map
2025-08-19 12:25:33 -07:00
John Reiser
4530e5c264
Fix upxfd_create for stubs on PowerPC64
...
https://github.com/upx/upx/issues/925
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/src/powerpc64-linux.elf-fold.S
plus generated .h
2025-08-16 16:00:11 -07:00
Markus F.X.J. Oberhumer
1188d2933b
SIGSEGV: handle and pretty-print on arm64-linux
2025-08-10 09:55:12 +02:00
Markus F.X.J. Oberhumer
4e88556c94
SIGSEGV: handle and pretty-print on amd64-linux
2025-08-10 09:39:29 +02:00
Markus F.X.J. Oberhumer
5d30472ee2
CI updates
2025-08-04 16:05:44 +02:00
Markus F.X.J. Oberhumer
9866b9bca9
SIGSEGV: handle and pretty-print on amd64-linux
2025-08-01 00:49:27 +02:00
John Reiser
945d9157fa
PowerPC64 editing error affecting -fPIE
...
https://github.com/upx/upx/issues/918
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/powerpc64-linux.elf-fold.S
plus generated powerpc64*-linux.elf-fold.h
2025-07-05 18:10:46 -07:00
Markus F.X.J. Oberhumer
5ed1d5b2b3
src/stub: fix ET_DYN with non-zero PT_LOAD[0].p_vaddr
2025-05-01 20:42:39 +02:00
Markus F.X.J. Oberhumer
23c70ec447
src/stub: fix ET_DYN with non-zero PT_LOAD[0].p_vaddr
2025-05-01 20:37:36 +02:00
Markus F.X.J. Oberhumer
27289a7589
src/stub: flush datacache before msync
2025-04-29 17:53:33 +02:00
Markus F.X.J. Oberhumer
e509bb87e9
src/stub: flush datacache before msync
2025-04-29 17:44:47 +02:00
Markus F.X.J. Oberhumer
a468b92e3a
PowerPC Psync flush datacache before msync
2025-04-20 15:06:58 +02:00
John Reiser
ddf0b50c6d
PowerPC Psync flush datacache before msync
...
https://github.com/upx/upx/issues/907
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64-linux.elf-fold.S
2025-04-20 14:55:06 +02:00
John Reiser
071579b5b6
Cleanup after broken tools
...
zig/powerpc64le/musl newly undefined openat64; adjacent literal strings
in C source were not concatenated; comment introduced by double slash
did not ignore backslash in rest of line
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/mipsel.r3000-linux.elf-fold.S
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
modified: stub/src/upxfd_linux.c
2025-03-21 13:25:02 -07:00
John Reiser
ff9d577e46
O_DIRECTORY is architecture-dependent
...
https://github.com/upx/upx/issues/902
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/powerpc64-linux.elf-fold.S
modified: stub/src/upxfd_android.c
modified: stub/src/upxfd_linux.c
plus generated .h .map .dump
2025-03-21 10:54:27 -07:00
John Reiser
1c5fae74e0
Fix recovery of readlink() when /proc/self/exe is missing
...
https://github.com/upx/upx/issues/897
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/arm.v4a-linux.elf-fold.S
plus generated .h
2025-03-16 12:37:57 -07:00
John Reiser
6f650ca16f
mips memfd_create() and syscall error handling
...
https://github.com/upx/upx/issues/895
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
plus generated .h .dump .map
2025-03-13 08:07:26 -07:00
John Reiser
903ca50391
Workaround valgrind-3.24.0 botch of 'notrack' on i386
...
https://github.com/upx/upx/issues/890
modified: stub/src/i386-linux.elf-fold.S
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus generated .h .map
2025-03-02 14:30:50 -08:00
John Reiser
70f1ab8cb7
Nice message for ancient Linux lacking memfd_create
...
... or O_TMPFILE for recovery using /dev/shm
https://github.com/upx/upx/issues/889
modified: stub/src/upxfd_linux.c
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus generated .h .map .dump
2025-03-02 11:46:17 -08:00
John Reiser
6998449715
Remove inline syscalls from MIPS stubs
...
They were a maintenance headache, especially for error handling.
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-main2.c
modified: stub/src/include/linux.h
modified: stub/src/mips.r3000-expand.S
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/upxfd_android.c
2025-03-02 11:32:49 -08:00
John Reiser
fb0f6c6a00
Escape hatch needs 'notrack' to enter
...
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/i386-linux.elf-fold.S
2025-03-02 11:22:05 -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
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
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
Markus F.X.J. Oberhumer
996ca8d17d
all: welcome 2025
2025-01-17 21:18:55 +01: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
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
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
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
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
8c594de432
Sync stubs
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
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/arm64-linux.elf-so_entry.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
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/powerpc-linux.elf-fold.h
plus *.dump *.map
2024-12-05 11:08:41 -08:00
John Reiser
330ac2443c
help_umf.S for MIPS and PPC
...
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/mips.r3000-linux.elf-help_umf.S
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/mipsel.r3000-linux.elf-help_umf.S
new file: stub/src/powerpc-linux.elf-help_umf.S
2024-12-05 11:06:09 -08:00
John Reiser
ebe6272ac7
whitespace
...
modified: stub/src/arm.v4a-linux.elf-so_fold.S
2024-12-05 08:25:02 -08:00