1
0
mirror of https://github.com/upx/upx synced 2025-10-05 19:20:23 +08:00
Commit Graph

221 Commits

Author SHA1 Message Date
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
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
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
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
eaf2143162 CI: add macos-13 2023-05-03 10:06:22 +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
Markus F.X.J. Oberhumer
726f5de778 src: minor cleanups 2023-04-26 08:13:32 +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
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
7b2faf2016 Elf64_Rela for shlib DT_INIT_ARRAY
Also allow PT_PHDR in shlibs.
Also page align lo end of mmap, like mprotect.
        https://github.com/upx/upx/issues/664
	modified:   p_lx_elf.cpp
	modified:   stub/src/amd64-linux.elf-so_main.c
	modified:   stub/src/i386-linux.elf-so_main.c

	modified:   stub/src/amd64-linux.elf-so_fold.S
	modified:   stub/src/arm.v4a-linux.elf-fold.S
	modified:   stub/src/arm.v4a-linux.elf-so_fold.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/arm64-linux.elf-so_fold.S
	modified:   stub/src/i386-linux.elf-so_fold.S

	modified:   stub/amd64-linux.elf-so_fold.h
	modified:   stub/arm.v4a-linux.elf-fold.h
	modified:   stub/arm.v4a-linux.elf-so_fold.h
	modified:   stub/arm.v5a-linux.elf-fold.h
	modified:   stub/arm.v5a-linux.elf-so_fold.h
	modified:   stub/arm64-linux.elf-fold.h
	modified:   stub/arm64-linux.elf-so_fold.h
	modified:   stub/armeb.v4a-linux.elf-fold.h
	modified:   stub/i386-linux.elf-so_fold.h

	modified:   stub/tmp/amd64-linux.elf-so_fold.bin.dump
	modified:   stub/tmp/arm.v4a-linux.elf-fold.map
	modified:   stub/tmp/arm.v5a-linux.elf-fold.map
	modified:   stub/tmp/arm64-linux.elf-fold.map
	modified:   stub/tmp/armeb.v4a-linux.elf-fold.map

	modified:   stub/src/arch/mips/r3000/macros.ash
	modified:   ../.github/travis_testsuite_1-expected_sha256sums.sh
2023-04-11 11:00:48 -07:00
John Reiser
b9533f409c Sync testsuite checksums
modified:   ../.github/travis_testsuite_1-expected_sha256sums.sh
2023-03-29 16:11:08 -07:00
Markus F.X.J. Oberhumer
f68ac8155b Merge branch 'devel' into devel4 2023-03-18 21:52:17 +01:00
Markus F.X.J. Oberhumer
15484aa296 all: more cleanups
Changes include:
  - extract headers.h from conf.h
  - use "byte" in some more places
  - unify "const" coding style
  - pefile.cpp: make sort order deterministic
  - simplify some other pefile.cpp code
  - CI updates
2023-03-18 21:27:34 +01:00
Markus F.X.J. Oberhumer
d32f447bda Merge branch 'devel' into devel4 2023-03-15 22:34:05 +01:00
Markus F.X.J. Oberhumer
a627648249 all: assorted cleanups and updates
Changes include:
  - add a bunch of "noexcept", mostly to operators and forceinline
  - use "uchar"
  - use "charptr"
  - rename options_t to Options
  - add ptr_check_no_overlap()
  - rewrite p_exe.cpp, NFCI
  - clang-format help.cpp
  - spelling fixes
2023-03-15 00:19:55 +01:00
Markus F.X.J. Oberhumer
127fd095e7 CI: add spell-check.yml 2023-03-11 03:11:19 +01:00
John Reiser
17526d1132 Make it easier to change MAX_ELF_HDR consistently
https://github.com/upx/upx/issues/655

	new file:   MAX_ELF_HDR.cpp
	new file:   stub/src/MAX_ELF_HDR.S
	new file:   stub/src/MAX_ELF_HDR.c

	modified:   p_lx_elf.cpp
	modified:   stub/arm.v4a-linux.elf-fold.h
	modified:   stub/arm64-linux.elf-fold.h
	modified:   stub/src/amd64-linux.elf-fold.S
	modified:   stub/src/amd64-linux.elf-main.c
	modified:   stub/src/amd64-linux.elf-so_main.c
	modified:   stub/src/arm.v4a-linux.elf-fold.S
	modified:   stub/src/arm.v4a-linux.elf-so_fold.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/arm64-linux.elf-so_fold.S
	modified:   stub/src/i386-bsd.elf-fold.S
	modified:   stub/src/i386-bsd.elf-main.c
	modified:   stub/src/i386-linux.elf-fold.S
	modified:   stub/src/i386-linux.elf-main.c
	modified:   stub/src/i386-linux.elf-so_main.c
	modified:   stub/src/i386-linux.elf.interp-fold.S
	modified:   stub/src/i386-linux.elf.interp-main.c
	modified:   stub/src/i386-linux.elf.shell-fold.S
	modified:   stub/src/i386-linux.elf.shell-main.c
	modified:   stub/src/i386-openbsd.elf-fold.S
	modified:   stub/src/i386-openbsd.elf-main.c
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
	modified:   ../.github/travis_testsuite_1-expected_sha256sums.sh
2023-03-09 10:06:13 -08:00
John Reiser
96c196b1be Final ph.u_len and ph.c_len reflect multiple compressed extents
https://github.com/upx/upx/issues/655
	modified:   ../.github/travis_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
2023-03-09 09:06:06 -08: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
Markus F.X.J. Oberhumer
4a8efd2e2f src: rework optimizeReloc handling; cleanups 2023-02-21 15:19:24 +01:00
Markus F.X.J. Oberhumer
8d364c82e2 CI: add build for windows arm64ec 2023-02-12 19:27:56 +01:00
Markus F.X.J. Oberhumer
f584c91386 all: canonicalize win32 and win64 file names 2023-02-10 09:49:29 +01:00
Markus F.X.J. Oberhumer
b8d9c2b755 all: assorted updates and cleanups 2023-02-05 17:20:32 +01:00
Markus F.X.J. Oberhumer
163377d1a0 testsuite: update checksums caused by version bump 2023-01-30 13:44:18 +01:00
Markus F.X.J. Oberhumer
0653bb5a72 src: some xspan cleanups 2023-01-30 11:03:11 +01:00
Markus F.X.J. Oberhumer
5056215a1f all: more assorted cleanups 2023-01-29 11:39:57 +01:00
Markus F.X.J. Oberhumer
8a1bd67a20 src: more valgrind integration 2023-01-26 08:50:30 +01:00
Markus F.X.J. Oberhumer
a094df7b55 all: more cleanups; NFCI 2023-01-24 21:52:10 +01:00
Markus F.X.J. Oberhumer
cc893dfc11 CI: add zigcc and scan-build 2023-01-22 22:07:35 +01:00
Markus F.X.J. Oberhumer
8ef17da082 all: cleanups 2023-01-22 18:44:31 +01:00
Markus F.X.J. Oberhumer
2632342f44 all: remove currently unused submodules 2023-01-19 03:32:49 +01:00
Markus F.X.J. Oberhumer
8efcf6f099 src: move console files into a subdir; NFC 2023-01-18 14:19:15 +01:00
Markus F.X.J. Oberhumer
6c41a4c9c8 src: move compress files into a subdir; clang-format some more files; NFC 2023-01-18 09:28:12 +01:00
Markus F.X.J. Oberhumer
334be287fc CI: add minimal-ci 2023-01-17 23:43:24 +01:00
Markus F.X.J. Oberhumer
cc994326a0 all: cleanups 2023-01-15 13:49:27 +01:00
Markus F.X.J. Oberhumer
9f830e0c41 all: add zstd compression library 2023-01-13 22:25:15 +01:00
Markus F.X.J. Oberhumer
9f00515da4 CI: fix windows build 2023-01-05 02:29:12 +01:00
Markus F.X.J. Oberhumer
72f3e9b25a all: require C++17 2023-01-03 15:11:11 +01:00
John Reiser
811b15a5b3 Fix crash with TLS init in i386 dll
https://github.com/upx/upx/issues/643
	modified:   .github/travis_testsuite_1-expected_sha256sums.sh
	modified:   src/stub/i386-win32.pe.h
	modified:   src/stub/src/i386-win32.pe.S
	modified:   src/stub/tmp/i386-win32.pe.bin.dump
2023-01-12 18:35:04 -08:00
John Reiser
ab00825f37 i386 shared library TLS init
https://github.com/upx/upx/issues/643
	modified:   .github/travis_testsuite_1-expected_sha256sums.sh
	modified:   src/p_w32pe.cpp
	modified:   src/stub/i386-win32.pe.h
	modified:   src/stub/src/i386-win32.pe.S
	modified:   src/stub/tmp/i386-win32.pe.bin.dump
2023-01-12 14:34:06 -08:00
John Reiser
e86d9179aa Sync testsuite
modified:   .github/travis_testsuite_1-expected_sha256sums.sh
	modified:   src/p_lx_elf.cpp
2023-01-09 10:51:47 -08:00
Markus F.X.J. Oberhumer
3ff5dbd179 testsuite: update testsuite caused by version year change 2023-01-01 19:56:14 +01:00