John Reiser
2767ec54e1
more checking of PackUnix::p_info at unpack
...
https://github.com/upx/upx/issues/781
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65864
modified: p_unix.cpp
2024-01-27 13:06:59 -08:00
John Reiser
ac72c02793
check nbucket earlier in DT_HASH on ELF
...
https://github.com/upx/upx/issues/780
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66079
modified: p_lx_elf.cpp
2024-01-27 11:42:25 -08:00
John Reiser
69c51eee4d
better checking of DT_STRSZ for ELF
...
https://github.com/upx/upx/issues/779
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66064
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2024-01-27 11:11:07 -08:00
John Reiser
ff5a4eeb96
ELF versus --brute: addStubEntrySections() needs ph_forced_method()
...
https://github.com/upx/upx/issues/770
modified: p_lx_elf.cpp
2024-01-25 17:17:32 -08:00
John Reiser
b48f870701
Detect circular DT_HASH and DT_GNUHASH lookup
...
https://github.com/upx/upx/issues/775
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65811&q=label%3AProj-upx
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65840&q=label%3AProj-upx
2024-01-25 15:05:53 -08:00
John Reiser
10807ebdc2
Unpack 8-byte b_info only if (ph.version <= 11): 2001 or earlier
...
*x86 only: .e_entry too low
https://github.com/upx/upx/issues/774
modified: p_lx_elf.cpp
2024-01-25 09:06:46 -08:00
Markus F.X.J. Oberhumer
5d649f83ec
all: assorted cleanups
2024-01-24 20:53:14 +01:00
John Reiser
d615985b8a
elf_find_table_size() did not check for empty table
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65765&q=label%3AProj-upx
https://github.com/upx/upx/issues/771
modified: p_lx_elf.cpp
2024-01-18 19:11:12 -08:00
John Reiser
38ed4b2017
arm32, arm64 ABI for -static must preserve register 0
...
Also arm32 forgot to unmap the expanded de-compressor via the escape hatch.
https://github.com/upx/upx/issues/758
https://github.com/upx/upx/issues/768
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/amd64-linux.elf-main.c
plus associated *.h *.map *.dump
2024-01-12 15:39:18 -08:00
John Reiser
2ad0d51226
PeFile::rebuildImports(): Allow strlen() up to the very end of a logical block
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65650
https://github.com/upx/upx/issues/769
modified: pefile.cpp
2024-01-11 09:57:57 -08:00
John Reiser
e4a611bcae
PeFile ::readPeHeader should check ih.subsystem.
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65526
https://github.com/upx/upx/issues/767
modified: pefile.cpp
2024-01-10 16:28:17 -08:00
John Reiser
f3728d99b9
Check ph.method in PackMachBase::unpack
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65553
https://github.com/upx/upx/issues/766
modified: p_mach.cpp
2024-01-10 16:04:08 -08:00
John Reiser
b87f60a917
Check Mach_fat_arch.align
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65558
https://github.com/upx/upx/issues/765
modified: p_mach.cpp
2024-01-10 15:31:37 -08:00
John Reiser
28f26da6ab
Need more care in PackMachBase::canUnpack()
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65532
https://github.com/upx/upx/issues/764
modified: p_mach.cpp
2024-01-10 15:14:54 -08:00
John Reiser
d3e780d617
Unpacking ELF requires e_phnum at least 2
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65535
https://github.com/upx/upx/issues/763
modified: p_lx_elf.cpp
2024-01-10 14:07:58 -08:00
John Reiser
d549c2b5c9
More care when recovering from slid b_info
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65531
https://github.com/upx/upx/issues/762
modified: p_lx_elf.cpp
2024-01-10 13:38:18 -08:00
John Reiser
f310ce376e
Beware fuzzer setting compressed size too small
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65519
https://github.com/upx/upx/issues/761
modified: p_unix.cpp
2024-01-10 11:20:47 -08:00
John Reiser
553fc9b1fb
invert_pt_dynamic: Compilers differ, unsigned vs. signed
...
modified: p_lx_elf.cpp
2024-01-10 10:33:33 -08:00
John Reiser
6dde9f7dc0
find_overlay_offset() did not check carefully enough
...
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65518
https://github.com/upx/upx/issues/760
modified: p_unix.cpp
2024-01-10 10:05:28 -08:00
John Reiser
3dca1175e5
invert_pt_dynamic() needs better checking for malformed input
...
https://github.com/upx/upx/issues/759
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65510
modified: p_lx_elf.cpp
2024-01-10 09:41:12 -08:00
John Reiser
09c5e38322
arm64-linux.elf ABI owns x0 at execve()?
...
https://github.com/upx/upx/issues/758
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/arm64-linux.elf-fold.h
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/tmp/arm64-linux.elf-fold.map
2024-01-09 12:17:01 -08:00
John Reiser
fe6f1f0bb6
arm64-linux.elf-fold.S typo (eyesight)
...
https://github.com/upx/upx/issues/743
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/arm64-linux.elf-fold.h
modified: src/stub/src/arm64-linux.elf-fold.S
2024-01-09 10:01:07 -08:00
Markus F.X.J. Oberhumer
57b2fb4c62
all: post-release version bump
2024-01-04 02:52:22 +01:00
Markus F.X.J. Oberhumer
1bcf709fcf
all: bump version date
2024-01-03 17:54:43 +01:00
Markus F.X.J. Oberhumer
47fc230893
all: welcome 2024
2024-01-03 17:47:25 +01:00
Markus F.X.J. Oberhumer
f598fa13a9
clang-format
2024-01-03 17:36:43 +01:00
Markus F.X.J. Oberhumer
0500e7d016
CI updates; cxxlib.h cleanups
2023-12-28 04:42:41 +01:00
Markus F.X.J. Oberhumer
778663ae69
CI updates
2023-12-21 23:01:52 +01:00
Markus F.X.J. Oberhumer
51a6a5cca5
src: rename ptr_reinterpret_cast to ptr_static_cast; misc cleanups
2023-12-20 11:44:01 +01:00
Markus F.X.J. Oberhumer
3326c86e91
cmake update
2023-12-19 16:11:23 +01:00
Markus F.X.J. Oberhumer
decc1efb74
CI updates
2023-12-17 07:35:39 +01:00
Markus F.X.J. Oberhumer
fc6e3840b7
CI updates
2023-12-09 08:52:25 +01:00
Markus F.X.J. Oberhumer
1e6e4043ed
CI updates and minor cleanups.
2023-12-02 01:48:26 +01:00
John Reiser
ed2633bf95
Honor .p_align <= 64K; else assume 4K is also available
...
https://github.com/upx/upx/issues/737
modified: p_lx_elf.cpp
2023-11-26 11:46:12 -08:00
Markus F.X.J. Oberhumer
3e70021406
all: more minor cleanups
2023-11-26 18:30:47 +01:00
Markus F.X.J. Oberhumer
bf8dd31914
all: minor cleanups
2023-11-21 20:29:54 +01:00
John Reiser
d4e94f5086
Fix varying page size on arm64
...
https://github.com/upx/upx/issues/734
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
... plus associated stub/*.h etc
2023-11-17 15:10:31 -08:00
John Reiser
ae77fd60bb
initial headway is limited by both file_size and mhcmdi.sizeofcmds
...
https://github.com/upx/upx/issues/732
modified: p_mach.cpp
2023-11-17 07:28:21 -08:00
Markus F.X.J. Oberhumer
e79c790264
CI updates
2023-11-17 11:50:52 +01:00
Markus F.X.J. Oberhumer
46029bb8a0
CI updates
2023-11-15 13:06:29 +01:00
Markus F.X.J. Oberhumer
f74c225338
CI updates
2023-11-14 19:15:34 +01:00
Markus F.X.J. Oberhumer
c479fe32b3
cmake update
2023-11-13 11:29:17 +01:00
Markus F.X.J. Oberhumer
d7142312c9
CI updates
2023-11-08 10:08:19 +01:00
Markus F.X.J. Oberhumer
283ab0e7ea
CI updates and assorted cleanups
2023-11-06 19:29:40 +01:00
Markus F.X.J. Oberhumer
11970d276d
CI updates
2023-11-04 06:30:07 +01:00
Markus F.X.J. Oberhumer
4f0f977f04
CI updates and cleanups
2023-11-03 17:52:46 +01:00
Markus F.X.J. Oberhumer
ceb2b56b71
all: post-release version bump
2023-11-01 15:07:18 +01:00
Markus F.X.J. Oberhumer
d14fa5f8a4
all: prepare for release
2023-11-01 12:00:03 +01:00
Markus F.X.J. Oberhumer
ecb3f83e83
CI updates
2023-11-01 11:28:35 +01:00
Markus F.X.J. Oberhumer
3b7d25ac49
CI updates
2023-11-01 08:48:27 +01:00
Markus F.X.J. Oberhumer
e964d4acf3
src/util: change TriBool logic to use a bool template parameter
2023-10-31 12:24:44 +01:00
Markus F.X.J. Oberhumer
b094ad4f2b
CI updates
2023-10-31 10:34:55 +01:00
Markus F.X.J. Oberhumer
19c6b969ab
src/options: fix bad TriBool ThirdValue for pefile compress_resources
2023-10-30 21:36:36 +01:00
Markus F.X.J. Oberhumer
acfda848cd
src/check: add some more tribool checks
2023-10-30 20:29:05 +01:00
John Reiser
52400e2561
/proc/self/exe now is optional
...
... for the benefit of 'unshare', 'chroot', etc.
If not present, then upx run-time stub unmaps all pages of original main program.
https://github.com/upx/upx/issues/721
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
... plus all associaed *.h, *.map, *.dump in stub/
2023-10-30 08:23:52 -07:00
Markus F.X.J. Oberhumer
f62576a2be
CI updates and minor cleanups
2023-10-30 14:15:35 +01:00
Markus F.X.J. Oberhumer
19bf9f59e9
src: clang-format stub/tools/armpe/armpe_tester.c
2023-10-30 13:07:20 +01:00
Markus F.X.J. Oberhumer
fadf7cfc7b
src: work on packed_struct cleanup
2023-10-30 12:55:07 +01:00
Markus F.X.J. Oberhumer
ec0c9399fa
src: clang-format conf.h
2023-10-30 12:30:58 +01:00
Markus F.X.J. Oberhumer
37b923245d
all: various cleanups
2023-10-30 12:17:51 +01:00
Markus F.X.J. Oberhumer
38a676f6f7
src: introduce upx::ptr_reinterpret_cast
2023-10-29 16:52:24 +01:00
Markus F.X.J. Oberhumer
cd1df6f6b1
all: update version
2023-10-29 15:37:13 +01:00
Markus F.X.J. Oberhumer
4a24fe8c53
CI updates and cleanups
2023-10-29 15:12:33 +01:00
Markus F.X.J. Oberhumer
6dac3dd248
CI updates
2023-10-27 09:24:06 +02:00
Markus F.X.J. Oberhumer
37d393cbc8
src: prefer using SetFileTime() on Windows
2023-10-27 06:58:14 +02:00
Markus F.X.J. Oberhumer
8102137ad7
all: post-release version bump
2023-10-26 12:25:13 +02:00
Markus F.X.J. Oberhumer
9c46f4653f
all: prepare for release
2023-10-26 11:09:48 +02:00
Markus F.X.J. Oberhumer
29b4752d0e
src: add some noexcept
2023-10-26 00:28:36 +02:00
Markus F.X.J. Oberhumer
facabd68d7
all: more minor cleanups
2023-10-24 23:56:55 +02:00
Markus F.X.J. Oberhumer
18f043015e
all: minor cleanups
2023-10-24 22:54:54 +02:00
Markus F.X.J. Oberhumer
ab259a1af9
src/pefile: try to clean up reloc handling
2023-10-24 11:47:23 +02:00
Markus F.X.J. Oberhumer
1dd96a7628
src/pefile: stricter reloc checks; cleanups
2023-10-23 14:26:37 +02:00
Markus F.X.J. Oberhumer
1ee7ecb1f0
all: prefer using utimensat()
2023-10-22 13:29:26 +02:00
Markus F.X.J. Oberhumer
67548a4d9a
src: minor cleanups
2023-10-22 00:45:06 +02:00
Markus F.X.J. Oberhumer
9fbe95ad48
all: cleanups
2023-10-21 11:22:18 +02:00
Markus F.X.J. Oberhumer
a1d090a6fd
src/stub: add a "clang-format off" directive
2023-10-15 10:55:15 +02:00
Markus F.X.J. Oberhumer
4870765e1b
all: disable packing macOS binaries for now
2023-10-15 10:15:46 +02:00
Markus F.X.J. Oberhumer
d8be2ed276
src/pefile.cpp: cleanup reloc handling and add more checks
2023-10-14 19:24:44 +02:00
Markus F.X.J. Oberhumer
2b371e99bd
src/util: minor xspan enhancements
2023-10-14 05:58:47 +02:00
John Reiser
65b06f6046
More LZMA inSize (srclen) defense
...
https://github.com/upx/upx/issues/717
modified: stub/src/amd64-darwin.dylib-entry.S fixed
modified: stub/src/amd64-darwin.macho-entry.S fixed
modified: stub/src/amd64-linux.elf-so_entry.S comment-only
modified: stub/src/i386-linux.elf-so_entry.S comment-only
modified: stub/amd64-darwin.dylib-entry.h
modified: stub/amd64-darwin.macho-entry.h
modified: stub/amd64-linux.elf-so_entry.h
modified: stub/tmp/amd64-darwin.dylib-entry.bin.dump
modified: stub/tmp/amd64-darwin.macho-entry.bin.dump
modified: stub/tmp/amd64-linux.elf-so_entry.bin.dump
Find+fix steps that were performed:
1. Find all 'add' instructions that compute "eof".
NRV run-time decompressors ignore srclen, so 'add' can be ignored for them.
$ cd upx-devel4/src/stub
$ grep -sr 'add.*eof' src | grep -v 'nrv2._d.*.S' | sort
src/amd64-darwin.dylib-entry.S: addq src,lsrc; push lsrc // &input_eof
src/amd64-darwin.macho-entry.S: addq src,lsrc; push lsrc // &input_eof
src/amd64-linux.elf-entry.S: addq src,lsrc; push lsrc // &input_eof
src/amd64-linux.elf-so_entry.S: addq src,lsrc; push lsrc // MATCH_05 &input_eof
src/amd64-linux.elf-so_main.c: void *mfd_addr = Pmap(0, sizeof(code), PROT_READ|PROT_EXEC, MAP_PRIVATE, mfd, 0);
src/amd64-linux.shlib-init.S: addq src,lsrc; push lsrc // &input_eof
src/arch/amd64/lzma_d.S:// addq src,lsrc; push lsrc // &input_eof
src/i386-expand.S: add src,%ecx; push %ecx // MATCH_52 eof_src
src/i386-linux.elf-so_entry.S: add src,lsrc; push lsrc // MATCH_05 &input_eof
2. Case-by-case inspection
src/amd64-darwin.dylib-entry.S: addq src,lsrc; push lsrc // &input_eof
restoring 'subq' is added in this commit
src/amd64-darwin.macho-entry.S: addq src,lsrc; push lsrc // &input_eof
restoring 'subq' is added in this commit
src/amd64-linux.elf-entry.S: addq src,lsrc; push lsrc // &input_eof
a restoring 'subq' is already next
src/amd64-linux.elf-so_entry.S: addq src,lsrc; push lsrc // MATCH_05 &input_eof
lsrc is dead for inlined nrv2b
src/amd64-linux.elf-so_main.c: void *mfd_addr = Pmap(0, sizeof(code), PROT_READ|PROT_EXEC, MAP_PRIVATE, mfd, 0);
.c code
src/amd64-linux.shlib-init.S: addq src,lsrc; push lsrc // &input_eof
restoring 'subq' is already next
src/arch/amd64/lzma_d.S:// addq src,lsrc; push lsrc // &input_eof
comment that explains preceding actions in ELFMAINX; a restoring 'subq' is already next
src/i386-expand.S: add src,%ecx; push %ecx // MATCH_52 eof_src
%ecx is dead
src/i386-linux.elf-so_entry.S: add src,lsrc; push lsrc // MATCH_05 &input_eof
lsrc is dead for inlined nrv2b
2023-10-12 10:41:13 -07:00
John Reiser
0515be4334
LZMA on AMD64 had bug in calling sequence, leading to random exit(127)
...
LzmaDecode randomly decided that the input had ended in the middle,
because of error in interface between ELFMAINX and the decoder.
Thanks to Kevin Gosse!
https://github.com/upx/upx/pull/716
https://github.com/MichalStrehovsky/PublishAotCompressed/issues/11
2023-10-06 14:14:32 -07:00
Markus F.X.J. Oberhumer
e32de83758
CI updates
2023-10-05 12:23:17 +02:00
Markus F.X.J. Oberhumer
e767461f65
src: more clang-format
2023-10-05 11:53:02 +02:00
Markus F.X.J. Oberhumer
632c7c4826
all: assorted cleanups; introduce undocumented '--sysinfo' option
2023-10-05 03:51:27 +02:00
Markus F.X.J. Oberhumer
7f9d381c7b
CI updates
2023-09-30 10:46:39 +02:00
John Reiser
b0b87eda02
check-whitespace
...
modified: stub/src/upxfd_android.c
2023-09-28 12:49:14 -07:00
John Reiser
f63a673a8b
Prepare to emulate memfd_create() on 32-bit Android (ARM and i386)
...
modified: stub/src/include/linux.h
new file: stub/src/upxfd_android.c
new file: stub/src/upxfd_create.c
2023-09-28 12:44:49 -07:00
John Reiser
290dd0c5d2
Git straggler
...
modified: src/stub/tmp/i386-linux.elf-entry.bin.dump
2023-09-28 12:09:32 -07:00
John Reiser
194bf2b852
Common prototypes for mmap and ftruncate
...
modified: src/stub/src/include/linux.h
modified: src/stub/src/amd64-linux.elf-so_main.c
modified: src/stub/src/i386-linux.elf-so_main.c
modified: src/stub/src/i386-linux.elf.execve-main.c
modified: src/stub/src/i386-linux.elf.interp-main.c
modified: src/stub/src/i386-linux.elf.shell-main.c
2023-09-28 12:07:04 -07:00
John Reiser
d6d5e7ae3d
For Android emulator: align i386 LEXEC020 binfo
...
modified: src/stub/src/i386-linux.elf-entry.S
modified: src/p_lx_elf.cpp
modified: src/stub/i386-linux.elf-entry.h
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
2023-09-28 12:02:28 -07:00
Markus F.X.J. Oberhumer
39a6cc4b5f
src: improve memory sanitizer handling
2023-09-26 15:15:55 +02:00
Markus F.X.J. Oberhumer
eb021accd1
CI updates
2023-09-25 13:47:43 +02:00
John Reiser
854988bc5f
Detect AlreadyPacked even when trailing PackHeader has been lopped.
...
This is heuristic, but strong.
https://github.com/upx/upx/issues/712
modified: p_lx_elf.cpp
modified: p_unix.h
2023-09-21 14:12:18 -07:00
John Reiser
bfeed2ab9a
MAP_PRIVATE to capture memfd pages before closing the fd
...
https://github.com/upx/upx/issues/710
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/amd64-linux.elf-so_fold.h
modified: stub/arm.v4a-linux.elf-so_fold.h
modified: stub/arm.v5a-linux.elf-so_fold.h
modified: stub/arm64-linux.elf-so_fold.h
modified: stub/i386-linux.elf-so_fold.h
2023-09-20 13:12:04 -07:00
Markus F.X.J. Oberhumer
d11fc71e79
CI updates
2023-09-20 11:24:55 +02:00
Markus F.X.J. Oberhumer
06675acc67
all: cosmetic cleanups
2023-09-18 15:19:37 +02:00
Markus F.X.J. Oberhumer
57ad6bc37d
CI updates
2023-09-11 06:52:57 +02:00
Markus F.X.J. Oberhumer
92dfb9c83c
testsuite: add file system test suite test_symlinks.sh
2023-09-06 00:09:44 +02:00
Markus F.X.J. Oberhumer
38d6cb090c
src/packer.cpp: fix bug in constructor introduced during cleanup
...
Introduced in 10e759f1f1
2023-09-05 21:09:17 +02:00
Markus F.X.J. Oberhumer
e93172bd33
src/work.cpp: clean up get_open_flags()
2023-09-05 06:09:13 +02:00
Markus F.X.J. Oberhumer
30fcca4b64
src: optimize preserve_link: only if the file has actual link-count >= 2
2023-09-05 05:50:47 +02:00
Markus F.X.J. Oberhumer
4f6320d3aa
src: add new option --link to preserve hard links; use with care
2023-09-04 22:34:21 +02:00
Markus F.X.J. Oberhumer
62dbf8485f
src: sort cleanups
2023-09-04 07:28:48 +02:00
John Reiser
9331ed39d4
32-bit Android lacks memfd_create, and has varying __NR_ftruncate
...
https://github.com/upx/upx/issues/700
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/src/arm.v4a-linux.elf-so_entry.S
modified: stub/src/arm.v4a-linux.elf-so_fold.S
modified: stub/arm.v4a-linux.elf-so_entry.h
modified: stub/arm.v4a-linux.elf-so_fold.h
modified: stub/arm.v5a-linux.elf-so_entry.h
modified: stub/arm.v5a-linux.elf-so_fold.h
2023-09-02 15:31:32 -07:00
Markus F.X.J. Oberhumer
35dd9cfd22
src: retract libc qsort() requirements
2023-09-02 16:15:57 +02:00
Markus F.X.J. Oberhumer
0ac6c36af2
src: add a check for libc qsort(); cleanups
2023-09-01 11:59:29 +02:00
Markus F.X.J. Oberhumer
3c4b959f78
all: update clang-format settings
2023-09-01 11:29:51 +02:00
Markus F.X.J. Oberhumer
a00687b092
src/p_mach.cpp: make sort order deterministic
2023-09-01 11:11:00 +02:00
Markus F.X.J. Oberhumer
bb6b087862
src: implement upx_shellsort()
2023-09-01 10:49:47 +02:00
John Reiser
bfb438dc89
Sync stubs
...
modified: stub/amd64-linux.elf-so_fold.h
modified: stub/arm.v4a-linux.elf-so_fold.h
modified: stub/arm.v5a-linux.elf-so_fold.h
modified: stub/arm64-linux.elf-so_fold.h
modified: stub/i386-linux.elf-so_fold.h
modified: stub/tmp/amd64-linux.elf-so_fold.bin.dump
2023-08-31 13:34:49 -07:00
John Reiser
cd3f69c290
Explicit write() can subsume ftruncate()
...
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-linux.elf-so_main.c
2023-08-31 13:25:53 -07:00
Markus F.X.J. Oberhumer
d54315392e
src: add support for NO_COLOR environment variable
2023-08-31 12:31:31 +02:00
Markus F.X.J. Oberhumer
cfa8107ab9
src: make sort order deterministic, next try
...
We cannot compare pointers as they may point to qsort-local objects.
And we must make sure that cmp(a,b) always agrees with cmp(b,a).
2023-08-30 16:41:59 +02:00
Markus F.X.J. Oberhumer
f4e5b29708
src: make sort order deterministic
2023-08-28 02:08:34 +02:00
Markus F.X.J. Oberhumer
d65fea1147
src/bele.h: try to detect possible size-mismatches
2023-08-28 00:23:53 +02:00
Markus F.X.J. Oberhumer
25a3c109c1
CI updates
2023-08-27 13:30:51 +02:00
John Reiser
b526eed346
Detect "no Shdrs" earlier when already packed
...
https://github.com/upx/upx/issues/699
modified: p_lx_elf.cpp
2023-08-23 19:52:35 +02:00
John Reiser
59c6a71b72
More use of ph_forced_method()
...
modified: p_lx_elf.cpp
2023-08-23 19:52:35 +02:00
John Reiser
c7a2a0faa1
Document path to mach-o/loader.h on Apple CommandLineTools
...
modified: p_mach_enum.h
2023-08-23 19:52:35 +02:00
John Reiser
bfb5ea50a9
Temporary
...
modified: p_lx_elf.cpp
2023-08-23 19:52:35 +02:00
John Reiser
149d84edca
--brute versus forced_method(ph.method)
...
https://github.com/upx/upx/issues/694 (partial)
modified: p_lx_elf.cpp
2023-08-23 19:52:35 +02:00
Markus F.X.J. Oberhumer
6eace187e7
src: add a famous quote
2023-08-22 00:37:45 +02:00
Markus F.X.J. Oberhumer
dd1838a7eb
src: minor cleanups
2023-08-21 22:41:42 +02:00
Markus F.X.J. Oberhumer
dd928cf956
src: update MemBuffer::getSizeForCompression()
2023-08-21 22:32:28 +02:00
Markus F.X.J. Oberhumer
1f747a28a9
all: spell check
2023-08-17 12:55:38 +02:00
Markus F.X.J. Oberhumer
1a7732b285
CI update: add ASAN/MSAN/valgrind checks
2023-08-17 12:07:19 +02:00
Markus F.X.J. Oberhumer
f8ea416a4d
src/pefile.cpp: fix a pedantic ASAN error
2023-08-17 00:08:03 +02:00
Markus F.X.J. Oberhumer
b9bf81d548
src/p_lx_elf.cpp: init o_binfo to avoid crash with MSAN build
...
This should be double-checked by @jreiser
2023-08-16 22:23:28 +02:00
Markus F.X.J. Oberhumer
8975e2a6b5
src: create util/cxxlib.h
2023-08-16 10:05:59 +02:00
Markus F.X.J. Oberhumer
394cd77bec
all: cleanups
2023-08-16 01:06:52 +02:00
Markus F.X.J. Oberhumer
a9ac4b5e23
src: introduce type tribool
2023-08-15 14:44:50 +02:00
Markus F.X.J. Oberhumer
10e759f1f1
src: minor cleanups
2023-08-11 13:32:53 +02:00
Markus F.X.J. Oberhumer
777d4f5279
src: refactoring: create packhead.h and move some methods
2023-08-11 03:57:20 +02:00
Markus F.X.J. Oberhumer
c65c882ecc
src: class Packer decomposition, introduce PackerBase
2023-08-10 20:40:27 +02:00
Markus F.X.J. Oberhumer
757401dd0c
CI and spell checks
2023-08-09 13:08:38 +02:00
Markus F.X.J. Oberhumer
11e3770864
CI updates
2023-08-08 15:57:45 +02:00
Markus F.X.J. Oberhumer
44fd11f4dd
all: post-release version bump
2023-08-08 12:43:47 +02:00
Markus F.X.J. Oberhumer
8779113131
all: prepare for release
2023-08-08 10:38:12 +02:00
John Reiser
75e153dd99
More care in ::forward_Shdrs() and ::pack4()
...
Also, de-compressing arm64 shlib restores .init_array[0],
although supposedly *_RELATIVE relocation should overwrite.
https://github.com/upx/upx/issues/693
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2023-08-04 11:52:58 -07:00
Markus F.X.J. Oberhumer
fa364d6ea3
all: final cleanups in preparation for release
2023-08-03 14:20:35 +02:00
Markus F.X.J. Oberhumer
13e5c13695
Fix functional change in commit 905bfacf44
2023-08-02 17:45:17 +02:00
John Reiser
43b3b54197
spell check typos
...
modified: p_lx_exc.cpp
modified: p_mach.cpp
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/src/arch/mips/r3000/bits.ash
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm.v4a-linux.shlib-init.S
modified: stub/src/arm64-linux.shlib-init.S
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/mipsel.r3000-linux.elf-entry.S
2023-07-31 09:05:32 -07:00
John Reiser
3a16d4a12e
Spell check; No-Functional-Change
...
modified: p_lx_elf.cpp
2023-07-31 06:06:31 -07:00
Markus F.X.J. Oberhumer
70287d3c49
clang-tidy
2023-07-31 14:49:48 +02:00
John Reiser
41e9f7985f
forward_Shdrs: elfout for main, lowmem for shlib
...
Especially Android.
https://github.com/upx/upx/issues/680
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2023-07-29 13:43:33 -07:00
John Reiser
c3327977da
Pwrite:
...
modified: stub/src/amd64-linux.elf-so_fold.S
modified: stub/amd64-linux.elf-so_fold.h
modified: stub/tmp/amd64-linux.elf-so_fold.bin.dump
2023-07-29 13:42:20 -07:00
John Reiser
905bfacf44
Pacify clang-tidy
2023-07-26 17:21:39 -07:00
Markus F.X.J. Oberhumer
053e95033f
all: improve C++ static analyzers
2023-07-26 22:28:47 +02:00
John Reiser
745fef7425
fpad4, fpad8, and _Shdr hacking should guard against (!fo)
...
Also pacify some clang scan-build complaints.
modified: p_lx_elf.cpp
2023-07-26 07:27:12 -07:00
John Reiser
c9d625a237
Use 'elfout' for changing ElfXX_Ehdr
...
https://github.com/upx/upx/issues/688
modified: p_lx_elf.cpp
2023-07-26 07:15:22 +02:00
John Reiser
334731f56b
Sync stubs for powerpc64le-linux.elf/upx-3.95
...
How did this mismatch happen?
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/arm64-linux.elf-so_entry.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
2023-07-26 07:15:22 +02:00
John Reiser
d5e7672a45
De-activate "bkpt" at entry
...
modified: arm64-linux.elf-so_entry.S
2023-07-26 07:15:22 +02:00
Markus F.X.J. Oberhumer
e702aa0252
Review
2023-07-26 07:15:22 +02:00
John Reiser
2684e815e0
Fix use of memfd_create for shlib stubs, espcially Android
...
Also relocation of init_array[0] for Elf32 shlib.
https://github.com/upx/upx/issues/220
https://github.com/upx/upx/issues/609
https://github.com/upx/upx/issues/680
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-linux.elf-so_main.c
modified: p_lx_elf.cpp
modified: stub/src/arm.v4a-linux.elf-so_fold.S
modified: stub/src/arm64-linux.elf-so_entry.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-so_fold.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_fold.h
modified: stub/tmp/amd64-linux.elf-so_fold.bin.dump
2023-07-26 07:15:22 +02:00
John Reiser
efbc93229a
Un-debug amd64-linux.elf-so_main.c
...
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/amd64-linux.elf-so_fold.h
modified: stub/arm64-linux.elf-so_fold.h
modified: stub/tmp/amd64-linux.elf-so_fold.bin.dump
2023-07-26 07:15:22 +02:00
John Reiser
05539ad5b6
Fix stubs for shlib with only 2 PT_LOAD
2023-07-26 07:15:22 +02:00
John Reiser
670aae2e11
Check /proc/self/auxv exists
...
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/amd64-linux.elf-so_fold.h
modified: stub/arm.v4a-linux.elf-so_fold.h
modified: stub/arm.v5a-linux.elf-so_fold.h
modified: stub/arm64-linux.elf-so_fold.h
modified: stub/tmp/amd64-linux.elf-so_fold.bin.dump
2023-07-26 07:15:22 +02:00
John Reiser
e6ff68dc2c
Turn on DEBUG for 64-bit shlib
...
modified: src/stub/src/amd64-linux.elf-so_main.c
modified: src/stub/amd64-linux.elf-so_fold.h
modified: src/stub/arm64-linux.elf-so_fold.h
modified: src/stub/tmp/amd64-linux.elf-so_fold.bin.dump
2023-07-26 07:15:22 +02:00
Markus F.X.J. Oberhumer
641b116f04
Update .gitattributes.
2023-07-25 12:18:33 +02:00
Markus F.X.J. Oberhumer
161d20e614
CI: update
2023-07-24 14:47:32 +02:00
Markus F.X.J. Oberhumer
fc4dcd46db
CI and build updates
2023-07-22 16:12:13 +02:00
Markus F.X.J. Oberhumer
891dc87064
misc: upx_testsuite; move podman directories into subdirectory
2023-07-22 00:19:11 +02:00
Markus F.X.J. Oberhumer
b866631448
misc: improve upx_testsuite; cmake update
2023-07-19 20:12:20 +02:00
John Reiser
672d69c68a
Fix unpacking of upx-3.94-armeb_linux/upx
...
Getting past the code of the stub must deal with variances
between released versions.
modified: p_lx_elf.cpp
2023-07-18 16:56:39 -07:00
John Reiser
65cc40bdda
Align escape hatch in powerpc64 main program
...
modified: stub/src/amd64-linux.elf-main.c
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2023-07-17 15:58:01 -07:00
John Reiser
067895fa5f
Fix brk+munmap in folded stubs for main programs
...
qemu emulating a compressed ET_EXEC revealed an access to ElfXX_Phdr
on the discarded side of brk() during cleanup. qemu was more aggressive
than the Linux kernel implementation of brk().
https://github.com/upx/upx/issues/683
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/include/linux.h
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/amd64-linux.elf-fold.h
modified: stub/arm.v4a-linux.elf-fold.h
modified: stub/arm.v5a-linux.elf-fold.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/armeb.v4a-linux.elf-fold.h
modified: stub/i386-linux.elf-fold.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-fold.map
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/tmp/i386-linux.elf-fold.map
modified: stub/tmp/mips.r3000-linux.elf-fold.map
modified: stub/tmp/mipsel.r3000-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2023-07-17 07:21:56 +02:00
Markus F.X.J. Oberhumer
828f4a63bf
src: add some "explicit"; cleanups
2023-07-16 07:37:31 +02:00
John Reiser
707fb55625
A fuzzer attacked i386-dos32.watcom.le
2023-07-06 20:25:14 -07:00
Markus F.X.J. Oberhumer
8d41ae09c8
all: misc updates
2023-07-12 18:59:08 +02:00
Markus F.X.J. Oberhumer
7ec0faca1e
all: misc and noexcept updates
2023-07-09 17:36:24 +02:00
Markus F.X.J. Oberhumer
682a1e97e4
src: add assert_noexcept()
2023-07-08 12:06:27 +02:00
Markus F.X.J. Oberhumer
5edfda46e5
all: clang-tidy updates
2023-07-08 09:59:41 +02:00
Markus F.X.J. Oberhumer
d7754a97c7
all: add support for clang-tidy
2023-07-07 23:13:08 +02:00
Markus F.X.J. Oberhumer
c79aa6ad8a
all: cosmetic updates
2023-07-06 18:03:37 +02:00
Markus F.X.J. Oberhumer
525e091472
src/console: disable win32 screen driver when running under Wine
2023-07-06 10:09:38 +02:00
John Reiser
12c36bab6c
Linux EINVAL for zero-length mmap: mmap(, 0, ,,,)
...
https://github.com/upx/upx/issues/681
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/i386-bsd.elf-main.c
modified: stub/src/i386-openbsd.elf-main.c
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/amd64-linux.elf-fold.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/i386-bsd.elf-fold.h
modified: stub/i386-linux.elf-fold.h
modified: stub/i386-netbsd.elf-fold.h
modified: stub/i386-openbsd.elf-fold.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-fold.map
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/i386-bsd.elf-fold.map
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/i386-netbsd.elf-fold.map
modified: stub/tmp/i386-openbsd.elf-fold.map
modified: stub/tmp/mips.r3000-linux.elf-fold.map
modified: stub/tmp/mipsel.r3000-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2023-07-06 10:09:07 +02:00
John Reiser
c429859cbf
Placate Android dlopen() some more.
...
https://github.com/upx/upx/issues/680
modified: p_lx_elf.cpp
2023-07-06 10:08:41 +02:00
John Reiser
dc76b2af97
info(Android_penalty)
...
modified: p_lx_elf.cpp
2023-06-26 09:09:47 -07:00
Markus F.X.J. Oberhumer
ece5af2895
CI: make sure that directories which contain whitespace do work
2023-06-28 18:18:36 +02:00
Markus F.X.J. Oberhumer
1aaa33552e
all: move testsuite to misc/testsuite; CI updates
2023-06-27 14:27:19 +02:00
Markus F.X.J. Oberhumer
f622871eb0
src: fix building under freebsd; updates
2023-06-27 12:59:24 +02:00
Markus F.X.J. Oberhumer
060b01260d
CI: yet more updates
2023-06-25 19:40:09 +02:00
Markus F.X.J. Oberhumer
871f8a4793
src: new ACC version
2023-06-25 14:30:00 +02:00
Markus F.X.J. Oberhumer
512a26cee4
CI: update
2023-06-24 10:16:43 +02:00
John Reiser
b4a793ed26
Make ::forward_Shdrs more friendly to Android dlopen()
...
https://github.com/upx/upx/issues/220
https://github.com/upx/upx/issues/609
2023-06-22 10:16:25 -07:00
Markus F.X.J. Oberhumer
5d2c74008e
all: cmake and noexcept updates
2023-06-23 14:13:08 +02:00
Markus F.X.J. Oberhumer
d1af2af499
all: yet more misc updates
2023-06-15 19:42:54 +02:00
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
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
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
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
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
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
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
42902dabac
64-bit shlib with DT_INIT_ARRAY but no DT_INIT
...
https://github.com/upx/upx/issues/664
modified: p_elf_enum.h
modified: p_lx_elf.cpp
2023-04-10 18:01:39 -07:00
John Reiser
14521eb6dd
Allow pre-linking when compressing shared libraries
...
Such as Wine kernel32.dll etc.
https://github.com/upx/upx/issues/660
modified: stub/amd64-linux.elf-so_fold.h
modified: stub/arm.v4a-linux.elf-so_fold.h
modified: stub/arm.v5a-linux.elf-so_fold.h
modified: stub/arm64-linux.elf-so_fold.h
modified: stub/i386-linux.elf-so_fold.h
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-linux.elf-so_main.c
modified: stub/tmp/amd64-linux.elf-so_fold.bin.dump
2023-04-03 13:18:21 -07:00
John Reiser
4df68aafd2
Pprotect: mprotect but enlarge the interval to start on page boundary
...
https://github.com/upx/upx/issues/609
modified: src/stub/src/amd64-linux.elf-fold.S
modified: src/stub/src/amd64-linux.elf-main.c
modified: src/stub/src/amd64-linux.elf-so_fold.S
modified: src/stub/src/amd64-linux.elf-so_main.c
modified: src/stub/src/arm.v4a-linux.elf-fold.S
modified: src/stub/src/arm.v4a-linux.elf-so_fold.S
modified: src/stub/src/arm64-linux.elf-fold.S
modified: src/stub/src/arm64-linux.elf-so_fold.S
modified: src/stub/src/i386-linux.elf-fold.S
modified: src/stub/src/i386-linux.elf-main.c
modified: src/stub/src/i386-linux.elf-so_fold.S
modified: src/stub/src/i386-linux.elf-so_main.c
modified: src/stub/src/mipsel.r3000-linux.elf-fold.S
modified: src/stub/src/powerpc-linux.elf-fold.S
modified: src/stub/src/powerpc64le-linux.elf-fold.S
modified: src/stub/amd64-linux.elf-fold.h
modified: src/stub/amd64-linux.elf-so_fold.h
modified: src/stub/arm.v4a-linux.elf-fold.h
modified: src/stub/arm.v4a-linux.elf-so_fold.h
modified: src/stub/arm.v5a-linux.elf-fold.h
modified: src/stub/arm.v5a-linux.elf-so_fold.h
modified: src/stub/arm64-linux.elf-fold.h
modified: src/stub/arm64-linux.elf-so_fold.h
modified: src/stub/armeb.v4a-linux.elf-fold.h
modified: src/stub/i386-linux.elf-fold.h
modified: src/stub/i386-linux.elf-so_fold.h
modified: src/stub/mips.r3000-linux.elf-fold.h
modified: src/stub/mipsel.r3000-linux.elf-fold.h
modified: src/stub/powerpc-linux.elf-fold.h
modified: src/stub/powerpc64-linux.elf-fold.h
modified: src/stub/powerpc64le-linux.elf-fold.h
modified: src/stub/tmp/amd64-linux.elf-fold.map
modified: src/stub/tmp/amd64-linux.elf-so_fold.bin.dump
modified: src/stub/tmp/arm.v4a-linux.elf-fold.map
modified: src/stub/tmp/arm.v5a-linux.elf-fold.map
modified: src/stub/tmp/arm64-linux.elf-fold.map
modified: src/stub/tmp/armeb.v4a-linux.elf-fold.map
modified: src/stub/tmp/i386-linux.elf-fold.map
modified: src/stub/tmp/mips.r3000-linux.elf-fold.map
modified: src/stub/tmp/mipsel.r3000-linux.elf-fold.map
modified: src/stub/tmp/powerpc-linux.elf-fold.map
modified: src/stub/tmp/powerpc64-linux.elf-fold.map
modified: src/stub/tmp/powerpc64le-linux.elf-fold.map
2023-03-29 15:46:58 -07:00
John Reiser
c72ceaa979
MSVC
...
modified: p_lx_elf.cpp
2023-03-26 11:29:19 -07:00
John Reiser
8ac79ca0ad
whitespce
...
modified: p_lx_elf.cpp
2023-03-26 11:16:36 -07:00
John Reiser
e0bfaf1028
Merge branch 'devel4' of https://github.com/upx/upx into devel4
2023-03-26 11:06:22 -07:00
John Reiser
b361b91ec7
Try to appease Android runtime loader; _Shdr vs _Phdr offsets
...
JNI FalalError called: Unable to load library:
[dlopen failed: "/lib/arm/libunity.so"
.dynamic section has invalid offset: 0x6d3e58,
expected to match PT_DYNAMIC offset: 0x441e58]
https://github.com/upx/upx/issues/609
modified: p_elf_enum.h
modified: p_lx_elf.cpp
2023-03-26 10:53:30 -07:00
John Reiser
b5d1eba4c1
mprotect() requires page-aligned address
...
modified: stub/amd64-linux.elf-so_fold.h
modified: stub/arm.v4a-linux.elf-so_fold.h
modified: stub/arm.v5a-linux.elf-so_fold.h
modified: stub/arm64-linux.elf-so_fold.h
modified: stub/i386-linux.elf-so_fold.h
modified: stub/src/amd64-linux.elf-so_fold.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_fold.S
modified: stub/src/i386-linux.elf-so_fold.S
modified: stub/tmp/amd64-linux.elf-so_fold.bin.dump
2023-03-26 07:26:53 -07:00
John Reiser
ba447344d6
New strategy for de-compression stub for shared libraries
...
modified: stub/src/amd64-linux.elf-so_main.c
modified: stub/src/i386-linux.elf-so_main.c
2023-03-26 07:25:32 -07:00
John Reiser
7b68aa7bdc
Fix de-comression of shared libraries
...
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2023-03-26 07:23:08 -07:00
John Reiser
5d15e57294
De-compression for 32-bit shared libraries on i686, ARM
...
https://github.com/upx/upx/issues/609
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2023-03-23 16:29:25 -07:00
John Reiser
0bf8ff151e
Un-debug stubs for 32-bit shared libraries
...
modified: stub/arm.v4a-linux.elf-so_fold.h
modified: stub/arm.v5a-linux.elf-so_fold.h
modified: stub/i386-linux.elf-so_fold.h
modified: stub/src/arm.v4a-linux.elf-so_entry.S
2023-03-23 16:27:44 -07:00
John Reiser
06fae05910
32-bit ARM Android shlib: DT_INIT_ARRAY without DT_INIT
...
De-compressor needs to catch up.
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: stub/src/i386-linux.elf-so_main.c
2023-03-22 10:44:17 -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
John Reiser
5b113a5041
Merge branch 'devel4' of https://github.com/upx/upx into devel4
2023-03-16 08:51:29 -07:00
John Reiser
1320e3efdb
PackLinuxElf32::canPackOSABI() isolates canPack() from OSABI weirdness
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2023-03-16 08:30:06 -07:00
Markus F.X.J. Oberhumer
d32f447bda
Merge branch 'devel' into devel4
2023-03-15 22:34:05 +01:00
John Reiser
b74c4e4ac1
Picky, picky static analyzer
...
https://github.com/upx/upx/actions/runs/4422867763/jobs/7755057541
modified: p_lx_elf.cpp
2023-03-15 09:05:02 -07:00
John Reiser
35333403ef
Zero ElfXX_Ehdr.e_sh* info when removing ElfXX_Shdr
...
The aim is less confusion by static linkers: the _Shdr are gone!
https://github.com/upx/upx/issues/659
modified: p_lx_elf.cpp
2023-03-15 08:44:59 -07: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
John Reiser
f8934c09ff
F*ck MSVC
...
warning C4245: 'return': conversion from 'int' to 'unsigned int', signed/unsigned mismatch
return ~0; // in function declared as returning 'unsigned'. The bits are the same!
modified: p_lx_elf.cpp
2023-03-09 12:00:56 -08:00
John Reiser
7a09c88e30
CI convention sucks
...
renamed: MAX_ELF_HDR.cpp -> MAX_ELF_HDR.h
modified: p_lx_elf.cpp
2023-03-09 11:44:22 -08: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
ff7939c1c0
invert_pt_dynamic, sort_DTxx_offsets, elf_find_table_size
...
https://github.com/upx/upx/issues/655
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2023-03-09 09:24:35 -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
3d691645a4
src: pefile: add checkMachine()
2023-02-21 20:33:40 +01:00
Markus F.X.J. Oberhumer
e1edc5f50a
src: use 'byte' instead of 'upx_byte'; NFCI
2023-02-21 19:27:23 +01: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
c5059231dc
all: rename win32/arm back to wince/arm
2023-02-12 18:58:11 +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
8944e90175
all: post-release version bump
2023-01-30 13:39:49 +01:00
Markus F.X.J. Oberhumer
33cdcb0e82
all: prepare for release
2023-01-30 11:18:06 +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
43b6ff29e3
all: bump tentative release date
2023-01-29 15:39:35 +01:00
Markus F.X.J. Oberhumer
a444a8a704
src: pefile: fix overly tricky canUnpack0 logic
2023-01-29 12:40:00 +01:00
Markus F.X.J. Oberhumer
3fa18c1799
src: clang-format pefile
2023-01-29 12:34:05 +01:00
Markus F.X.J. Oberhumer
19147963b9
src: pefile: try to work-around a scan-build warning
2023-01-29 12:21:15 +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
7993e619cd
src: even more outstanding util/xspan renaming; NFC
2023-01-21 19:15:38 +01:00
Markus F.X.J. Oberhumer
1ab8d5fb3f
src: remove currently unused submodules
2023-01-21 18:57:23 +01:00
Markus F.X.J. Oberhumer
f37a3bb9bb
src: new ACC version
2023-01-19 06:26:06 +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
58343fc78d
src: more outstanding util/xspan renaming; NFC
2023-01-18 10:11:29 +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
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
44049ecf30
all: enable WITH_VALGRIND by default
2023-01-13 22:25:15 +01:00
Markus F.X.J. Oberhumer
f00667ad7d
all: minor cleanups, update some comments
2023-01-13 05:37:28 +01:00
Markus F.X.J. Oberhumer
513b00a30e
cmake: update for MSVC_IDE
2023-01-05 14:26:17 +01:00
Markus F.X.J. Oberhumer
0cb0dbf6d8
src: cleanup conf.h
2023-01-05 14:26:12 +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
cd686cb1d9
src: add boost-pfr
2023-01-05 00:57:05 +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
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
John Reiser
5f3ebc8a7f
clang-format
...
modified: linker.cpp
2023-01-09 09:33:34 -08:00
John Reiser
425b1b44bc
Initialize output_capacity for loader
...
modified: pefile.cpp
2023-01-09 09:20:43 -08:00
John Reiser
39442e6282
initLoader() 4th parameter allows larger output size
...
modified: packer.cpp
modified: packer.h
2023-01-05 15:28:12 -08:00
John Reiser
99575e1010
ElfLinker::output_capacity
...
modified: linker.cpp
modified: linker.h
2023-01-05 15:25:34 -08:00
John Reiser
64aa7540e2
Sync copyright year 2023
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_unix.cpp
modified: p_unix.h
2023-01-02 08:28:41 -08:00
Markus F.X.J. Oberhumer
e25d04fb12
all: bump version date
2023-01-01 19:53:28 +01:00
Markus F.X.J. Oberhumer
dd1d5a92d2
all: welcome 2023
2023-01-01 19:49:30 +01:00
Markus F.X.J. Oberhumer
33dc60df26
all: minor cleanups
2022-12-31 21:08:58 +01:00
John Reiser
619aeb54ff
Pesky "upx -t" mode
...
https://github.com/upx/upx/issues/599
modified: p_lx_elf.cpp
2022-12-30 10:29:25 -08:00
John Reiser
77ba43328b
Use my_page_size, which is 0x4000 (16KiB) on arm64
...
https://github.com/upx/upx/issues/628
modified: p_mach.cpp
2022-12-31 20:55:34 +01:00
John Reiser
01a30752c7
Mach-O: allow 256 ncmds and 32768 sizeofcmds
...
https://github.com/upx/upx/issues/642
modified: p_mach.cpp
modified: stub/src/i386-darwin.macho-upxmain.c
modified: stub/src/powerpc-darwin.macho-upxmain.c
2022-12-29 14:02:42 -08:00
John Reiser
e56b748435
WIP fixing "upx -t" of shared library
...
modified: p_lx_elf.cpp
2022-12-23 11:23:41 -08:00
Markus F.X.J. Oberhumer
bb4cbdff44
src: fix m68k-atari build, prepare for std::atomic, port John's MemBuffer debug
2022-12-22 16:06:25 +01:00
Markus F.X.J. Oberhumer
0b47e474a7
make: update src/Makefile
2022-12-22 15:52:50 +01:00
John Reiser
fefce0d5c4
Cleanup "PT_LOAD gap recovery" during upx -d
...
https://github.com/upx/upx/issues/635
modified: p_lx_elf.cpp
2022-12-21 06:53:37 -08:00
Markus F.X.J. Oberhumer
708ab1dcd7
src: p_xxx_enum.h: trailing commas in enums are allowed since C++11
2022-12-20 23:34:36 +01:00
Markus F.X.J. Oberhumer
6cf85cee6e
src: minor compatibility fix
2022-12-20 11:40:22 +01:00
Markus F.X.J. Oberhumer
1eb6a40fdd
src: restore lseek() error check in file.cpp
2022-12-20 11:51:31 +01:00
John Reiser
1bed77e4d3
'sizeof' returns size_t, which on i386 is not as wide as off_t
...
https://github.com/upx/upx/issues/629
https://github.com/upx/upx/issues/635
modified: p_lx_elf.cpp
2022-12-20 07:21:02 -08:00
John Reiser
f2a68023fa
MSVC error C4146: unary minus operator applied to unsigned type, result still unsigned
...
modified: p_lx_elf.cpp
2022-12-19 16:14:48 -08:00
John Reiser
8ccffc40e3
A real typo that caused an error in "upx -d" de-compressing
...
modified: p_lx_elf.cpp
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
2022-12-19 15:45:27 -08:00
John Reiser
dd8c1d0441
clang alignment
...
modified: p_lx_elf.cpp
2022-12-19 14:31:26 -08:00
John Reiser
f9f28ff176
More work on "upx -d" de-compression
...
https://github.com/upx/upx/issues/629
https://github.com/upx/upx/issues/635
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_unix.cpp
2022-12-19 13:49:43 -08:00
John Reiser
3649041195
Return value of FileBase::seek(, SEEK_CUR) was not FileBase::tell()
...
modified: file.cpp
2022-12-19 13:37:24 -08:00
Markus F.X.J. Oberhumer
c23c7a9379
all: minor updates
2022-12-15 16:20:22 +01:00
Markus F.X.J. Oberhumer
9934e33b99
src: pacify a clang scan-build warning in p_mach.cpp
2022-12-12 21:27:34 +01:00
Markus F.X.J. Oberhumer
9e75fdda66
src: pacify a -Wcast-align warning
2022-12-12 20:07:27 +01:00
Markus F.X.J. Oberhumer
d873a26f41
all: clang-format-15.0.6
2022-12-12 19:25:31 +01:00
Markus F.X.J. Oberhumer
91aa5b55ab
all: upgrade to upx-stubtools v20221212
2022-12-12 19:25:28 +01:00
Markus F.X.J. Oberhumer
3f460a76ce
src: fix typo in options.cpp
2022-12-12 05:38:51 +01:00
John Reiser
4cdf77e16f
Stupid MSVC 14.2, 14.3; obtuse clang 14.0.5 (and MemBuffer vs alignment)
...
MSVC: cannot say "if (0)" to get "check symtax+semantics, but do not emit code"
clang+MemBuffer: must fight too much to get pointer to wider-than-char
modified: src/p_lx_elf.cpp
2022-12-11 14:41:38 -08:00
John Reiser
d89813e911
Implement de-compress of --android-shlib
...
64-bit (arm64, aarch64) only for now. NYI: 32-bit (armv7).
(Also: implied catch-up with all changes by Markus in the meantime.)
https://github.com/upx/upx/issues/599
modified: src/p_lx_elf.cpp
modified: src/p_lx_elf.h
2022-12-11 13:46:44 -08:00
Markus F.X.J. Oberhumer
7c57b10cae
all: minor cleanups
2022-12-02 16:46:16 +01:00
Markus F.X.J. Oberhumer
65a2da4b40
src: more clang-format
2022-11-27 22:03:20 +01:00
Markus F.X.J. Oberhumer
02f6786b2a
src: new ACC version
2022-11-27 21:56:30 +01:00
Markus F.X.J. Oberhumer
9da4f7a6dc
src: clang-format more files; cleanups; NFCI
2022-11-27 12:34:15 +01:00
John Reiser
510505a85c
p_tmt: more sanity of input, cleanup MemBuffer usage
...
https://github.com/upx/upx/issues/632
modified: src/p_tmt.cpp
2022-11-24 10:28:03 -08:00
Markus F.X.J. Oberhumer
9f5d67e27c
src: clang-format various packers
2022-11-26 17:45:25 +01:00
Markus F.X.J. Oberhumer
93c6496ba8
src: add a xspan check to p_tmt.cpp and clang-format
2022-11-24 09:11:25 +01:00
John Reiser
779b648c5f
invert_pt_dynamic: fix thinko; PackLinuxElf64help1 insist on ELF
...
https://github.com/upx/upx/issues/631
modified: src/p_lx_elf.cpp
2022-11-23 19:49:28 -08:00
Markus F.X.J. Oberhumer
b221c44466
src: re-add non-working PackMachPPC32 to PackMaster
2022-11-22 21:24:33 +01:00
Markus F.X.J. Oberhumer
665296f7cf
src/util: minor xspan improvements
2022-11-22 21:21:26 +01:00
Markus F.X.J. Oberhumer
0af9bbb623
all: post-release version bump
2022-11-22 20:51:56 +01:00
Markus F.X.J. Oberhumer
fdec47a83d
all: prepare for release
2022-11-16 23:15:38 +01:00
Markus F.X.J. Oberhumer
7ff913bbd2
src: remove non-working PackMachPPC32 from PackMaster
2022-11-16 22:24:39 +01:00
Markus F.X.J. Oberhumer
94775bef9f
src: remove non-working PackMachPPC64 from PackMaster; see issue #626
2022-11-16 20:41:31 +01:00
Markus F.X.J. Oberhumer
3cf102334f
src: add option '--force-overwrite'
2022-11-16 12:52:53 +01:00
Markus F.X.J. Oberhumer
627e733a30
src: minor compress_lzma.cpp cleanups
2022-11-15 11:59:22 +01:00
Markus F.X.J. Oberhumer
eb231b65f3
src: clang-format compress_*.cpp; minor cleanup
2022-11-14 11:35:13 +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
777392c0fe
src: add some compress doctest checks
2022-11-10 16:26:36 +01:00
Markus F.X.J. Oberhumer
16de3e78a5
src: try to fix canUnpack() confusion - see packer.h
2022-11-10 06:00:53 +01:00
Markus F.X.J. Oberhumer
d7508d8c09
src: pefile.cpp: replace "membuffer + x - y" with "membuffer + (x - y)"
...
This is needed because "membuffer + x" is now bounds-checked, and
the temporary addition would trigger an exception.
2022-11-10 00:40:41 +01:00