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
Markus F.X.J. Oberhumer
cba44c45fc
src: introduce ptr_get_address()
2024-05-11 17:37:15 +02:00
Markus F.X.J. Oberhumer
7b0a79dec5
all: update LZMA SDK license information
...
The LZMA SDK was placed in the public domain as of
version 4.62 (December 2008).
https://www.7-zip.org/sdk.html
And according to https://sourceforge.net/p/sevenzip/discussion/45797/thread/685169cf/
"Are older LZMA versions in the public domain?"
"Yes, you can use old versions of LZMA SDK as public domain."
-- Igor Pavlov, 2011-06-21
2024-05-11 12:52:26 +02:00
Markus F.X.J. Oberhumer
7081c57571
all: post-release version bump
2024-05-09 12:44:51 +02:00
Markus F.X.J. Oberhumer
3757579ffc
all: prepare for release
2024-05-09 12:03:12 +02:00
Markus F.X.J. Oberhumer
c04c685469
src: restrict upx::atomic_exchange to pointer-size for now
2024-05-08 23:08:33 +02:00
Markus F.X.J. Oberhumer
72c9769953
src: avoid warnings when compiling with llvm-mingw-nightly
2024-05-08 22:22:13 +02:00
Markus F.X.J. Oberhumer
42759b94bd
all: more clang-tidy cleanups
2024-05-08 15:12:57 +02:00
Markus F.X.J. Oberhumer
0f3939df15
src: pacify clang-tidy
2024-05-07 14:46:02 +02:00
RainRat
62265a1bc9
fix typos
2024-05-07 01:41:41 -07:00
Markus F.X.J. Oberhumer
76b2cec8ee
src: fix compilation with clang
2024-05-07 12:33:55 +02:00
Markus F.X.J. Oberhumer
3d82f0cfe1
src: introduce upx::atomic_exchange; cleanups
2024-05-07 10:05:44 +02:00
John Reiser
e5546bc8b0
32-bit ELF escape hatch when no fit on last executable page
...
... about 1/1000 (4/PAGE_SIZE) chance
modified: src/stub/src/i386-linux.elf-main.c
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus all 32-bit elf-fold.h, elf-fold.map
2024-05-06 09:42:13 -07:00
Markus F.X.J. Oberhumer
6fc0a00ac8
all: update for clang-tidy-18
2024-05-06 05:40:22 +02:00
John Reiser
4c32a8e3d4
Fix attempted recovery from corrupted b_info
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66271&q=label%3AProj-upx
modified: p_lx_elf.cpp
2024-05-04 10:35:39 -07:00
John Reiser
2ea316d754
Detect sizeofcmds too small
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66330&q=label%3AProj-upx
modified: p_mach.cpp
2024-05-04 10:10:37 -07:00
John Reiser
548227a55b
mb_dt_offsets.clear() prevents undef from corrupted input
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66344&q=label%3AProj-upx
modified: p_lx_elf.cpp
2024-05-04 09:56:34 -07:00
John Reiser
a831a20910
unpackExtent detects corrupted compression method
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66338&q=label%3AProj-upx
modified: p_unix.cpp
2024-05-04 09:43:47 -07:00
John Reiser
811f66de84
Check gnu_shift during unpack
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66273&q=label%3AProj-upx
modified: p_lx_elf.cpp
2024-05-04 09:05:48 -07:00
Markus F.X.J. Oberhumer
a87fd56b3e
all: update version
2024-05-02 18:51:55 +02:00
Markus F.X.J. Oberhumer
f0cb30e2b9
all: minor cleanups
2024-05-02 18:50:23 +02:00
Markus F.X.J. Oberhumer
038743c694
CI updates
2024-05-02 03:21:27 +02:00
John Reiser
0e6cef99a0
Guard against empty PT_NOTE
...
https://github.com/upx/upx/issues/817
modified: p_lx_elf.cpp
2024-05-01 10:09:52 -07:00
John Reiser
92c925fe95
New i386/lzma-multi_d.S enables unpacking more than one block
...
Used by p_lx_exe.cpp; others keep old i386/lzma_d.S
which allows only one block, but avoids trouble with
anti-virus utilities for some OS.
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
new file: src/stub/src/arch/i386/lzma-multi_d.S
modified: src/stub/src/arch/i386/lzma_d.S
modified: src/stub/src/i386-bsd.elf.execve-entry.S
modified: src/stub/src/i386-linux.elf.execve-entry.S
plus stub/*.h, *.dump
Notable:
modified: src/stub/i386-dos32.djgpp2.h
modified: src/stub/i386-dos32.tmt.h
modified: src/stub/i386-dos32.watcom.le.h
modified: src/stub/i386-win32.pe.h
2024-05-01 10:09:52 -07:00
John Reiser
4562d5459d
Some non-ELF --lzma stubs assumed only one block, and <= 0.5MiB
...
Fixed for p_lx_exc.cpp; others remain a mystery.
https://github.com/upx/upx/issues/816
2024-05-01 10:09:52 -07:00
Markus F.X.J. Oberhumer
8393ded1b3
CI updates
2024-05-01 13:11:12 +02:00
Markus F.X.J. Oberhumer
157a63a023
CI updates
2024-04-28 22:18:47 +02:00
John Reiser
80e22a7e38
Fix --preserve-build-id
...
https://github.com/upx/upx/issues/815
modified: p_lx_elf.cpp
2024-04-27 08:21:48 -07:00
Markus F.X.J. Oberhumer
ddf2da3d76
cmake: run tests in parallel; misc/podman: add 30-rebuild-stubs.sh
2024-04-26 10:36:01 +02:00
Markus F.X.J. Oberhumer
a7592b2ca2
all: enhance tests
2024-04-25 03:19:59 +02:00
John Reiser
265c100845
PowerPC64 nrv2d decompressor
...
https://github.com/upx/upx/issues/813
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/src/arch/powerpc/64le/nrv2d_d.S
modified: src/stub/powerpc64-darwin.dylib-entry.h
modified: src/stub/powerpc64-darwin.macho-entry.h
modified: src/stub/powerpc64-linux.elf-entry.h
modified: src/stub/powerpc64le-linux.elf-entry.h
modified: src/stub/powerpc64le-linux.kernel.vmlinux.h
2024-04-24 14:37:09 -07:00
John Reiser
84e8288f61
Propagate yesterday's fix to stub decoding on PowerPC
...
https://github.com/upx/upx/issues/813
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/src/arch/powerpc/32/nrv2d_d.S
modified: src/stub/src/arch/powerpc/32/nrv2e_d.S
modified: src/stub/src/arch/powerpc/64le/nrv2b_d.S
modified: src/stub/src/arch/powerpc/64le/nrv2d_d.S
modified: src/stub/powerpc-darwin.dylib-entry.h
modified: src/stub/powerpc-darwin.macho-entry.h
modified: src/stub/powerpc-linux.elf-entry.h
modified: src/stub/powerpc-linux.kernel.vmlinux.h
modified: src/stub/powerpc64-darwin.dylib-entry.h
modified: src/stub/powerpc64-darwin.macho-entry.h
modified: src/stub/powerpc64-linux.elf-entry.h
modified: src/stub/powerpc64le-linux.elf-entry.h
modified: src/stub/powerpc64le-linux.kernel.vmlinux.h
modified: src/stub/tmp/powerpc-darwin.dylib-entry.bin.dump
modified: src/stub/tmp/powerpc-darwin.macho-entry.bin.dump
modified: src/stub/tmp/powerpc-linux.elf-entry.bin.dump
modified: src/stub/tmp/powerpc-linux.kernel.vmlinux.bin.dump
modified: src/stub/tmp/powerpc64-darwin.dylib-entry.bin.dump
modified: src/stub/tmp/powerpc64-darwin.macho-entry.bin.dump
modified: src/stub/tmp/powerpc64-linux.elf-entry.bin.dump
modified: src/stub/tmp/powerpc64le-linux.elf-entry.bin.dump
modified: src/stub/tmp/powerpc64le-linux.kernel.vmlinux.bin.dump
2024-04-24 10:36:55 -07:00
Markus F.X.J. Oberhumer
c69b4561fb
src: initialize some fields to suppress harmless valgrind errors
2024-04-24 12:36:22 +02:00
John Reiser
6db0af8d04
PowerPC cannot branch on CArry; requires contortions
...
https://github.com/upx/upx/issues/813
modified: src/stub/src/arch/powerpc/32/nrv2b_d.S
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/powerpc-darwin.dylib-entry.h
modified: src/stub/powerpc-darwin.macho-entry.h
modified: src/stub/powerpc-linux.elf-entry.h
modified: src/stub/powerpc-linux.kernel.vmlinux.h
modified: src/stub/src/i386-linux.elf-main.c
modified: src/stub/tmp/powerpc-darwin.dylib-entry.bin.dump
modified: src/stub/tmp/powerpc-darwin.macho-entry.bin.dump
modified: src/stub/tmp/powerpc-linux.elf-entry.bin.dump
modified: src/stub/tmp/powerpc-linux.kernel.vmlinux.bin.dump
2024-04-23 17:40:07 -07:00
John Reiser
9fb64ded10
Syscall on powerpc linux wipes arg registers, unlike x86_64
...
Also squeaky-clean 'get_page_mask' for I/D cache consistency.
https://github.com/upx/upx/issues/813
modified: stub/powerpc-linux.elf-entry.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/tmp/powerpc-linux.elf-entry.bin.dump
modified: stub/tmp/powerpc-linux.elf-fold.map
2024-04-21 19:46:05 -07:00
Markus F.X.J. Oberhumer
9d26713b1a
Add experimental (and undocumented) --help-verbose and --help-short options.
2024-04-21 14:20:18 +02:00
Markus F.X.J. Oberhumer
eb3c55b5cb
all: add more tests
2024-04-21 12:17:38 +02:00
Markus F.X.J. Oberhumer
896596f672
cmake update
2024-04-20 21:08:09 +02:00
Markus F.X.J. Oberhumer
e4de14612f
CI updates
2024-04-20 12:29:32 +02:00
Markus F.X.J. Oberhumer
1d2b276425
all: improve tests
2024-04-16 15:20:56 +02:00
Markus F.X.J. Oberhumer
35c6a200ad
CI updates
2024-04-14 02:15:26 +02:00
Markus F.X.J. Oberhumer
90a7faa15e
CI updates
2024-04-10 10:52:48 +02:00
John Reiser
91f5fe1c0e
arm64 --nrv2d instruction confusion
...
https://github.com/upx/upx/issues/806
ARM Architecture Reference Manual
ARMv8, for ARMv8-A architecture profile
Section C6.2.47, page C6-595 (note the 'invert'!)
CINC <Wd>, <Wn>, <cond>
is equivalent to
CSINC <Wd>, <Wn>, <Wn>, invert(<cond>)
modified: src/stub/src/arch/arm64/v8/nrv2d_d32.S
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/arm64-darwin.macho-entry.h
modified: src/stub/arm64-linux.elf-entry.h
modified: src/stub/arm64-linux.elf-so_fold.h
modified: src/stub/arm64-linux.shlib-init.h
modified: src/stub/arm64-win64.pe.h
2024-04-07 14:01:19 -07:00
John Reiser
bb816f0c74
arm64 --nrv2d preserve sign when decoding offset
...
https://github.com/upx/upx/issues/806
modified: src/stub/arm64-darwin.macho-entry.h
modified: src/stub/arm64-linux.elf-entry.h
modified: src/stub/arm64-linux.elf-so_fold.h
modified: src/stub/arm64-linux.shlib-init.h
modified: src/stub/arm64-win64.pe.h
modified: src/stub/src/arch/arm64/v8/nrv2d_d32.S
2024-04-06 16:16:28 -07:00
John Reiser
93abe97ea5
powerpc64le --nrv2d register conflict
...
modified: stub/powerpc64-darwin.dylib-entry.h
modified: stub/powerpc64-darwin.macho-entry.h
modified: stub/powerpc64-linux.elf-entry.h
modified: stub/powerpc64le-linux.elf-entry.h
modified: stub/powerpc64le-linux.kernel.vmlinux.h
modified: stub/src/arch/powerpc/64le/nrv2d_d.S
modified: stub/src/arch/powerpc/64le/nrv2e_d.S
https://github.com/upx/upx/issues/806
2024-04-06 16:16:28 -07:00
Markus F.X.J. Oberhumer
97cf29ffbb
all: enhance CMake tests; assorted updates
2024-04-06 15:47:46 +02:00
Markus F.X.J. Oberhumer
0f9315383c
cmake: only enable UBSAN for clang versions >= 9
2024-04-02 09:21:56 +02:00
Markus F.X.J. Oberhumer
3538d796a7
CI updates
2024-04-02 08:05:43 +02:00
Markus F.X.J. Oberhumer
24f3824524
CI updates and minor cleanups
2024-04-01 20:31:05 +02:00
Markus F.X.J. Oberhumer
70b20d7d89
CI updates
2024-03-29 12:11:41 +01:00
Markus F.X.J. Oberhumer
7b21a0620b
CI updates
2024-03-28 20:21:11 +01:00
John Reiser
3949af6d3c
Unpacking detects and defends against malicious ELF
2024-03-28 07:48:55 -07:00
Markus F.X.J. Oberhumer
6e644fa480
all: post-release version bump
2024-03-28 19:47:04 +01:00
Markus F.X.J. Oberhumer
5bef968068
all: prepare for release
2024-03-27 13:57:30 +01:00
Markus F.X.J. Oberhumer
3ba91b8072
cmake update
2024-03-26 15:38:20 +01:00
Markus F.X.J. Oberhumer
a27a9e6000
all: and yet more cleanups; NFCI
2024-03-25 11:07:40 +01:00
Markus F.X.J. Oberhumer
7e839e6962
all: more cleanups; NFCI
2024-03-23 20:18:28 +01:00
Markus F.X.J. Oberhumer
9b80628f84
src/pefile.cpp: support relocs of large files
...
Use 5-byte entries instead of 4-byte entries to fully preserve "pos".
And add some symbolic constants.
Partially based on a patch by John.
2024-03-22 00:46:17 +01:00
Markus F.X.J. Oberhumer
a21a006fe9
all: yet more minor cleanups
2024-03-19 16:03:37 +01:00
Markus F.X.J. Oberhumer
54d16a458a
CI updates; cleanups
2024-03-16 17:46:40 +01:00
Markus F.X.J. Oberhumer
e3d24238e4
all: update version
2024-03-12 18:12:43 +01:00
Markus F.X.J. Oberhumer
56e7b36959
src: new ACC version
2024-03-12 18:11:46 +01:00
Markus F.X.J. Oberhumer
f29791470f
all: yet more cleanups
2024-03-10 16:23:06 +01:00
Markus F.X.J. Oberhumer
52d9b53b74
all: minor cleanups
2024-03-08 11:52:44 +01:00
Markus F.X.J. Oberhumer
839a78f2e0
Better fix for previous commit to avoid out-of-bounds pointer.
2024-02-27 11:20:29 +01:00
John Reiser
680ce0a7af
find_dt_ndx defends against overrun
...
https://github.com/upx/upx/issues/790
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66344&q=label%3AProj-upx
modified: p_lx_elf.cpp
2024-02-26 14:32:02 -08:00
Markus F.X.J. Oberhumer
06b0de9c77
CI: work-around zig cc mips bad codegen for hard-float
2024-02-17 16:34:11 +01:00
Markus F.X.J. Oberhumer
76b0b7b1ae
all: clang-format
2024-02-14 21:29:51 +01:00
John Reiser
fabda4df3a
R_PPC64_REL24 is reallly "PC-rel. 26 bit, word aligned:
...
Just like R_PPC_REL24
modified: linker.cpp
2024-02-14 11:43:20 -08:00
Markus F.X.J. Oberhumer
fdcdaf596a
all: pacify clang-tidy, CI and cmake updates
2024-02-14 15:14:47 +01:00
Markus F.X.J. Oberhumer
ae6d3b9bff
all: more assorted cleanups
2024-02-09 14:48:47 +01:00
John Reiser
25aa0e2e46
un_asl_dynsym() should skip when !dynstr
...
https://github.com/upx/upx/issues/785
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66302
modified: p_lx_elf.cpp
2024-02-08 19:32:03 -08:00
Markus F.X.J. Oberhumer
29ce4807fb
all: minor updates
2024-02-04 13:37:00 +01:00
John Reiser
41f6945be1
Fix auxv_up() to avoid SIGSEGV under valgrind
...
https://github.com/upx/upx/issues/784
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/i386-linux.elf-main.c
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus all generated stub/*-linux.elf-fold.{h,map}
2024-02-03 13:58:53 -08:00
Markus F.X.J. Oberhumer
718ec468ff
all: more assorted cleanups; NFCI
2024-02-02 10:17:16 +01:00
John Reiser
d429801498
Avoid &file_image[file_size] because some Standards object
...
modified: p_lx_elf.cpp
2024-02-01 11:41:04 -08:00
Markus F.X.J. Oberhumer
024091e6b5
src: fix previous bounds checking commit
2024-01-31 20:52:19 +01:00
Markus F.X.J. Oberhumer
d849e9de98
src: add some bounds checking to MemBufferBase
2024-01-31 16:48:55 +01:00
John Reiser
c0e40da2ab
more checking of Mach_header when unpacking for MachOS
...
https://github.com/upx/upx/issues/783
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65532
modified: p_mach.cpp
2024-01-27 14:16:53 -08:00
John Reiser
dff3766501
Detect too-large bit-shift in elf_lookup of DT_GNUHASH
...
https://github.com/upx/upx/issues/782
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65776
modified: p_lx_elf.cpp
2024-01-27 13:38:25 -08:00
John Reiser
2767ec54e1
more checking of PackUnix::p_info at unpack
...
https://github.com/upx/upx/issues/781
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65864
modified: p_unix.cpp
2024-01-27 13:06:59 -08:00
John Reiser
ac72c02793
check nbucket earlier in DT_HASH on ELF
...
https://github.com/upx/upx/issues/780
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66079
modified: p_lx_elf.cpp
2024-01-27 11:42:25 -08:00
John Reiser
69c51eee4d
better checking of DT_STRSZ for ELF
...
https://github.com/upx/upx/issues/779
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66064
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2024-01-27 11:11:07 -08:00
John Reiser
ff5a4eeb96
ELF versus --brute: addStubEntrySections() needs ph_forced_method()
...
https://github.com/upx/upx/issues/770
modified: p_lx_elf.cpp
2024-01-25 17:17:32 -08:00
John Reiser
b48f870701
Detect circular DT_HASH and DT_GNUHASH lookup
...
https://github.com/upx/upx/issues/775
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65811&q=label%3AProj-upx
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65840&q=label%3AProj-upx
2024-01-25 15:05:53 -08:00
John Reiser
10807ebdc2
Unpack 8-byte b_info only if (ph.version <= 11): 2001 or earlier
...
*x86 only: .e_entry too low
https://github.com/upx/upx/issues/774
modified: p_lx_elf.cpp
2024-01-25 09:06:46 -08:00
Markus F.X.J. Oberhumer
5d649f83ec
all: assorted cleanups
2024-01-24 20:53:14 +01:00
John Reiser
d615985b8a
elf_find_table_size() did not check for empty table
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65765&q=label%3AProj-upx
https://github.com/upx/upx/issues/771
modified: p_lx_elf.cpp
2024-01-18 19:11:12 -08:00
John Reiser
38ed4b2017
arm32, arm64 ABI for -static must preserve register 0
...
Also arm32 forgot to unmap the expanded de-compressor via the escape hatch.
https://github.com/upx/upx/issues/758
https://github.com/upx/upx/issues/768
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/amd64-linux.elf-main.c
plus associated *.h *.map *.dump
2024-01-12 15:39:18 -08:00
John Reiser
2ad0d51226
PeFile::rebuildImports(): Allow strlen() up to the very end of a logical block
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65650
https://github.com/upx/upx/issues/769
modified: pefile.cpp
2024-01-11 09:57:57 -08:00
John Reiser
e4a611bcae
PeFile ::readPeHeader should check ih.subsystem.
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65526
https://github.com/upx/upx/issues/767
modified: pefile.cpp
2024-01-10 16:28:17 -08:00
John Reiser
f3728d99b9
Check ph.method in PackMachBase::unpack
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65553
https://github.com/upx/upx/issues/766
modified: p_mach.cpp
2024-01-10 16:04:08 -08:00
John Reiser
b87f60a917
Check Mach_fat_arch.align
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65558
https://github.com/upx/upx/issues/765
modified: p_mach.cpp
2024-01-10 15:31:37 -08:00
John Reiser
28f26da6ab
Need more care in PackMachBase::canUnpack()
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65532
https://github.com/upx/upx/issues/764
modified: p_mach.cpp
2024-01-10 15:14:54 -08:00
John Reiser
d3e780d617
Unpacking ELF requires e_phnum at least 2
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65535
https://github.com/upx/upx/issues/763
modified: p_lx_elf.cpp
2024-01-10 14:07:58 -08:00
John Reiser
d549c2b5c9
More care when recovering from slid b_info
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65531
https://github.com/upx/upx/issues/762
modified: p_lx_elf.cpp
2024-01-10 13:38:18 -08:00
John Reiser
f310ce376e
Beware fuzzer setting compressed size too small
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65519
https://github.com/upx/upx/issues/761
modified: p_unix.cpp
2024-01-10 11:20:47 -08:00
John Reiser
553fc9b1fb
invert_pt_dynamic: Compilers differ, unsigned vs. signed
...
modified: p_lx_elf.cpp
2024-01-10 10:33:33 -08:00
John Reiser
6dde9f7dc0
find_overlay_offset() did not check carefully enough
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65518
https://github.com/upx/upx/issues/760
modified: p_unix.cpp
2024-01-10 10:05:28 -08:00
John Reiser
3dca1175e5
invert_pt_dynamic() needs better checking for malformed input
...
https://github.com/upx/upx/issues/759
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65510
modified: p_lx_elf.cpp
2024-01-10 09:41:12 -08:00
John Reiser
09c5e38322
arm64-linux.elf ABI owns x0 at execve()?
...
https://github.com/upx/upx/issues/758
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/arm64-linux.elf-fold.h
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/tmp/arm64-linux.elf-fold.map
2024-01-09 12:17:01 -08:00
John Reiser
fe6f1f0bb6
arm64-linux.elf-fold.S typo (eyesight)
...
https://github.com/upx/upx/issues/743
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/arm64-linux.elf-fold.h
modified: src/stub/src/arm64-linux.elf-fold.S
2024-01-09 10:01:07 -08:00