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
a35e50c02a
ZIG_DIST_VERSION: 0.14.0-dev.2271+f845fa04a
...
modified: ci.yml
2024-11-21 13:06:06 -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