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
55e4a4f086
Assembler local symbol ("1:") clobbered by code in .macro
...
https://github.com/upx/upx/issues/534
modified: stub/arm64-darwin.macho-entry.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.shlib-init.h
modified: stub/src/arch/arm64/v8/lzma_d.S
modified: stub/src/arch/arm64/v8/macros.S
2022-09-20 13:08:14 -07:00
Markus F.X.J. Oberhumer
d001a63bce
Welcome 2022.
2022-09-04 04:24:39 +02:00
John Reiser
504839951a
arm64 clear_cache at end of de-compress
...
https://github.com/upx/upx/issues/441
modified: stub/src/arch/arm64/v8/macros.S
modified: stub/src/arch/arm64/v8/lzma_d.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/arm64-darwin.macho-entry.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.shlib-init.h
modified: stub/tmp/arm64-darwin.macho-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/arm64-linux.shlib-init.bin.dump
2021-05-16 09:53:03 -07:00
Markus F.X.J. Oberhumer
9131d5216f
Welcome 2021.
2021-01-01 20:39:22 +01:00
Markus F.X.J. Oberhumer
6a6c6d84eb
Rebuild stubs.
2020-01-08 04:30:08 +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
d698eb69e2
Fix decompression stub for arm64 --lzma
...
https://github.com/upx/upx/issues/181
modified: stub/src/arch/arm64/v8/lzma_d.S
2018-02-24 13:04:15 -08:00
John Reiser
5a28a51abc
android shlib: better handling of asl_delta in execution stub
...
modified: p_lx_elf.cpp
modified: stub/src/arm64-linux.shlib-init.S
2018-01-26 12:35:06 -08:00
John Reiser
85f53b210d
de-compression of arm64 --android-shlib
...
modified: src/p_lx_elf.cpp
modified: src/p_lx_elf.h
modified: src/stub/src/arm64-linux.shlib-init.S
2018-01-24 15:39:46 -08: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
7c21c4513e
Android 64-bit ARM shared library stub: use 4Ki page size until more is known
...
https://github.com/upx/upx/issues/124
modified: p_lx_elf.cpp
modified: stub/arm64-linux.shlib-init.h
modified: stub/src/arm64-linux.shlib-init.S
modified: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-12-08 20:05:21 -08:00
John Reiser
46730315e3
stub arm64-linux.shlib-init.S saves 1 instr and checks for assembly errors
...
modified: arm64-linux.shlib-init.S
also .h .bin.dump
2017-10-24 12:50:29 -07:00
John Reiser
4869142034
arm64 stub for shared library uses AT_PAGESZ
...
modified: stub/src/arm64-linux.shlib-init.S
also .h .bin.dump
2017-10-23 18:55:28 -07:00
John Reiser
2f11a629fa
Fix flub: "git --amend" after "git push" is not a good idea.
...
https://github.com/upx/upx/issues/126# Please enter the commit message for your changes. Lines starting
modified: arm64-linux.shlib-init.S
2017-09-25 11:43:38 -07:00
John Reiser
04597fb804
Fix bug in unfilter for shlib on arm64.
...
https://github.com/upx/upx/issues/126
modified: stub/src/arm64-linux.shlib-init.S
and associated *.h, *.bin.dump
2017-09-25 11:38:33 -07:00
John Reiser
96433b4e39
FILTER_ID was wrong for arm64-linux.shlib and arm64-darwin.macho.
...
https://github.com/upx/upx/issues/100 (partial)
modified: stub/src/arm64-darwin.macho-fold.S
modified: stub/src/arm64-linux.shlib-init.S
modified: p_mach.cpp
modified: stub/arm64-darwin.macho-fold.h
modified: stub/arm64-linux.shlib-init.h
2017-08-25 12:51:33 -07:00
John Reiser
140a031515
arm64-linux.shlib-init
...
modified: p_lx_elf.cpp
modified: stub/src/arm64-linux.shlib-init.S
modified: stub/arm64-linux.shlib-init.h
modified: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-06-04 16:52:43 -07:00
John Reiser
a4e47625ac
Sync stubs
...
modified: stub/arm64-darwin.macho-entry.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.shlib-init.h
modified: stub/tmp/arm64-darwin.macho-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-04-07 08:23:30 -07:00
John Reiser
0395c7b407
Use stubtools for arm64.
...
modified: stub/Makefile
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/arm64-linux.shlib-init.h
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-04-02 14:55:39 -07: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
John Reiser
715ddf0620
arm64 hacking
...
modified: stub/src/arch/arm64/v8/macros.S
new file: stub/src/arch/arm64/v8/Makefile.extra
modified: stub/src/arch/arm64/v8/lzma_d-arm.S
modified: stub/src/arch/arm64/v8/lzma_d.S
modified: stub/src/arch/arm64/v8/lzma_d_cf.S
new file: stub/src/arch/arm64/v8/lzma_d_cs.S
modified: stub/src/arm64-darwin.macho-entry.S
modified: stub/arm64-darwin.macho-entry.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.shlib-init.h
modified: stub/tmp/arm64-darwin.macho-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-03-23 20:32:41 -07:00
John Reiser
2c4ef392f6
arm64-linux hacking; returns from upx_main(), only launch remains!
...
modified: stub/src/arch/arm64/v8/lzma_d.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-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-main.c
modified: stub/arm64-darwin.macho-entry.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/arm64-linux.shlib-init.h
modified: stub/tmp/arm64-darwin.macho-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-03-21 21:54:49 -07:00
John Reiser
2a128fe772
Work on arm64 decompression
...
renamed: stub/src/arch/arm64/v8/nrv2b_d8.S -> stub/src/arch/arm64/v8/nrv2b_d32.S
renamed: stub/src/arch/arm64/v8/nrv2d_d8.S -> stub/src/arch/arm64/v8/nrv2d_d32.S
modified: stub/src/arch/arm64/v8/nrv2e_d32.S
deleted: stub/src/arch/arm64/v8/nrv2e_d8.S
modified: stub/src/arm64-darwin.macho-entry.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/arm64-linux.shlib-init.S
modified: stub/arm64-darwin.macho-entry.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/arm64-linux.shlib-init.h
modified: stub/tmp/arm64-darwin.macho-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-03-20 21:23:15 -07:00
John Reiser
4089cc6e6f
arm64-linux compiles
...
modified: conf.h
modified: linker.cpp
modified: linker.h
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: packmast.cpp
modified: stub/Makefile
new file: stub/arm64-linux.shlib-init.h
new file: stub/src/arm64-linux.shlib-init.S
new file: stub/tmp/arm64-linux.elf-entry.bin.dump
new file: stub/tmp/arm64-linux.elf-fold.map
new file: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-03-05 18:07:29 -08:00