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
Markus F.X.J. Oberhumer
996ca8d17d
all: welcome 2025
2025-01-17 21:18:55 +01: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
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
27de5f42bb
Sync stubs
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/amd64-linux.elf-entry.h
modified: stub/amd64-linux.elf-fold.h
modified: stub/amd64-linux.elf-so_entry.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.v5a-linux.elf-entry.h
modified: stub/arm.v5a-linux.elf-fold.h
modified: stub/arm.v5a-linux.elf-so_entry.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/arm64-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/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
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
also *.dump, *.map
2024-12-03 11:52:13 -08:00
John Reiser
566c1eebd2
sync stubs
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/amd64-linux.elf-fold.h
modified: stub/arm.v4a-linux.elf-fold.h
modified: stub/arm.v5a-linux.elf-fold.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/armeb.v4a-linux.elf-fold.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-fold.map
modified: stub/tmp/arm.v4a-linux.elf-fold.map
modified: stub/tmp/arm.v5a-linux.elf-fold.map
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/armeb.v4a-linux.elf-fold.map
modified: stub/tmp/mips.r3000-linux.elf-fold.map
modified: stub/tmp/mipsel.r3000-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2024-11-21 11:20:32 -08:00
John Reiser
00706f0ccc
Sync stubs ("make testsuite" passes)
...
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-fold.h
modified: stub/armeb.v4a-linux.elf-entry.h
modified: stub/armeb.v4a-linux.elf-fold.h
modified: stub/i386-bsd.elf-fold.h
modified: stub/i386-bsd.elf.execve-fold.h
modified: stub/i386-darwin.macho-entry.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/i386-linux.elf.execve-fold.h
modified: stub/i386-linux.elf.interp-fold.h
modified: stub/i386-linux.elf.shell-fold.h
modified: stub/i386-netbsd.elf-fold.h
modified: stub/i386-openbsd.elf-fold.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
deleted: stub/src/upxfd_create.c
modified: stub/tmp/amd64-linux.elf-fold.map
modified: stub/tmp/arm.v4a-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v4a-linux.elf-fold.map
modified: stub/tmp/arm.v5a-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v5a-linux.elf-fold.map
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/armeb.v4a-linux.elf-entry.bin.dump
modified: stub/tmp/armeb.v4a-linux.elf-fold.map
modified: stub/tmp/i386-bsd.elf-fold.map
modified: stub/tmp/i386-bsd.elf.execve-fold.map
modified: stub/tmp/i386-darwin.macho-entry.bin.dump
modified: stub/tmp/i386-linux.elf-entry.bin.dump
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/i386-linux.elf.execve-fold.map
modified: stub/tmp/i386-linux.elf.interp-fold.map
modified: stub/tmp/i386-linux.elf.shell-fold.map
modified: stub/tmp/i386-netbsd.elf-fold.map
modified: stub/tmp/i386-openbsd.elf-fold.map
modified: stub/tmp/mips.r3000-linux.elf-fold.map
modified: stub/tmp/mipsel.r3000-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2024-11-19 08:55:31 -08:00
John Reiser
d55fdf2205
ZIG_DIST_VERSION of 2024-09-17
...
also https://github.com/upx/upx/issues/847
modified: ../.github/workflows/ci.yml
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-main2.c
modified: stub/src/i386-darwin.macho-entry.S
plus generated *.h *.map *.dump
2024-09-17 01:55:08 -07:00
John Reiser
7cb3f40dab
WIP: variable page size for xfind_pages(); debug arm32 Android shlib
...
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/amd64-linux.elf-main2.c
modified: stub/src/arm.v4a-linux.elf-so_entry.S
modified: stub/src/i386-linux.elf-main2.c
plus generated *.h *.dump *.map
2024-08-29 16:55:18 -07:00
John Reiser
5d5f4d1765
Elf2: Android on ARM 64-bit and 32-bit main program runs
...
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/upxfd_android.c
plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
ca33d66816
Sync stub checksums; and i386-linux and arm64-linux generated files
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
2024-08-25 15:16:29 -07:00
John Reiser
ea2a190bd1
ELF2 main programs pass src/testsuite and upx-testsuite-v2
...
Decompressing lzma required many adjustments.
Backwards compatibility probably is broken for
stub/amd64-win64.pe.h
stub/arm64-win64.pe.h
Also: shared libraries need memfd_create.
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/scripts/xstrip.py
modified: stub/src/amd64-expand.S
modified: stub/src/arch/amd64/lzma_d.S
modified: stub/src/arch/arm/v4a/lzma_d.S
modified: stub/src/arch/arm/v4t/macros.S
modified: stub/src/arch/arm64/v8/lzma_d.S
modified: stub/src/arch/powerpc/32/lzma_d.S
modified: stub/src/arch/powerpc/64le/lzma_d-common.S
modified: stub/src/arm.v4a-expand.S
modified: stub/src/arm.v4t-linux.shlib-init.S
modified: stub/src/arm64-expand.S
modified: stub/src/i386-expand.S
modified: stub/src/mips.r3000-expand.S
modified: stub/src/powerpc-expand.S
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64-expand.S
modified: stub/src/powerpc64-linux.elf-entry.S
modified: stub/src/powerpc64-linux.elf-fold.S
plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
e9930bb2bc
ELF2: Move section EXP_TAIL to catch case of no matching de-compressor
...
Also adjust blocksize for large gap (.p_align - .p_filesz)
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: stub/src/amd64-expand.S
modified: stub/src/arm64-expand.S
modified: stub/src/powerpc64-expand.S
plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
35fca2062e
ELF2 arm64: fix exit from lzma de-compressor
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: linker.cpp
modified: stub/src/arch/arm64/v8/lzma_d.S
modified: stub/src/arm64-expand.S
plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
2c4e5c7a47
arm64-expand code for nrv* EOF at de-compress is not quite uniform
...
WINDOWS_BACK requirement also interferes.
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/arch/arm64/v8/nrv2d_d32.S
modified: stub/src/arch/arm64/v8/nrv2e_d32.S
modified: stub/src/arm64-expand.S
plus generated *.h, *.map
2024-08-25 15:16:29 -07:00
John Reiser
e561da33bd
ELF2 64-bits: Use /dev/shm (O_TMPFILE) if memfd_create fails
...
Such as Ubuntu-20.04, Linux kernel 5.15.0-67, #74-20.04.1, 2023-02-22
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/Makefile
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/amd64-linux.elf-main2.c
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/upxfd_android.c
plus generated *.h *.map *.dump
2024-08-25 15:16:28 -07:00
John Reiser
5f6bdb0a8f
ELF2 for arm64 main programs
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/Makefile
modified: stub/src/amd64-expand.S
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-main2.c
modified: stub/src/arch/amd64/lzma_d.S
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/src/arch/arm64/v8/lzma_d.S
modified: stub/src/arch/arm64/v8/macros.S
modified: stub/src/arch/arm64/v8/nrv2b_d32.S
modified: stub/src/arch/arm64/v8/nrv2d_d32.S
modified: stub/src/arch/arm64/v8/nrv2e_d32.S
modified: stub/src/arm64-expand.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
plus generated *.h *.map *.dump
2024-08-25 15:16:28 -07:00
John Reiser
6276a4a7c4
ELF2 for arm64 main programs
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-main2.c
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-fold.lds
new file: stub/src/arm64-linux.elf-main2.c
plus generated *.h *.dump *.map
2024-08-25 15:16:28 -07:00
John Reiser
de8de9c0f0
Option --unmap-all-pages completely avoids /proc/self/exe
...
https://github.com/upx/upx/issues/749
2024-06-18 10:18:32 -07:00
John Reiser
41f6945be1
Fix auxv_up() to avoid SIGSEGV under valgrind
...
https://github.com/upx/upx/issues/784
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/i386-linux.elf-main.c
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus all generated stub/*-linux.elf-fold.{h,map}
2024-02-03 13:58:53 -08:00
John Reiser
38ed4b2017
arm32, arm64 ABI for -static must preserve register 0
...
Also arm32 forgot to unmap the expanded de-compressor via the escape hatch.
https://github.com/upx/upx/issues/758
https://github.com/upx/upx/issues/768
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/amd64-linux.elf-main.c
plus associated *.h *.map *.dump
2024-01-12 15:39:18 -08:00
John Reiser
09c5e38322
arm64-linux.elf ABI owns x0 at execve()?
...
https://github.com/upx/upx/issues/758
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/arm64-linux.elf-fold.h
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/tmp/arm64-linux.elf-fold.map
2024-01-09 12:17:01 -08:00
John Reiser
fe6f1f0bb6
arm64-linux.elf-fold.S typo (eyesight)
...
https://github.com/upx/upx/issues/743
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/arm64-linux.elf-fold.h
modified: src/stub/src/arm64-linux.elf-fold.S
2024-01-09 10:01:07 -08:00
Markus F.X.J. Oberhumer
47fc230893
all: welcome 2024
2024-01-03 17:47:25 +01:00
John Reiser
d4e94f5086
Fix varying page size on arm64
...
https://github.com/upx/upx/issues/734
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
... plus associated stub/*.h etc
2023-11-17 15:10:31 -08:00
John Reiser
52400e2561
/proc/self/exe now is optional
...
... for the benefit of 'unshare', 'chroot', etc.
If not present, then upx run-time stub unmaps all pages of original main program.
https://github.com/upx/upx/issues/721
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
... plus all associaed *.h, *.map, *.dump in stub/
2023-10-30 08:23:52 -07:00
Markus F.X.J. Oberhumer
a1d090a6fd
src/stub: add a "clang-format off" directive
2023-10-15 10:55:15 +02:00
John Reiser
067895fa5f
Fix brk+munmap in folded stubs for main programs
...
qemu emulating a compressed ET_EXEC revealed an access to ElfXX_Phdr
on the discarded side of brk() during cleanup. qemu was more aggressive
than the Linux kernel implementation of brk().
https://github.com/upx/upx/issues/683
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/include/linux.h
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/amd64-linux.elf-fold.h
modified: stub/arm.v4a-linux.elf-fold.h
modified: stub/arm.v5a-linux.elf-fold.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/armeb.v4a-linux.elf-fold.h
modified: stub/i386-linux.elf-fold.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-fold.map
modified: stub/tmp/arm.v4a-linux.elf-fold.map
modified: stub/tmp/arm.v5a-linux.elf-fold.map
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/armeb.v4a-linux.elf-fold.map
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/mips.r3000-linux.elf-fold.map
modified: stub/tmp/mipsel.r3000-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2023-07-17 07:21:56 +02:00
John Reiser
12c36bab6c
Linux EINVAL for zero-length mmap: mmap(, 0, ,,,)
...
https://github.com/upx/upx/issues/681
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/i386-bsd.elf-main.c
modified: stub/src/i386-openbsd.elf-main.c
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/amd64-linux.elf-fold.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/i386-bsd.elf-fold.h
modified: stub/i386-linux.elf-fold.h
modified: stub/i386-netbsd.elf-fold.h
modified: stub/i386-openbsd.elf-fold.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-fold.map
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/i386-bsd.elf-fold.map
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/i386-netbsd.elf-fold.map
modified: stub/tmp/i386-openbsd.elf-fold.map
modified: stub/tmp/mips.r3000-linux.elf-fold.map
modified: stub/tmp/mipsel.r3000-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2023-07-06 10:09:07 +02:00
John Reiser
7b2faf2016
Elf64_Rela for shlib DT_INIT_ARRAY
...
Also allow PT_PHDR in shlibs.
Also page align lo end of mmap, like mprotect.
https://github.com/upx/upx/issues/664
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/src/amd64-linux.elf-so_fold.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm.v4a-linux.elf-so_fold.S
modified: stub/src/arm64-linux.elf-fold.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-fold.h
modified: stub/arm.v4a-linux.elf-so_fold.h
modified: stub/arm.v5a-linux.elf-fold.h
modified: stub/arm.v5a-linux.elf-so_fold.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/arm64-linux.elf-so_fold.h
modified: stub/armeb.v4a-linux.elf-fold.h
modified: stub/i386-linux.elf-so_fold.h
modified: stub/tmp/amd64-linux.elf-so_fold.bin.dump
modified: stub/tmp/arm.v4a-linux.elf-fold.map
modified: stub/tmp/arm.v5a-linux.elf-fold.map
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/armeb.v4a-linux.elf-fold.map
modified: stub/src/arch/mips/r3000/macros.ash
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
2023-04-11 11:00:48 -07:00
John Reiser
4df68aafd2
Pprotect: mprotect but enlarge the interval to start on page boundary
...
https://github.com/upx/upx/issues/609
modified: src/stub/src/amd64-linux.elf-fold.S
modified: src/stub/src/amd64-linux.elf-main.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-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-main.c
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/powerpc64le-linux.elf-fold.S
modified: src/stub/amd64-linux.elf-fold.h
modified: src/stub/amd64-linux.elf-so_fold.h
modified: src/stub/arm.v4a-linux.elf-fold.h
modified: src/stub/arm.v4a-linux.elf-so_fold.h
modified: src/stub/arm.v5a-linux.elf-fold.h
modified: src/stub/arm.v5a-linux.elf-so_fold.h
modified: src/stub/arm64-linux.elf-fold.h
modified: src/stub/arm64-linux.elf-so_fold.h
modified: src/stub/armeb.v4a-linux.elf-fold.h
modified: src/stub/i386-linux.elf-fold.h
modified: src/stub/i386-linux.elf-so_fold.h
modified: src/stub/mips.r3000-linux.elf-fold.h
modified: src/stub/mipsel.r3000-linux.elf-fold.h
modified: src/stub/powerpc-linux.elf-fold.h
modified: src/stub/powerpc64-linux.elf-fold.h
modified: src/stub/powerpc64le-linux.elf-fold.h
modified: src/stub/tmp/amd64-linux.elf-fold.map
modified: src/stub/tmp/amd64-linux.elf-so_fold.bin.dump
modified: src/stub/tmp/arm.v4a-linux.elf-fold.map
modified: src/stub/tmp/arm.v5a-linux.elf-fold.map
modified: src/stub/tmp/arm64-linux.elf-fold.map
modified: src/stub/tmp/armeb.v4a-linux.elf-fold.map
modified: src/stub/tmp/i386-linux.elf-fold.map
modified: src/stub/tmp/mips.r3000-linux.elf-fold.map
modified: src/stub/tmp/mipsel.r3000-linux.elf-fold.map
modified: src/stub/tmp/powerpc-linux.elf-fold.map
modified: src/stub/tmp/powerpc64-linux.elf-fold.map
modified: src/stub/tmp/powerpc64le-linux.elf-fold.map
2023-03-29 15:46:58 -07:00
John Reiser
17526d1132
Make it easier to change MAX_ELF_HDR consistently
...
https://github.com/upx/upx/issues/655
new file: MAX_ELF_HDR.cpp
new file: stub/src/MAX_ELF_HDR.S
new file: stub/src/MAX_ELF_HDR.c
modified: p_lx_elf.cpp
modified: stub/arm.v4a-linux.elf-fold.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm.v4a-linux.elf-so_fold.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-so_fold.S
modified: stub/src/i386-bsd.elf-fold.S
modified: stub/src/i386-bsd.elf-main.c
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/src/i386-linux.elf.interp-fold.S
modified: stub/src/i386-linux.elf.interp-main.c
modified: stub/src/i386-linux.elf.shell-fold.S
modified: stub/src/i386-linux.elf.shell-main.c
modified: stub/src/i386-openbsd.elf-fold.S
modified: stub/src/i386-openbsd.elf-main.c
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
2023-03-09 10:06:13 -08:00
Markus F.X.J. Oberhumer
dd1d5a92d2
all: welcome 2023
2023-01-01 19:49:30 +01:00
John Reiser
2b9e83256d
SELinux execmod requires no PROT_EXEC when PROT_WRITE
...
modified: src/stub/src/amd64-linux.elf-main.c
modified: src/stub/amd64-linux.elf-fold.h
modified: src/stub/arm64-linux.elf-fold.h
modified: src/stub/powerpc64-linux.elf-fold.h
modified: src/stub/powerpc64le-linux.elf-fold.h
modified: src/stub/tmp/amd64-linux.elf-fold.map
modified: src/stub/tmp/arm64-linux.elf-fold.map
modified: src/stub/tmp/powerpc64-linux.elf-fold.map
modified: src/stub/tmp/powerpc64le-linux.elf-fold.map
2022-10-28 13:04:17 -07:00
John Reiser
50a6698715
Each PROT_WRITE segment has implicit .bss on end of last page (64-bit only for now);
...
Also workaround kernel bug invoking the escape hatch on arm64 (aarch64).
https://github.com/upx/upx/issues/611
2022-10-27 11:01:37 -07:00
Markus F.X.J. Oberhumer
75a769759d
src/stub: sync stubs
2022-10-24 12:56:49 +02:00
Markus F.X.J. Oberhumer
d001a63bce
Welcome 2022.
2022-09-04 04:24:39 +02:00
John Reiser
7a232cb330
Allow qemu on host with smaller PAGE_SIZE. Sync stubs.
...
https://github.com/upx/upx/issues/571
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
modified: stub/arm64-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/src/amd64-linux.elf-main.c
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2022-03-25 09:13:10 -07:00
John Reiser
214dd0a522
4 fewer bytes of code?
...
modified: arm64-linux.elf-fold.h
modified: tmp/arm64-linux.elf-fold.map
2021-02-23 02:24:24 -08:00
John Reiser
23f63e4196
WIP unpacking ELF shared library
...
modified: Makefile
modified: lzma-sdk
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_mach.cpp
modified: p_unix.cpp
modified: p_unix.h
modified: packer.cpp
modified: packer.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/tmp/arm64-linux.elf-fold.map
2021-01-15 14:11:09 -08:00
Markus F.X.J. Oberhumer
9131d5216f
Welcome 2021.
2021-01-01 20:39:22 +01:00
John Reiser
be61e9f584
Fix 64-bit ET_EXEC
...
https://github.com/upx/upx/issues/405
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-main.c
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
modified: stub/amd64-linux.elf-fold.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-fold.map
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2020-09-04 10:21:14 -07:00
John Reiser
b463f24eda
arm64 works: ELF layout for page holes
...
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-fold.map
2020-05-10 09:18:06 -07:00
John Reiser
926481dace
ELF layout for page holes when runtime PAGE_SIZE < .p_align
...
amd64 works
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/amd64-linux.elf-main.c
modified: Makefile
modified: stub/amd64-linux.elf-entry.h
modified: stub/amd64-linux.elf-fold.h
modified: stub/amd64-linux.shlib-init.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/src/amd64-linux.shlib-init.S
modified: stub/tmp/amd64-linux.elf-entry.bin.dump
modified: stub/tmp/amd64-linux.elf-fold.map
modified: stub/tmp/amd64-linux.shlib-init.bin.dump
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2020-05-09 08:05:05 -07:00
John Reiser
936013f60c
Decompression escape hatch for ELF can require a new page.
...
If not enough room on last page of .text, and ElfXX_Ehdr not PF_X,
then the escape hatch must use a new page.
https://github.com/upx/upx/issues/308
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/i386-linux.elf-main.c
Plus stub/*-linux.elf-fold.h and stub/tmp/*-linux.elf-fold.map
2020-01-19 13:25:55 -08:00
Markus F.X.J. Oberhumer
d1174385ef
Welcome 2020.
2020-01-08 04:13:28 +01:00
Markus F.X.J. Oberhumer
3667fa4e44
Welcome 2019.
2019-02-15 11:04:09 +01:00
John Reiser
bdd97fe0b2
build stubs
...
modified: amd64-linux.elf-fold.h
modified: arm64-linux.elf-fold.h
modified: i386-bsd.elf-fold.h
modified: i386-linux.elf.interp-fold.h
modified: i386-netbsd.elf-fold.h
modified: i386-openbsd.elf-fold.h
modified: powerpc64-linux.elf-fold.h
modified: powerpc64le-linux.elf-fold.h
modified: tmp/amd64-linux.elf-fold.map
modified: tmp/arm64-linux.elf-fold.map
modified: tmp/i386-bsd.elf-fold.map
modified: tmp/i386-linux.elf.interp-fold.map
modified: tmp/i386-netbsd.elf-fold.map
modified: tmp/i386-openbsd.elf-fold.map
modified: tmp/powerpc64-linux.elf-fold.map
modified: tmp/powerpc64le-linux.elf-fold.map
2018-08-22 14:48:15 -07:00
Markus F.X.J. Oberhumer
021c8db58a
Welcome 2018.
2018-01-19 10:55:32 +01:00
John Reiser
0430e7931e
PowerPC64 stub: on syscall, real Linux trashes r13 and below
...
(except r1, r2, and input args!) So, r12 .e_entry for musl
must copy from a saved register. [qemu-ppc64 doesn't trash registers!]
modified: ../.github/travis_testsuite_1.sh
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/powerpc64le-linux.elf-fold.S
also .h .fold.map
2017-10-27 20:07:32 -07:00