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
Markus F.X.J. Oberhumer
47fc230893
all: welcome 2024
2024-01-03 17:47:25 +01:00
Markus F.X.J. Oberhumer
a1d090a6fd
src/stub: add a "clang-format off" directive
2023-10-15 10:55:15 +02:00
John Reiser
adb0ca8250
Many changes for ELF shared libraries on Linux and Android
...
Handling more than 2 PT_LOAD (and thus more than 1 executable PT_LOAD)
required extensive changes. But the bonus is the infrastructure
to support a different (de-)compression algorithm for each PT_LOAD.
https://github.com/upx/upx/issues/341 i386 .so decompression
https://github.com/upx/upx/issues/609 armv7 .so on Android
https://github.com/upx/upx/issues/625 amd64 .so execution
https://github.com/upx/upx/issues/654 armv7 .exe
Not yet: .so on MIPS, PowerPC, PowerPC64
2023-03-04 17:37:25 -08:00
John Reiser
26d8e9c4c5
amd64-linux revamp for compressing shared libraries
...
Major changes: p_lx_elf.cpp and stub/src/amd64-linux.elf-so*.
(Includes run-time infrastructure for multiple de-compressors.)
modified: linker.cpp
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_unix.cpp
modified: p_unix.h
modified: stub/Makefile
modified: stub/src/amd64-darwin.dylib-entry.S
modified: stub/src/amd64-darwin.macho-entry.S
new file: stub/src/amd64-expand.S
modified: stub/src/amd64-linux.elf-entry.S
new file: stub/src/amd64-linux.elf-so_entry.S
new file: stub/src/amd64-linux.elf-so_fold.S
new file: stub/src/amd64-linux.elf-so_fold.lds
new file: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/amd64-linux.shlib-init.S
modified: stub/src/amd64-win64.pep.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
plus many generated stub/*.h and stub/tmp/*.bin.dump
2023-01-09 09:39:25 -08:00
Markus F.X.J. Oberhumer
dd1d5a92d2
all: welcome 2023
2023-01-01 19:49:30 +01:00
John Reiser
4199a44bef
armeb stub: b_method as arg5 is 32-bit unsigned
...
https://github.com/upx/upx/issues/618
modified: src/stub/src/arch/arm/v4a/lzma_d.S
modified: .github/travis_testsuite_1-expected_sha256sums.sh
also src/stub/arm*-linux*.h, src/stub/tmp/*.bin.dump
2022-11-10 08:04:35 -08:00
Markus F.X.J. Oberhumer
d001a63bce
Welcome 2022.
2022-09-04 04:24:39 +02:00
Markus F.X.J. Oberhumer
9131d5216f
Welcome 2021.
2021-01-01 20:39:22 +01:00
Markus F.X.J. Oberhumer
d1174385ef
Welcome 2020.
2020-01-08 04:13:28 +01:00
Markus F.X.J. Oberhumer
3667fa4e44
Welcome 2019.
2019-02-15 11:04:09 +01:00
John Reiser
5e9b6bd69d
more ELF shlib when no DT_INIT (especially Android): hook DT_INIT_ARRAY[0]
...
https://github.com/upx/upx/issues/191 [partial, not finished]
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: stub/src/arm.v4a-linux.shlib-init.S
modified: stub/src/arm.v4t-linux.shlib-init.S
2018-03-26 16:30:52 -07:00
John Reiser
c2b62359d5
arm32 stubs on linux: allow 0==user_DT_INIT as nop; somewhat expensive
...
modified: stub/arm.v5a-linux.shlib-init.h
modified: stub/arm.v5t-linux.shlib-init.h
modified: stub/src/arm.v4a-linux.shlib-init.S
modified: stub/src/arm.v4t-linux.shlib-init.S
modified: stub/tmp/arm.v5a-linux.shlib-init.bin.dump
modified: stub/tmp/arm.v5t-linux.shlib-init.bin.dump
2018-03-24 08:55:04 -07:00
Markus F.X.J. Oberhumer
021c8db58a
Welcome 2018.
2018-01-19 10:55:32 +01:00
John Reiser
c34fe09a79
Revamp --android-shlib
...
Android "Oreo" wants to deal with ElfXX_Shdr[]. So splice 4KiB into PT_LOAD[0]
with an "extra" copy of them. This requires careful relocation processing.
It also costs a page at run time, and an average of a page in the file
(depending on fragmentation at the boundary between r-x and rw- .)
https://github.com/upx/upx/issues/124
https://github.com/upx/upx/issues/139
https://github.com/upx/upx/issues/142
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: stub/src/arm.v4a-linux.shlib-init.S
modified: stub/src/arm.v4t-linux.shlib-init.S
modified: stub/src/arm64-linux.shlib-init.S
modified: stub/arm.v5a-linux.shlib-init.h
modified: stub/arm.v5t-linux.shlib-init.h
modified: stub/arm64-linux.shlib-init.h
modified: ../.github/travis_testsuite_1.sh
2018-01-15 16:08:34 -08:00
John Reiser
513a57330a
xstrip.py: *.bindump was unused; clear e_shnum, e_shstrndx
...
modified: stub/scripts/xstrip.py
modified: stub/Makefile
modified: stub/amd64-darwin.dylib-entry.h
modified: stub/amd64-darwin.macho-entry.h
modified: stub/amd64-linux.elf-entry.h
modified: stub/amd64-linux.kernel.vmlinux.h
modified: stub/amd64-linux.shlib-init.h
modified: stub/amd64-win64.pep.h
modified: stub/arm.v4a-linux.elf-entry.h
modified: stub/arm.v4a-wince.pe.h
modified: stub/arm.v4t-wince.pe.h
modified: stub/arm.v5a-darwin.macho-entry.h
modified: stub/arm.v5a-linux.elf-entry.h
modified: stub/arm.v5a-linux.kernel.vmlinux.h
modified: stub/arm.v5a-linux.kernel.vmlinuz.h
modified: stub/arm.v5a-linux.shlib-init.h
modified: stub/arm.v5t-linux.shlib-init.h
modified: stub/arm64-darwin.macho-entry.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.shlib-init.h
modified: stub/armeb.v4a-linux.elf-entry.h
modified: stub/armeb.v5a-linux.kernel.vmlinux.h
modified: stub/i086-dos16.com.h
modified: stub/i086-dos16.exe.h
modified: stub/i086-dos16.sys.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-entry.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/m68k-atari.tos.h
modified: stub/mips.r3000-linux.elf-entry.h
modified: stub/mipsel.r3000-linux.elf-entry.h
modified: stub/mipsel.r3000-ps1.h
modified: stub/powerpc-darwin.dylib-entry.h
modified: stub/powerpc-darwin.macho-entry.h
modified: stub/powerpc-linux.elf-entry.h
modified: stub/powerpc-linux.kernel.vmlinux.h
modified: stub/powerpc64le-darwin.dylib-entry.h
modified: stub/powerpc64le-darwin.macho-entry.h
modified: stub/powerpc64le-linux.elf-entry.h
modified: stub/powerpc64le-linux.kernel.vmlinux.h
2017-03-24 09:26:40 -07:00
Markus F.X.J. Oberhumer
c4da5e81fa
Welcome 2017.
2017-01-03 12:02:07 +01:00
Markus F.X.J. Oberhumer
f7554374ab
Update email address.
2016-09-28 12:25:01 +02:00
Markus F.X.J. Oberhumer
96d9968db5
Welcome 2016.
2016-09-22 14:07:14 +02:00
Markus F.X.J. Oberhumer
797679b42c
stub: arm renaming.
2016-09-22 11:43:23 +02:00