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
John Reiser
9ff4187fb3
filters 0x50, 0x51 use same code for unfilter
...
modified: stub/src/arm.v4a-expand.S
modified: stub/src/arm.v4a-linux.elf-fold.S
2024-08-25 15:16:29 -07:00
John Reiser
6a1e70bf40
i386 filters 0x46 and 0x49 are the same
...
modified: filter/filter_impl.cpp
modified: stub/src/arch/i386/bxx.S
2024-08-25 15:16:29 -07:00
John Reiser
d097218a45
mips.r3000, a mips-1 cpu, still has load-delay slots
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
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
2024-08-25 15:16:29 -07:00
John Reiser
cc87a2c867
ELF2 for mips 32-bit main programs
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/include/linux.h
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/arch/mips/r3000/lzma_d.S
modified: stub/src/arch/mips/r3000/macros.ash
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm.v4a-linux.elf-main2.c
modified: stub/src/arm.v4a-linux.elf-so_fold.lds
modified: stub/src/arm.v5a-linux.elf-so_fold.lds
modified: stub/src/arm64-linux.elf-so_fold.lds
modified: stub/src/i386-expand.S
modified: stub/src/i386-linux.elf-entry.lds
modified: stub/src/i386-linux.elf-main2.c
modified: stub/src/i386-linux.elf-so_fold.lds
new file: stub/src/mips.r3000-expand.S
new file: stub/src/mips.r3000-linux.elf-entry.lds
modified: stub/src/mips.r3000-linux.elf-fold.S
modified: stub/src/mips.r3000-linux.elf-fold.lds
new file: stub/src/mips.r3000-linux.elf-main2.c
new file: stub/src/mipsel.r3000-expand.S
modified: stub/src/mipsel.r3000-linux.elf-entry.S
new file: stub/src/mipsel.r3000-linux.elf-entry.lds
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/mipsel.r3000-linux.elf-fold.lds
new file: stub/src/mipsel.r3000-linux.elf-main2.c
modified: stub/src/mipsel.r3000-linux.shlib-init.S
modified: stub/src/powerpc-linux.elf-fold.lds
modified: stub/src/upxfd_android.c
plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
b26ba9c4d3
ELF2 stragglers from stub make
...
modified: stub/powerpc-linux.elf-fold.h
modified: stub/tmp/powerpc-linux.elf-fold.map
2024-08-25 15:16:29 -07:00
John Reiser
88c94d1cc0
ELF2 for powerpc (32-bit) main programs
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/arch/powerpc/32/macros.S
modified: stub/src/i386-linux.elf-main2.c
new file: stub/src/powerpc-expand.S
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-fold.lds
new file: stub/src/powerpc-linux.elf-main2.c
modified: stub/src/powerpc64-linux.elf-fold.S
plus generated *.h *.map *.dump
interactive rebase in progress; onto ac82d473
Last commands done (17 commands done):
pick 1b9ddea5 ELF2 arm32-linux unmap_all_pages
pick 1f372e54 ELF2 for powerpc (32-bit) main programs
Next commands to do (10 remaining commands):
pick 5f5849a9 ELF2 stragglers from stub make
pick 2ba8b5da ELF2 for mips 32-bit main programs
You are currently rebasing branch 'jreiser-ELF2' on 'ac82d473'.
Changes to be committed:
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/p_lx_elf.cpp
modified: src/stub/Makefile
modified: src/stub/powerpc-linux.elf-entry.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/src/arch/powerpc/32/macros.S
modified: src/stub/src/i386-linux.elf-main2.c
new file: src/stub/src/powerpc-expand.S
modified: src/stub/src/powerpc-linux.elf-entry.S
modified: src/stub/src/powerpc-linux.elf-fold.S
modified: src/stub/src/powerpc-linux.elf-fold.lds
new file: src/stub/src/powerpc-linux.elf-main2.c
modified: src/stub/src/powerpc64-linux.elf-fold.S
modified: src/stub/tmp/powerpc-linux.elf-entry.bin.dump
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
2024-08-25 15:16:29 -07:00
John Reiser
6cda0b6016
ELF2 arm32-linux unmap_all_pages
...
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/powerpc-linux.elf-entry.S
plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
66dc1d90d8
ELF2 for arm32
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/arm.v4a-linux.elf-entry.S
new file: stub/src/arm.v4a-linux.elf-entry.lds
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm.v4a-linux.elf-fold.lds
new file: stub/src/arm.v4a-linux.elf-main2.c
new file: stub/src/arm.v4a-linux.elf-so_entry.lds
new file: stub/src/arm.v5a-linux.elf-entry.lds
new file: stub/src/arm.v5a-linux.elf-fold.lds
new file: stub/src/arm.v5a-linux.elf-main2.c
new file: stub/src/arm.v5a-linux.elf-so_entry.lds
new file: stub/src/armeb.v4a-expand.S
new file: stub/src/armeb.v4a-linux.elf-entry.lds
modified: stub/src/armeb.v4a-linux.elf-fold.lds
new file: stub/src/armeb.v4a-linux.elf-main2.c
new file: stub/src/armeb.v4a-linux.elf-so_main2.c
modified: stub/src/i386-linux.elf-main2.c
plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
f7cab0cf71
ELF2 for i386-linux main programs
...
OpenBSD and NetBSD main programs probably need work.
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/i386-linux.elf-entry.S
new file: stub/src/i386-linux.elf-entry.lds
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/i386-linux.elf-fold.lds
new file: stub/src/i386-linux.elf-main2.c
new file: stub/src/i386-linux.elf-so_entry.lds
modified: stub/src/upxfd_android.c
plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
83e2df4c46
Fix pwerpc64 lzma stub
...
modified: stub/src/arch/powerpc/64/lzma_d.S
interactive rebase in progress; onto ac82d473
Last commands done (13 commands done):
pick 821c9dcc ELF2: FIx powerpc64* lzma
pick ad3d6786 Fix pwerpc64 lzma stub
Next commands to do (14 remaining commands):
pick 8389340b ELF2 for i386-linux main programs
pick 921d6ad3 ELF2 for arm32
You are currently rebasing branch 'jreiser-ELF2' on 'ac82d473'.
Changes to be committed:
modified: src/stub/powerpc64-linux.elf-fold.h
modified: src/stub/src/arch/powerpc/64/lzma_d.S
modified: src/stub/tmp/powerpc64-linux.elf-fold.map
2024-08-25 15:16:29 -07:00
John Reiser
31216ed1b2
ELF2: FIx powerpc64* lzma
...
also follow-ons for https://github.com/upx/upx/issues/834
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/amd64-linux.elf-main2.c
modified: stub/src/arch/powerpc/64le/lzma_d-common.S
modified: stub/src/arch/powerpc/64le/lzma_d.S
modified: stub/src/arch/powerpc/64le/ppc_regs.h
modified: stub/src/powerpc64-expand.S
modified: stub/src/powerpc64-linux.elf-fold.S
plus generated *.h *.map *.dump
interactive rebase in progress; onto ac82d473
Last commands done (12 commands done):
pick d6a29e58 CI updates
pick 821c9dcc ELF2: FIx powerpc64* lzma
Next commands to do (15 remaining commands):
pick ad3d6786 Fix pwerpc64 lzma stub
pick 8389340b ELF2 for i386-linux main programs
You are currently rebasing branch 'jreiser-ELF2' on 'ac82d473'.
Changes to be committed:
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/powerpc64-linux.elf-fold.h
modified: src/stub/powerpc64le-linux.elf-fold.h
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
c8a0540fd2
ELF2: FIx powerpc64* lzma
...
also follow-ons for https://github.com/upx/upx/issues/834
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/amd64-linux.elf-main2.c
modified: stub/src/arch/powerpc/64le/lzma_d-common.S
modified: stub/src/arch/powerpc/64le/lzma_d.S
modified: stub/src/arch/powerpc/64le/ppc_regs.h
modified: stub/src/powerpc64-expand.S
modified: stub/src/powerpc64-linux.elf-fold.S
plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
a9b7a0cb27
ELF2: use "gcc -E" instead of /lib/cpp
...
modified: Makefile
2024-08-25 15:16:29 -07:00
John Reiser
c0ff491972
ELF2 for PowerPC64 forgot to add new files
...
new file: src/powerpc64-expand.S
new file: src/powerpc64-linux.elf-main2.c
new file: src/powerpc64le-expand.S
new file: src/powerpc64le-linux.elf-main2.c
2024-08-25 15:16:29 -07:00
John Reiser
146c105961
ELF2 for PowerPC64
...
(MacOS temporarily disabled)
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/arch/powerpc/64/macros.S
modified: stub/src/arch/powerpc/64le/bxx.S
modified: stub/src/arch/powerpc/64le/macros.S
modified: stub/src/arch/powerpc/64le/ppc_regs.h
new file: stub/src/dollar-dollar.sed
modified: stub/src/powerpc64-linux.elf-entry.S
modified: stub/src/powerpc64-linux.elf-fold.S
modified: stub/src/powerpc64-linux.elf-fold.lds
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-fold.lds
modified: stub/src/powerpc64le-linux.kernel.vmlinux.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
5aef158ff0
ELF2: Fix EINVAL when PT_LOAD does not start on page boundary
...
modified: stub/src/amd64-linux.elf-main2.c
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus generated .h .map
2024-08-25 15:16:28 -07:00
John Reiser
4054ac192a
ELF2: memcheck avoids extra safety bytes
...
modified: stub/src/amd64-linux.elf-entry.S
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus generated .h and .dump
2024-08-25 15:16:28 -07:00
John Reiser
febe8e4d9e
whitespace
...
modified: stub/src/arch/amd64/lzma_d.S
2024-08-25 15:16:28 -07:00
John Reiser
c924c32d54
ELF2: fix lzma on amd64-linux.elf-*
...
New -DWINDOWS_BACK so that amd64-win64.pe.h does not change.
This hides a real bug (unchecked), but would change anti-virus status.
modified: src/stub/src/amd64-expand.S
modified: src/stub/src/amd64-linux.elf-entry.S
modified: src/stub/src/amd64-linux.elf-fold.S
modified: src/stub/src/arch/amd64/lzma_d.S
modified: src/stub/Makefile
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus generated *.h, *.map, *.dump
2024-08-25 15:16:28 -07:00
John Reiser
743eb5cc26
whitespace
...
modified: p_lx_elf.cpp
2024-08-25 15:16:28 -07:00
John Reiser
c36977f0b1
ELF: amd64-linux main programs use 2-step de-compressor
...
The first $ARCH to move to 2-step de-compressor for ELF main programs.
De-compressor uses memfd_create to comply with strictest SELinux
settings (no PROT_WRITE on any PROT_EXEC page).
First step de-compressor always uses NRV2B to de-compress the second step,
and the second step can use a different de-compressor for each PT_LOAD.
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/amd64-linux.elf-fold.lds
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-fold.S
new file: stub/src/amd64-linux.elf-main2.c
modified: stub/amd64-linux.elf-entry.h
modified: stub/amd64-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-entry.bin.dump
modified: stub/tmp/amd64-linux.elf-fold.map
2024-08-25 15:16:28 -07:00
Markus F.X.J. Oberhumer
44e4bd0b54
CI updates
2024-08-19 07:55:57 +02:00
Markus F.X.J. Oberhumer
1427b8137a
CI updates
2024-08-13 11:32:29 +02:00
Markus F.X.J. Oberhumer
a9cb354225
CI and cmake updates
2024-08-07 13:37:38 +02:00
Markus F.X.J. Oberhumer
b4db17ab3c
cmake update
2024-07-31 18:56:32 +02:00
Markus F.X.J. Oberhumer
ba969fb9f2
CI updates
2024-07-31 09:24:33 +02:00
Markus F.X.J. Oberhumer
87ac252c8d
CI updates
2024-07-30 17:22:52 +02:00
Markus F.X.J. Oberhumer
ada9081ea2
CI updates
2024-07-28 18:01:54 +02:00
Markus F.X.J. Oberhumer
03c4184067
all: misc cleanups
2024-07-23 12:24:09 +02:00
Markus F.X.J. Oberhumer
0a82280f20
cmake update
2024-07-19 11:13:04 +02:00
Markus F.X.J. Oberhumer
a7fa2f87c5
cmake update
2024-07-17 12:06:41 +02:00
Markus F.X.J. Oberhumer
3a11a5a82e
CI updates
2024-07-13 12:49:02 +02:00
John Reiser
08a38af553
Workaround bug in Alpine Linux
...
"empty" DT_GNU_HASH lacked hasharr[0] when n_bucket==1,
which upx correctly detected as malformed.
modified: p_lx_elf.cpp
2024-07-02 11:24:27 -07:00
Markus F.X.J. Oberhumer
043a54cf3e
all: minor cleanups
2024-07-10 10:34:58 +02:00
Markus F.X.J. Oberhumer
16c8f6d160
src: portability updates
2024-07-07 14:50:27 +02:00
Markus F.X.J. Oberhumer
a77adcd4c7
src: new ACC version
2024-07-01 18:25:54 +02:00
John Reiser
cebd4392f2
Fix checksum error de-compressing ELF with large .p_align and small blocksize
...
https://github.com/upx/upx/issues/836
modified: p_unix.cpp
2024-07-05 19:06:14 -07:00
John Reiser
64a3de5a7a
FIX PT_GNU_HASH when "empty"
...
... such as a main program with no exported globals
https://github.com/upx/upx/issues/834
modified: p_lx_elf.cpp
2024-06-28 09:04:05 -07:00
Markus F.X.J. Oberhumer
261609f706
CI updates
2024-06-26 11:45:35 +02:00
Markus F.X.J. Oberhumer
17cf73001c
CI updates
2024-06-21 18:19:59 +02:00
Markus F.X.J. Oberhumer
ad566d793a
CI updates
2024-06-20 10:49:09 +02:00
Markus F.X.J. Oberhumer
b499ed3d20
CI updates
2024-06-19 00:20:35 +02: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
Markus F.X.J. Oberhumer
dcd8dfd5fc
CI: add zigcc linux-mips soft-float targets
2024-06-17 10:28:53 +02:00
Markus F.X.J. Oberhumer
78f3b6297c
src/pefile.cpp: default to strict reloc checks
2024-06-17 09:35:31 +02:00
John Reiser
1b6c120864
64-bit phdrx[], PT_NOTE, PT_GNU_STACK
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2024-06-13 15:32:51 -07:00
John Reiser
99afc50ebf
PT_MIPS_ABIFLAGS, PT_MIPS_REGINFO
...
Also re-org of PT_HOTE and other non-PT_LOAD Elf32_Phdrs
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2024-06-13 09:58:20 -07:00
John Reiser
3286f7c5ba
De-compression of PT_MIPS_ABIFLAGS
...
modified: p_lx_elf.cpp
2024-06-11 20:03:44 -07:00
John Reiser
72ccca9faf
PT_MIPS_ABIFLAGS, compression side only, 32-bit only
...
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2024-06-11 15:02:13 -07:00
Markus F.X.J. Oberhumer
3c294d9721
all: minor cleanups
2024-06-14 15:15:55 +02:00
Markus F.X.J. Oberhumer
1aff5f5bb7
all: misc cleanups
2024-06-07 22:29:57 +02:00
John Reiser
937ae4c5e0
Avoid crash on outrageous fuzzed input
...
https://github.com/upx/upx/issues/828
modified: p_lx_elf.cpp
2024-06-04 15:43:11 -07:00
John Reiser
056865f59a
Detect bad placement of LINK segment
...
https://github.com/upx/upx/issues/827
modified: p_mach.cpp
2024-06-04 08:55:46 -07:00
John Reiser
c58246b43c
Detect compressed length too short
...
https://github.com/upx/upx/issues/827
modified: p_unix.cpp
2024-06-04 08:32:26 -07:00
Markus F.X.J. Oberhumer
3495d1affd
all: minor cleanups
2024-05-28 10:26:39 +02:00
Markus F.X.J. Oberhumer
b0ce072370
src: fix compilation on older compilers; update tests
2024-05-27 20:59:12 +02:00
Markus F.X.J. Oberhumer
9f4d18baac
src: yet more constexpr updates
2024-05-27 07:03:03 +02:00
Markus F.X.J. Oberhumer
f65c8f8c6f
src: more work on constexpr
2024-05-26 18:22:29 +02:00
Markus F.X.J. Oberhumer
e0633b89bb
CI updates
2024-05-26 12:36:41 +02:00
Markus F.X.J. Oberhumer
c3341ce4dc
src: add support for constexpr bele.h
2024-05-26 02:27:51 +02:00
Markus F.X.J. Oberhumer
344246725b
src: more upx::max cleanups
2024-05-22 09:49:20 +02:00
John Reiser
57763ca1e2
ELF stubs: go_lang different placement of DT_STRTAB, DT_SYMTAB
...
https://github.com/upx/upx/issues/825
modified: p_lx_elf.cpp
2024-05-21 17:14:21 -07:00
Markus F.X.J. Oberhumer
40b7e24fcc
src: introduce upx::max and friends; updates for clang-19 git snapshot
2024-05-15 14:06:05 +02:00
Markus F.X.J. Oberhumer
33f4f3a5a1
all: minor clang-tidy cleanups
2024-05-12 08:35:04 +02:00
Markus F.X.J. Oberhumer
ed3d7b0c45
all: minor cleanups
2024-05-11 22:07:08 +02:00