1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00
Commit Graph

3869 Commits

Author SHA1 Message Date
Markus F.X.J. Oberhumer
1ff0d137ab all: misc updates 2023-06-13 16:42:14 +02:00
John Reiser
07aa65b55e Sync stubs
Dependency processing does not propagate this one:
src/stub/src/arm.v5a-darwin.macho-main.c:
   #include "amd64-darwin.macho-main.c"
	modified:   arm.v5a-darwin.macho-fold.h
	modified:   tmp/arm.v5a-darwin.macho-fold.map
2023-06-13 16:29:13 +02:00
John Reiser
0fadddec65 Force 'bkpt' on arm.v5a and below
fixup  https://github.com/upx/upx/issues/612
	modified:   stub/src/amd64-darwin.macho-main.c
2023-06-13 16:29:13 +02:00
John Reiser
1bebe53cef Allow more bytes for Mach_headers in /usr/lib/dyld on MacOS 13
Fixes initial complaint (HelloUPX4) in https://github.com/upx/upx/issues/612
	modified:   stub/amd64-darwin.macho-fold.h
	modified:   stub/arm64-darwin.macho-fold.h
	modified:   stub/src/amd64-darwin.macho-fold.S
	modified:   stub/src/amd64-darwin.macho-main.c
	modified:   stub/tmp/amd64-darwin.macho-fold.map
	modified:   stub/tmp/arm64-darwin.macho-fold.map
2023-06-13 16:29:13 +02:00
John Reiser
43019c744c Document requirement for 'homebrew' when developing on MacOS
... else testsuite fails for "readlink -en" and 'sha256sum'
https://github.com/upx/upx/issues/676
	modified:   README.SRC
2023-06-13 16:29:13 +02:00
Markus F.X.J. Oberhumer
c585774162 CI: disable self-test on macos-13 2023-06-10 11:02:19 +02:00
Markus F.X.J. Oberhumer
75e87a58da src: rework mem_clear() 2023-06-09 18:20:06 +02:00
Markus F.X.J. Oberhumer
19e84fea62 all: yet more minor updates 2023-06-09 14:12:05 +02:00
Markus F.X.J. Oberhumer
db39f9c4dc all: CI and misc updates 2023-06-06 23:16:28 +02:00
Markus F.X.J. Oberhumer
dae45ae0d4 all: bump version; cleanups 2023-05-28 14:06:11 +02:00
Markus F.X.J. Oberhumer
efeffc6e01 submodules: update for new versions 2023-05-28 13:58:27 +02:00
Markus F.X.J. Oberhumer
ebf0f2f68a all: more minor cleanups 2023-05-27 22:58:07 +02:00
Markus F.X.J. Oberhumer
09bd1d8c40 all: misc updates 2023-05-19 13:21:26 +02:00
Markus F.X.J. Oberhumer
40653e40a4 all: minor cleanups 2023-05-14 09:36:10 +02:00
Markus F.X.J. Oberhumer
b3e4efbabe all: misc updates 2023-05-13 16:28:44 +02:00
John Reiser
279101d464 Fix checksum of non-compressible extents
https://github.com/upx/upx/issues/673
	modified:   src/p_unix.cpp
2023-05-13 16:28:22 +02:00
Markus F.X.J. Oberhumer
f571feee72 CI: use gcc -static for macos builds 2023-05-10 20:42:26 +02:00
Markus F.X.J. Oberhumer
900afd1c8c all: minor updates 2023-05-10 20:20:39 +02:00
Markus F.X.J. Oberhumer
08a72d5251 Fix whitespace. 2023-05-10 20:19:22 +02:00
John Reiser
736a6cd955 Catch amd64 ET_EXEC with .e_entry < 0x400000
https://github.com/upx/upx/issues/673
	modified:   p_lx_elf.cpp
2023-05-10 20:17:22 +02:00
John Reiser
75ce5e5df3 Fix SIGSEGV due to name confusion in ::forward_Shdrs
https://github.com/upx/upx/issues/671
	modified:   p_lx_elf.cpp
2023-05-10 20:17:22 +02:00
Markus F.X.J. Oberhumer
eaf2143162 CI: add macos-13 2023-05-03 10:06:22 +02:00
Markus F.X.J. Oberhumer
f0bdb8dea1 submodules: update for new versions 2023-05-03 09:49:20 +02:00
John Reiser
60093cfff6 Merge branch 'devel4' of https://github.com/upx/upx into devel4 2023-04-30 15:19:44 -07: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
0cffeca102 arm32 shlib works with SELinux
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/arm64-linux.elf-so_entry.S
	modified:   stub/src/i386-linux.elf-so_main.c
2023-04-28 13:52:26 -07:00
John Reiser
937d4462ca SELinux for i386 shlib stub
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
2023-04-27 18:49:35 -07:00
John Reiser
db5a39572c Change stub for arm64 shlib to work with SELinux
modified:   stub/src/arm64-linux.elf-so_entry.S
	modified:   stub/src/arm64-linux.elf-so_fold.S
2023-04-27 10:44:13 -07:00
John Reiser
ecc9c67e1f Check return value from syscalls; leave debugging hint if error
modified:   stub/src/amd64-linux.elf-so_entry.S
2023-04-27 10:42:56 -07:00
John Reiser
0901ce1b68 amd64-linux.elf shlib now fully-SELinux compliant
modified:   stub/src/amd64-linux.elf-so_entry.S
	modified:   stub/src/amd64-linux.elf-so_fold.S
2023-04-26 13:06:48 -07:00
John Reiser
be6e77379a SELinux forces memfd_create for .so on amd64, arm64
More coming for .so: so_entry.S, powerpc64, 32-bit
	modified:   stub/src/amd64-linux.elf-so_main.c
	modified:   stub/src/arm64-linux.elf-so_entry.S
	modified:   stub/src/arm64-linux.elf-so_fold.S
2023-04-26 08:30:55 -07:00
Markus F.X.J. Oberhumer
726f5de778 src: minor cleanups 2023-04-26 08:13:32 +02:00
John Reiser
98b835e0a7 WIP: SELinux is expensive: +2KB in stub
Needs make_hatch()
	modified:   stub/src/amd64-linux.elf-so_main.c
	modified:   stub/src/amd64-linux.elf-so_fold.S

	modified:   stub/amd64-linux.elf-so_fold.h
	modified:   stub/arm64-linux.elf-so_fold.h
	modified:   stub/src/arm.v4a-linux.elf-so_fold.S
	modified:   stub/tmp/amd64-linux.elf-so_fold.bin.dump
2023-04-24 19:40:57 -07:00
John Reiser
04ffb641a6 Compilers generate junk .sh_info
modified:   p_lx_elf.cpp
2023-04-24 19:37:25 -07:00
John Reiser
1b7233b673 whitespace
modified:   stub/src/amd64-expand.S
2023-04-24 19:35:52 -07:00
John Reiser
eaa0f33473 Fix call to unfilter from amd64-expand
modified:   stub/src/amd64-expand.S

	modified:   stub/amd64-linux.elf-fold.h
	modified:   stub/amd64-linux.elf-so_fold.h
	modified:   stub/tmp/amd64-linux.elf-fold.map
	modified:   stub/tmp/amd64-linux.elf-so_fold.bin.dump
2023-04-21 08:57:10 -07:00
Markus F.X.J. Oberhumer
c03b382d61 src: some more "noexcept" 2023-04-20 20:58:19 +02:00
Markus F.X.J. Oberhumer
e633694255 cmake: use MSVC_FRONTEND 2023-04-20 20:10:12 +02:00
Markus F.X.J. Oberhumer
278b25bad2 cmake: check CMAKE_C_COMPILER_FRONTEND_VARIANT 2023-04-20 14:54:14 +02:00
Markus F.X.J. Oberhumer
f89f0838dc src: change UPX_CONFIG logic to permissive defaults 2023-04-20 14:13:36 +02:00
Markus F.X.J. Oberhumer
b1729e3bcf src: cleanup MAX_ELF_HDR 2023-04-19 23:23:46 +02:00
Markus F.X.J. Oberhumer
d1ab85a1a6 src: cleanup linker.h 2023-04-19 23:19:45 +02:00
John Reiser
7f5b64c91a Merge branch 'devel4' of https://github.com/upx/upx into devel4 2023-04-19 14:00:43 -07:00
John Reiser
78b68283c4 Fix .e_entry for PowerPC64
https://github.com/upx/upx/issues/668
	modified:   p_lx_elf.cpp
2023-04-19 13:58:52 -07:00
Markus F.X.J. Oberhumer
9e3b1c9f8a src: enable TE checks in packer.h; add some "noexcept" 2023-04-18 17:56:28 +02:00
Markus F.X.J. Oberhumer
5dc54c7adc Merge branch 'devel' into devel4 2023-04-18 17:15:57 +02:00
Markus F.X.J. Oberhumer
320e5b850f all: yet more cleanups
Changes include:
  - use standard names for PE constants
  - add some more "noexcept"
  - improve upx_is_integral type-trait
  - introduce is_same_all and is_same_any type-traits
  - prepare TE-size checks in packer.h
  - CI updates
2023-04-18 17:02:13 +02:00
John Reiser
d8395d8c42 Fix usage of _te32/_te64/_te16 for Elf classes
How did it ever work?  UPX_RSIZE_MAX_MEM of 768MiB, Elf32_Off of only
32-bits, and preponderance of little-endian and small positive integers
hides many mis-uses of _te64/_te32.
ELF does not help: e_phnum, e_shnum, Elf32_Section, Elf64_Section are all
16-bit, but sh_info and sh_link are 32-bit.
Templatizing p_elf.h (following the example of p_mach.h) failed
because of complexity.  (Plus too many special cases of ELF where 32-bit
and 64-bit are not parallel.)
	modified:   p_lx_elf.cpp
	modified:   p_lx_sh.cpp
	modified:   p_mach.cpp
2023-04-17 13:19:06 -07:00
John Reiser
a20c5a1e7f Align 64-bit forward_Shdr
//github.com/upx/upx/issues/220
	modified:   p_lx_elf.cpp
2023-04-12 14:54:49 -07:00
John Reiser
3bdfcaa541 Try to placate Android crapware, which cannot deal with null strings
From https://github.com/upx/upx/issues/220 :

Phone:
04-10 16:07:52.862 E/AndroidRuntime( 5178): java.lang.UnsatisfiedLinkError: dlopen failed: \
"/data/app/~~Nwb-iR6LHpHyrT37xe8HNg==/com.android.support-y0YbcwLn1b4sBRD09JGVAw==/lib/arm64/libMyLibName.so" \
has unsupported e_shentsize: 0x0 (expected 0x40)

Emulator:
04-10 09:57:38.746 E/AndroidRuntime( 6403): java.lang.UnsatisfiedLinkError: dlopen failed: \
"/data/app/~~sBBMDvh36TxwO4muxOJ3Bg==/com.android.support-8Lc6r2dLzTIW7SEHXLI0XQ==/lib/arm64/libMyLibName.so" \
has no section headers

	modified:   p_lx_elf.cpp
2023-04-11 13:41:54 -07:00