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
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
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
d71fe3eda0
Sync stub checksums (and generated files)
...
Many *.h, *.dump, *.map
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
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
56bb7b53cb
Synch *.h stub headers and testcase checksums
...
Shared libraries for amd64, i386, arm64, and arm should be
compatible with SELinux: no complaints of execmod or execmem.
https://github.com/upx/upx/issues/609
https://github.com/upx/upx/issues/220
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
modified: stub/amd64-linux.elf-so_entry.h
modified: stub/amd64-linux.elf-so_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/arm64-linux.elf-so_fold.h
modified: stub/i386-linux.elf-so_entry.h
modified: stub/i386-linux.elf-so_fold.h
modified: stub/tmp/amd64-linux.elf-so_entry.bin.dump
modified: stub/tmp/amd64-linux.elf-so_fold.bin.dump
modified: stub/tmp/arm.v5a-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v5a-linux.elf-fold.map
2023-04-30 15:12:29 -07: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