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
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
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
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
John Reiser
982e732b74
Allow re-ordering of functions in upxfd_android.c and upxfd_linux.c
...
Compiler has a mind of its own.
modified: p_lx_elf.cpp
modified: stub/Makefile
new file: stub/src/amd64-linux.elf-help_umf.S
modified: stub/src/arm.v4a-expand.S
new file: stub/src/arm.v4a-linux.elf-help_umf.S
modified: stub/src/arm.v4a-linux.elf-so_entry.S
modified: stub/src/arm.v4a-linux.elf-so_fold.S
new file: stub/src/arm.v5a-linux.elf-help_umf.S
new file: stub/src/arm64-linux.elf-help_umf.S
modified: stub/src/arm64-linux.elf-so_entry.S
new file: stub/src/armeb.v4a-linux.elf-help_umf.S
new file: stub/src/i386-linux.elf-help_umf.S
modified: stub/src/i386-linux.elf-so_main.c
new file: stub/src/mips.r3000-linux.elf-help_umf.S
new file: stub/src/mipsel.r3000-linux.elf-help_umf.S
modified: stub/src/upxfd_android.c
2024-12-04 17:00:37 -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
37dff58289
powerpc-linux.elf-entry.S does not need UMF_LINUX
...
... because it calls memfd_create directly, not via upx_mmap_and_fd.
Perhaps MIPS, foo?
modified: p_lx_elf.cpp
2024-12-03 11:50:21 -08:00
John Reiser
fc9d90c231
Revamp building stubs for MIPS
...
modified: stub/Makefile
2024-12-03 10:37:19 -08:00
John Reiser
68b31d31c3
msync() and UMF_LINUX fiddling
...
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-so_fold.S
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-entry.lds
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm.v4a-linux.elf-so_entry.S
modified: stub/src/arm64-linux.elf-so_fold.S
modified: stub/src/mips.r3000-linux.elf-entry.lds
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/mipsel.r3000-linux.elf-entry.lds
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/upxfd_linux.c
2024-12-03 10:36:14 -08:00
John Reiser
f7f08be312
get_te64_32() fetches 64 bits, checks and returns 32
...
modified: packer.h
2024-12-03 10:28:01 -08:00
John Reiser
d14901548a
Unique label sysgo_incl; fix #define that might capture trailing '//'
...
modified: stub/src/include/linux.h
2024-12-03 10:21:07 -08:00
John Reiser
abced6720b
clang-format {silly)
...
modified: packer.h
2024-12-02 08:08:51 -08:00
John Reiser
f4604db164
Stub msync() on PF_X before munmap()
...
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/amd64-linux.elf-main2.c
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-main2.c
modified: stub/src/include/linux.h
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64-linux.elf-fold.S
modified: stub/src/upxfd_android.c
modified: stub/src/upxfd_linux.c
2024-11-30 13:58:40 -08:00
John Reiser
8327c390cf
Stack 0x10 aligned at all times
...
modified: stub/src/arm64-expand.S
2024-11-30 13:57:46 -08:00
John Reiser
bd251c0dbd
Stub for 64-bit shlib
...
modified: stub/Makefile
modified: stub/src/amd64-expand.S
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-so_entry.S
modified: stub/src/amd64-linux.elf-so_fold.S
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/arm64-expand.S
modified: stub/src/upxfd_linux.c
2024-11-28 19:10:27 -08:00
John Reiser
d04209d30f
Unify 32-bit and 64-bit ::buildLinuxLoader
...
modified: p_lx_elf.cpp
2024-11-28 19:09:46 -08:00
John Reiser
8782778eb3
stub *-linux.elf-entry.S often must define label upx_mmap_and_fd
...
modified: p_lx_elf.cpp
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-so_entry.S
modified: stub/src/i386-linux.elf-entry.S
2024-11-26 19:43:14 -08:00
John Reiser
c8515ae862
Unify PackLinuxElf64::pack2_shlib* with 32-bit
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2024-11-26 16:44:35 -08:00
John Reiser
a2fa417af9
Unify 64-bit upx_main() stub for shlib with 32-bit i386
...
modified: stub/src/amd64-linux.elf-so_main.c
2024-11-26 16:43:02 -08:00
John Reiser
93f420939e
ElfW()
...
modified: src/i386-linux.elf-so_main.c
2024-11-25 11:52:43 -08:00
John Reiser
88cd02d750
get_te64_32() gets 4-bit value, then detects 32-bit overflow
...
modified: packer.h
2024-11-25 10:45:54 -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
65c3195b39
Cleanup stub for mips and powerpc
...
modified: stub/Makefile
modified: stub/src/powerpc-expand.S
modified: stub/src/powerpc-linux.elf-fold.S
2024-11-20 15:28:41 -08:00
John Reiser
76b0b4ce9c
Fix mips stub for ELF2 main program
...
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/mips.r3000-expand.S
modified: stub/src/upxfd_linux.c
2024-11-20 15:02:32 -08:00
John Reiser
02b9ac9764
Name it upx_main2() for clarity
...
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/i386-linux.elf-main2.c
modified: stub/src/powerpc64-linux.elf-fold.S
2024-11-20 15:00:11 -08:00
John Reiser
17b94cdfe5
Cleanup remaining *.lds linker scripts for stubs
...
modified: stub/src/arm64-linux.elf-fold.lds
modified: stub/src/mips.r3000-linux.elf-fold.lds
modified: stub/src/mipsel.r3000-linux.elf-fold.lds
modified: stub/src/powerpc-linux.elf-fold.lds
modified: stub/src/powerpc64-linux.elf-fold.lds
modified: stub/src/powerpc64le-linux.elf-fold.lds
2024-11-20 14:52:22 -08:00
John Reiser
83166e21a5
PackLinuxElf64::unpack forgot some get_te*
...
Also use is_LOAD where ever possible.
modified: p_lx_elf.cpp
modified: ../NEWS
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2024-11-20 07:46:24 -08:00
John Reiser
b4ea89f9d6
check-whitespace, clang-format
...
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: stub/src/i386-linux.elf-so_entry.S
2024-11-19 09:13:44 -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
3798dde3aa
Fix stubs in arm,mips,powerpc for upx_mmap_and_fd
...
modified: stub/Makefile
modified: stub/src/arm.v4a-expand.S
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/mips.r3000-expand.S
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/upxfd_linux.c
2024-11-19 08:44:48 -08:00
John Reiser
5bf2258505
filter strategy option to build no loader at all
...
modified: packer.cpp
2024-11-18 16:17:37 -08:00
John Reiser
33b9c68677
upx_fd_android.c
...
modified: stub/src/upxfd_android.c
2024-11-18 16:15:06 -08:00
John Reiser
58d9b00a0a
Revamp 32-bit stub/src/*-linux.elf-so_main.c
...
... including better error checking of system calls
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/i386-linux.elf-so_entry.S
modified: stub/src/i386-linux.elf-so_fold.S
modified: stub/src/i386-linux.elf-so_main.c
2024-11-18 16:12:44 -08:00
John Reiser
7ef018fed0
Option --android-oid for Android < 10
...
modified: main.cpp
modified: options.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_unix.h
2024-11-18 16:06:45 -08:00
John Reiser
3d9fc7ab53
Clarify call to upx_compress(); NFC
...
modified: p_unix.cpp
2024-11-18 16:04:48 -08:00
John Reiser
3d6b2e4617
Cleanup stub/*.lds linker scripts
...
modified: Makefile
modified: src/amd64-linux.elf-fold.lds
modified: src/amd64-linux.elf-so_fold.lds
modified: src/arm.v4a-linux.elf-entry.lds
modified: src/arm.v4a-linux.elf-fold.lds
modified: src/arm.v4a-linux.elf-so_entry.lds
modified: src/arm.v4a-linux.elf-so_fold.lds
modified: src/arm.v5a-linux.elf-entry.lds
modified: src/arm.v5a-linux.elf-fold.lds
modified: src/arm.v5a-linux.elf-so_entry.lds
modified: src/arm.v5a-linux.elf-so_fold.lds
modified: src/arm64-linux.elf-fold.lds
modified: src/arm64-linux.elf-so_fold.lds
modified: src/armeb.v4a-linux.elf-entry.lds
modified: src/armeb.v4a-linux.elf-fold.lds
modified: src/i386-bsd.elf-fold.lds
modified: src/i386-linux.elf-fold.lds
modified: src/i386-linux.elf-so_entry.lds
modified: src/i386-linux.elf-so_fold.lds
modified: src/i386-linux.elf.execve-fold.lds
modified: src/i386-linux.elf.interp-fold.lds
modified: src/i386-linux.elf.shell-fold.lds
modified: src/mips.r3000-linux.elf-fold.lds
modified: src/mipsel.r3000-linux.elf-fold.lds
modified: src/powerpc-linux.elf-fold.lds
modified: src/powerpc64-linux.elf-fold.lds
modified: src/powerpc64le-linux.elf-fold.lds
new file: src/upxfd_linux.c
2024-11-18 16:00:36 -08:00
John Reiser
886e325cbf
EXP_TAIL goes after de-compressors, and before UMF_LINUX
...
modified: p_lx_elf.cpp
modified: stub/src/i386-expand.S
2024-11-14 19:22:28 -08:00
John Reiser
60bdffee84
make_hatch() has uniform calling sequence
...
... so factor out the calls to make_hatch
modified: src/i386-linux.elf-so_main.c
2024-11-14 11:19:10 -08:00
John Reiser
a9dc43f7fb
PackLinuxElf32::generateElfHdr, PackLinuxElf64::buildLinuxLoader
...
modified: p_elf_enum.h
modified: p_lx_elf.cpp
2024-10-26 10:53:28 -07:00
John Reiser
0cc0e51d5d
PackLinuxElf64::canPack_Shdr
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2024-10-26 10:02:14 -07:00
John Reiser
14d75b222f
-DWINDOWS_BACK=1 for PE
...
modified: stub/Makefile
2024-10-26 09:52:12 -07:00
John Reiser
b10d2b7365
lodsb is OK to use in branch filter
...
modified: stub/src/arch/i386/bxx.S
2024-10-26 09:50:38 -07:00
John Reiser
8aa3679323
upx_mmap_and_fd
...
modified: stub/src/upxfd_create.c
2024-10-26 09:49:26 -07:00
John Reiser
3403b87cb7
More Control Flow Integrity (Intel)
...
More ENDBRxx for CALL *%RDX for 'getbit'.
amd64: LEA xxx(%rip),%reg and STRCON section,
instead of CALL; .asciz "..."; POP %reg
(Not for PE due to WINDOWS_BACK binary compatibility.)
i386 string constants still use call-.asciz-pop because no (%rip)
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/amd64-linux.elf-so_entry.S
modified: stub/src/amd64-linux.shlib-init.S
modified: stub/src/amd64-win64.pe.S
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-so_entry.S
modified: stub/src/upxfd_android.c
plus generated *.h *.map *.dump
2024-09-20 14:48:30 -07: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
65c362efce
MSVC lacks stpcpy()
...
modified: p_lx_elf.cpp
2024-08-26 18:59:55 -07:00
John Reiser
8065eebca3
--android-shlib for arm32 and i386
...
... including work-around if no memfd_create() on early Android 32-bit
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: stub/src/arm.v4a-linux.elf-so_entry.S
modified: stub/src/arm.v4a-linux.elf-so_fold.S
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/src/upxfd_android.c
plus generated *.h *.dump *.map
2024-08-25 15:16:29 -07:00
John Reiser
7f062c7ca5
Variable page size: spread the word by using 'page_' instead of 'PAGE_'
...
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main2.c
modified: stub/src/mipsel.r3000-linux.elf-entry.S
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
plus genereated *.h *.map
2024-08-25 15:16:29 -07:00
John Reiser
0adad4a053
ELF2 after successful ANDROID_TEST of upxfd_android.c on i386 and arm32
...
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main2.c
modified: stub/src/upxfd_android.c
plus generated *.h *.dump *.map
2024-08-25 15:16:29 -07:00
John Reiser
cb39e6e0b8
ELF2: stub for i386 shared library
...
WIP: stub is debugged, but compressed input needs work
modified: stub/src/arm.v4a-linux.elf-so_entry.S
modified: stub/src/i386-linux.elf-so_entry.S
modified: stub/src/i386-linux.elf-so_fold.S
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/src/include/linux.h
plus generated *.h *.dump
2024-08-25 15:16:29 -07:00
John Reiser
94eebc3ee5
ELF2: arm32 shared libraries; runs on Android 14 under TermUX
...
NYI: complex DT_INIT (R_RELR, etc.)
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: stub/src/arm.v4a-expand.S
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-so_entry.S
modified: stub/src/arm.v4a-linux.elf-so_fold.S
modified: stub/src/i386-linux.elf-main2.c
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/src/upxfd_android.c
plus generated *.h *.map *.dump
2024-08-25 15:16:29 -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
ed0665407a
More: prefer movzbl over movb fetch to register
...
Avoids hardware failure of writing 0x00 instead of the fetched byte.
1 cycle faster, 1 byte larger (but often recouped later when OR of 32-bits).
Avoid changing win*pe.S for now.
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/amd64-darwin.dylib-entry.S
modified: stub/src/amd64-darwin.macho-entry.S
modified: stub/src/amd64-expand.S
modified: stub/src/amd64-linux.shlib-init.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/i386/nrv2b_d32-easy.S
modified: stub/src/i386-darwin.macho-entry.S
plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
3869a67180
Intel CET (Control-flow Enforcement Technology)
...
{endbr64, endbr32} at target of computed jmp/call; 'notrack' at source
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/arch/amd64/macros.S
modified: stub/src/arch/i386/macros.S
modified: stub/src/i386-expand.S
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main2.c
2024-08-25 15:16:29 -07:00
John Reiser
7e75491e88
Macho" begin catch-up to ELF by defining labels eof_n2*
...
modified: stub/src/amd64-darwin.macho-entry.S
modified: stub/amd64-darwin.macho-entry.h
modified: stub/tmp/amd64-darwin.macho-entry.bin.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
055e3db80a
i386-linux stub: Use current __NR_uname; pacify memcheck
...
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
2024-08-25 15:16:29 -07:00
John Reiser
620ddf1228
arm64: typo in daisy-chain when selecting de-compression method
...
modified: stub/src/arm64-expand.S
2024-08-25 15:16:29 -07:00
John Reiser
d71fe3eda0
Sync stub checksums (and generated files)
...
Many *.h, *.dump, *.map
2024-08-25 15:16:29 -07:00
John Reiser
bff5049a98
developer documentation
...
modified: p_lx_elf.cpp
2024-08-25 15:16:29 -07:00
John Reiser
536b2c2475
i386 LzmaDecode (lzma_d_c*.S) compiled code exited not at the end
...
... so the build recipe required acrobatics to make it "fall through"
modified: stub/src/arch/i386/Makefile.extra
new file: stub/src/arch/i386/fall-through.sed
modified: stub/src/arch/i386/lzma-multi_d.S
modified: stub/src/arch/i386/lzma_d_cf.S
modified: stub/src/arch/i386/lzma_d_cs.S
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/i386-expand.S
2024-08-25 15:16:29 -07:00
John Reiser
7a3033c150
MFD_EXEC is unknown in older Ubuntu linux
...
modified: stub/src/include/linux.h
modified: stub/src/upxfd_android.c
2024-08-25 15:16:29 -07:00
John Reiser
05db054fb9
developer documentation
...
modified: stub/src/i386-linux.elf-so_fold.S
2024-08-25 15:16:29 -07:00
John Reiser
8aa445e2fc
i386 stub: prefer movzbl over movb fetch [stragglers]
...
modified: stub/src/arch/i386/nrv2d_d32-easy.S
modified: stub/src/arch/i386/nrv2e_d32-easy.S
2024-08-25 15:16:29 -07:00
John Reiser
3658136b82
whitespace
...
modified: stub/src/powerpc64-linux.elf-fold.S
2024-08-25 15:16:29 -07:00
John Reiser
913cddec61
Generated files
...
modified: stub/i386-darwin.macho-entry.h
modified: stub/i386-linux.elf-fold.h
modified: stub/i386-linux.elf-so_fold.h
modified: stub/tmp/i386-darwin.macho-entry.bin.dump
modified: stub/tmp/i386-linux.elf-fold.map
2024-08-25 15:16:29 -07:00
John Reiser
25e6a31004
i386 stub: prefer movzbl over movb fetch
...
32-bit mode on x86_64 hardware can fail movb fetch to register
by writing 0x00 randomly instead of the fetched byte.
Note that most CPU can write only 32 or 64 bits to the register file,
so writing just 8 or 16 bits incurs a 1-cycle penalty in order to
form 32 bits by Read-Modify-Write of the destination register.
modified: stub/src/arch/i386/nrv2b_d32-easy.S
modified: stub/src/i386-expand.S
2024-08-25 15:16:29 -07:00
John Reiser
3d58035b41
i386 stub filters 0x49 and 0x46 really are different (but similar!)
...
modified: filter/filter_impl.cpp
modified: p_lx_elf.cpp
modified: stub/src/arch/i386/bxx.S
2024-08-25 15:16:29 -07:00
John Reiser
b94a150685
PowerPC64 stub: fix register assignments
...
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/src/powerpc64-linux.elf-entry.S
modified: stub/src/powerpc64-linux.elf-fold.S
2024-08-25 15:16:29 -07:00
John Reiser
cb07fc2abc
podman stubs rebuild
...
Looks like all differences are in generated *.h *.map *.dump .
modified: stub/amd64-linux.kernel.vmlinux.h
modified: stub/i386-bsd.elf-entry.h
modified: stub/i386-bsd.elf.execve-entry.h
modified: stub/i386-darwin.dylib-entry.h
modified: stub/i386-darwin.macho-entry.h
modified: stub/i386-dos32.djgpp2.h
modified: stub/i386-dos32.tmt.h
modified: stub/i386-dos32.watcom.le.h
modified: stub/i386-linux.elf-fold.h
modified: stub/i386-linux.elf-so_fold.h
modified: stub/i386-linux.elf.execve-entry.h
modified: stub/i386-linux.elf.interp-entry.h
modified: stub/i386-linux.elf.shell-entry.h
modified: stub/i386-linux.kernel.vmlinux.h
modified: stub/i386-linux.kernel.vmlinuz.h
modified: stub/i386-linux.shlib-init.h
modified: stub/i386-netbsd.elf-entry.h
modified: stub/i386-win32.pe.h
modified: stub/src/arch/i386/lzma_d_cf.S
modified: stub/src/arch/i386/lzma_d_cs.S
modified: stub/tmp/amd64-linux.kernel.vmlinux.bin.dump
modified: stub/tmp/i386-bsd.elf-entry.bin.dump
modified: stub/tmp/i386-bsd.elf.execve-entry.bin.dump
modified: stub/tmp/i386-darwin.dylib-entry.bin.dump
modified: stub/tmp/i386-darwin.macho-entry.bin.dump
modified: stub/tmp/i386-dos32.djgpp2.bin.dump
modified: stub/tmp/i386-dos32.tmt.bin.dump
modified: stub/tmp/i386-dos32.watcom.le.bin.dump
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/i386-linux.elf.execve-entry.bin.dump
modified: stub/tmp/i386-linux.elf.interp-entry.bin.dump
modified: stub/tmp/i386-linux.elf.shell-entry.bin.dump
modified: stub/tmp/i386-linux.kernel.vmlinux.bin.dump
modified: stub/tmp/i386-linux.kernel.vmlinuz.bin.dump
modified: stub/tmp/i386-linux.shlib-init.bin.dump
modified: stub/tmp/i386-netbsd.elf-entry.bin.dump
modified: stub/tmp/i386-win32.pe.bin.dump
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
e6f3c1b3da
un-DEBUG
...
modified: stub/src/arm.v4a-linux.elf-main2.c
2024-08-25 15:16:29 -07:00
John Reiser
22f732aa4e
ARM 32-bit: centralize definition of bkpt, bkpt_th opcodes
...
modified: stub/src/arch/arm/v4a/macros.S
modified: stub/src/arm.v4a-linux.elf-so_entry.S
modified: stub/src/arm.v4a-linux.elf-so_fold.S
modified: stub/src/arm.v4a-linux.shlib-init.S
modified: stub/src/arm.v4t-linux.shlib-init.S
modified: stub/src/arm.v5a-darwin.macho-entry.S
2024-08-25 15:16:29 -07:00
John Reiser
5e531d7cca
PowerPC register mixups
...
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
2024-08-25 15:16:29 -07:00
John Reiser
0deae5f0b8
ARM_OLDABI is no longer handled by #define
...
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/armeb.v4a-linux.elf-entry.S
modified: stub/src/armeb.v4a-linux.elf-fold.S
2024-08-25 15:16:29 -07:00