John Reiser
f17d9967c2
Clarify comment in previous commit
...
modified: main.cpp
2021-01-20 05:54:53 -08:00
Liam Murphy
0569ef37ba
add comment explaining code as per PR review
2021-01-20 02:29:08 +00:00
Liam Murphy
984334c9a1
reset done_output_name counter upx_main()
2021-01-18 00:16:49 +00:00
John Reiser
34a25e61c7
"%zx" for ptrdiff_t in hex printf
...
modified: p_wcle.cpp
2021-01-17 19:36:36 -08:00
John Reiser
ed3f45953e
Try not to run off the end of selfrel_fixups.
...
https://github.com/upx/upx/issues/455
modified: p_wcle.cpp
modified: packer.cpp
2021-01-17 19:21:32 -08:00
John Reiser
80de11bc5b
Detect Mach_header.sizeofcmds==0
...
https://github.com/upx/upx/issues/448
modified: p_mach.cpp
2021-01-17 17:09:35 -08:00
John Reiser
5f98bb0ab0
De-compress allows old-style LC_UNIXTHREAD with one LC_SEGMENT
...
https://github.com/upx/upx/issues/447
modified: p_mach.cpp
2021-01-15 15:03:26 -08:00
Markus F.X.J. Oberhumer
d86d5314ba
Modernize libc usage: more cleanups.
2021-01-05 22:03:29 +01:00
Markus F.X.J. Oberhumer
700c8730cf
Modernize libc usage: stop using off_t, use modern printf.
...
C++ 14 is here, and old versions of MSVC and MSVCRT have
haunted us long enough.
2021-01-05 18:52:05 +01:00
Markus F.X.J. Oberhumer
a8fa3ca5cf
Use correct native types with "alignas(1)".
2021-01-04 21:13:49 +01:00
Markus F.X.J. Oberhumer
9aef7b0d6f
Use C++ 14 alignas(), init some struct fields just because of good practice.
2021-01-04 21:02:07 +01:00
Markus F.X.J. Oberhumer
2575eef3c0
clang-format more files.
...
"Gofmt's style is nobody's favourite, but gofmt is everybody's favourite."
- Rob Pike
2021-01-04 20:26:31 +01:00
Markus F.X.J. Oberhumer
8236276a90
Add and use .clang-format file.
2021-01-04 19:07:17 +01:00
Markus F.X.J. Oberhumer
fdc68812c5
clang-format-10.0.1 files.
2021-01-04 17:27:48 +01:00
Markus F.X.J. Oberhumer
9db6d18d11
Now using upx-stubtools 20210104 with new clang-format-10.0.1.
2021-01-04 17:23:57 +01:00
Markus F.X.J. Oberhumer
f962afe146
Various cosmetic updates and refactors. NFCI.
2021-01-04 17:20:57 +01:00
Markus F.X.J. Oberhumer
adcd569852
Makefile: update default sanitizer flags.
2021-01-04 17:20:06 +01:00
Markus F.X.J. Oberhumer
d045b7f223
Update bele.h to better work with modern compilers.
2021-01-02 16:45:58 +01:00
Markus F.X.J. Oberhumer
baa1ed9be3
Update CI to use lastest zlib. Update Makefile.
2021-01-01 23:24:31 +01:00
Markus F.X.J. Oberhumer
0af8998be6
Bump version date.
2021-01-01 20:45:11 +01:00
Markus F.X.J. Oberhumer
9131d5216f
Welcome 2021.
2021-01-01 20:39:22 +01:00
Markus F.X.J. Oberhumer
fb14a7991d
Fix Makefile breakage in previous commit.
2020-12-15 02:15:34 +01:00
Markus F.X.J. Oberhumer
ff53862dab
Extract upx_main() for compilation with -DWITH_GUI.
2020-12-14 22:10:07 +01:00
Markus F.X.J. Oberhumer
49245a20c5
Update Makefile and compiler checks so that users don't inadvertently
...
change mandatory compiler flags.
2020-12-14 20:53:54 +01:00
John Reiser
13bc031163
Check DT_REL/DT_RELA, DT_RELSZ/DT_RELASZ
...
https://github.com/upx/upx/issues/421
modified: p_lx_elf.cpp
2020-12-11 13:38:18 -08:00
John Reiser
0c18c1c35c
Include --lzma as a compression tuning option in --help.
...
modified: help.cpp
2020-12-11 12:34:38 -08:00
John Reiser
63dc19ce25
-std=c++14
...
modified: Makefile
2020-12-11 11:38:38 -08:00
John Reiser
6871c2fc0a
Tweak unoptimizeReloc again
...
modified: packer.cpp
2020-12-10 19:56:02 -08:00
Markus F.X.J. Oberhumer
4ae3a8b2b0
Revert useless "fast exit" check from b2c00aa637.
2020-12-08 07:13:11 +01:00
Markus F.X.J. Oberhumer
f7e2266c3f
Start using some C++ 14 features.
2020-12-08 05:40:17 +01:00
Markus F.X.J. Oberhumer
361a3056cb
Update submodules.
2020-12-08 05:40:07 +01:00
Markus F.X.J. Oberhumer
ca0437556d
Start using "noexcept".
2020-12-08 00:45:41 +01:00
Markus F.X.J. Oberhumer
51899957a9
Require C++ 14. Finally!
...
This is the default for gcc >= 6, clang >= 6 and MSVC >= 2019.
2020-12-07 23:05:13 +01:00
Markus F.X.J. Oberhumer
7b0b760d78
src/Makefile: add -Wsign-compare to warning flags to better match MSVC.
2020-12-07 23:04:37 +01:00
John Reiser
a6b5033cf1
Fix overlap detection for PE unoptimizeReloc()
...
https://github.com/upx/upx/issues/438
modified: packer.cpp
2020-12-10 19:31:56 -08:00
John Reiser
a6296ecd67
Avoid complaint from "gcc -Wsign-conversion"
...
modified: compress_lzma.cpp
modified: compress_zlib.cpp
2020-12-06 15:22:58 -08:00
John Reiser
bb1df15958
Use 'mb_' prefix on instances of MemBuffer
...
modified: pefile.cpp
modified: pefile.h
2020-12-05 13:53:14 -08:00
Liam Murphy
249431f45f
tweak formatting to reduce diff
2020-11-26 03:00:21 +00:00
Liam Murphy
cbe129795e
migrate to MemBuffer class from New() to remove leak
2020-11-26 00:14:00 +00:00
John Reiser
2a135e245b
Prefer MemBuffer instead of New()+delete
...
https://github.com/upx/upx/issues/428
modified: pefile.cpp
modified: pefile.h
2020-12-05 13:44:19 -08:00
John Reiser
7841e15583
Prefer MemBuffer instead of New()+delete
...
https://github.com/upx/upx/issues/428
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2020-12-05 10:31:55 -08:00
Markus F.X.J. Oberhumer
dd164fbc86
Undo Makefile change in 9b0f523d00.
2020-12-03 18:16:11 +01:00
Markus F.X.J. Oberhumer
94e72238f2
Fix some warnings.
2020-12-03 03:10:12 +01:00
Markus F.X.J. Oberhumer
8f7ac520eb
Run clang-format.
2020-12-03 02:15:14 +01:00
Markus F.X.J. Oberhumer
bd193201b2
Avoid a clang-11 warning.
2020-12-03 02:14:47 +01:00
Markus F.X.J. Oberhumer
f218812858
Fix spelling of some constants.
2020-12-03 01:46:30 +01:00
Markus F.X.J. Oberhumer
8a7b980fc0
Avoid a MSVC warning.
2020-12-03 01:44:09 +01:00
Markus F.X.J. Oberhumer
385c9877f8
Update submodules.
2020-12-03 01:27:05 +01:00
John Reiser
10df93536e
Yet another attempt to suppress MSVC C4245
...
https://github.com/upx/upx/issues/435
modified: pefile.cpp
2020-11-29 00:01:22 -08:00
John Reiser
6cad27896f
Another attempt to suppress MSVC C4245
...
https://github.com/upx/upx/issues/435
modified: pefile.cpp
2020-11-28 23:53:49 -08:00
John Reiser
052392d97b
Attempt workaround for MSVC C4245 signed/unsigned mismatch in template 'argument'
...
https://github.com/upx/upx/issues/435
modified: pefile.cpp
2020-11-28 20:23:01 -08:00
John Reiser
ce6b5a0688
Fix MSVC warning C4245: signed/unsigned mismatch in prototype matching
...
The type of the return value must match exactly the function prototype.
MSVC warning C4245: 'argument': conversion from 'int' to 'unsigned int', signed/unsigned mismatch
https://github.com/upx/upx/issues/435
modified: bele_policy.h
2020-11-28 19:45:54 -08:00
John Reiser
1879185e42
Check Mach_command.cmdsize
...
https://github.com/upx/upx/issues/426
Also use MemBuffer to avoid leaks that result from throw()
modified: p_mach.cpp
modified: p_mach.h
2020-11-28 10:56:28 -08:00
John Reiser
a928a08f9d
ptrTEXT in PackMachBase<T>::canUnpack()
...
https://github.com/upx/upx/issues/417
modified: p_mach.cpp
2020-11-06 19:14:18 -08:00
John Reiser
1805cb6857
headway vs size
...
https://github.com/upx/upx/issues/414
modified: packhead.cpp
2020-11-06 14:25:36 -08:00
Liam Murphy
6ce625b535
fix build
2020-11-05 22:21:19 +00:00
Liam Murphy
4702f12818
tweaks: some extra checks on lengths
2020-11-05 04:43:40 +00:00
Matthijs Lavrijsen
4f3054f07d
PE: only add a TLS relocation if tls_handler_offset_reloc != 0
2020-09-08 11:44:56 +02:00
bitraid
0d7bd52e21
Only pack w/ -f PE files that force integrity check
2020-10-31 19:53:33 +02:00
John Reiser
c3466f579c
fillPackHeader: revise and add yet more checks
...
https://github.com/upx/upx/issues/414
https://github.com/upx/upx/pull/415 revised
modified: packhead.cpp
2020-11-06 13:53:29 -08:00
John Reiser
7c105d7af5
omemmove exactly as much
...
Fix 14992260c60b8d6677a677a9cdfae98b11353df7; revealed by testsuite
modified: pefile.cpp
2020-11-05 15:05:52 -08:00
John Reiser
924b229afb
fillPackHeader more checks
...
https://github.com/upx/upx/issues/414
modified: packhead.cpp
2020-11-03 01:58:39 -08:00
John Reiser
890d66ecf0
Avoid overlap when rebuild relocs.
...
Based on a hint from a little bird.
modified: packer.cpp
2020-09-20 15:08:39 -07:00
John Reiser
143049922b
Beware overlap when rebuildImports
...
Based on a hint from a little bird.
modified: pefile.cpp
2020-09-20 14:10:24 -07:00
John Reiser
e6ccef2cf1
MSVC strikes again
...
modified: p_lx_elf.cpp
2020-09-05 19:19:11 -07:00
John Reiser
be61e9f584
Fix 64-bit ET_EXEC
...
https://github.com/upx/upx/issues/405
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-main.c
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
modified: stub/amd64-linux.elf-fold.h
modified: stub/arm64-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/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2020-09-04 10:21:14 -07:00
Mattiwatti
89d0fda9fa
Make PE load config directory address dword aligned
2020-01-21 16:03:40 +01:00
bitraid
6a85bab5da
Don't pack Cotrol Flow Guard PE files
2020-07-28 17:36:13 +03:00
John Reiser
c1a55b063e
0==e_shnum obviates testing of e_shoff
...
modified: p_lx_elf.cpp
2020-07-26 20:00:05 -07:00
John Reiser
77c914bce5
Check de-compressed SHT_SYMTAB
...
https://github.com/upx/upx/issues/396
modified: p_lx_elf.cpp
2020-07-25 09:28:02 -07:00
John Reiser
cc60f03b2e
Check Shdr more
...
https://github.com/upx/upx/issues/395
modified: p_lx_elf.cpp
2020-07-25 08:19:45 -07:00
John Reiser
cc9ccdbbd1
Check .sh_offset and .sh_size in SHT_DYNAMIC and SHT_STRNDX
...
https://github.com/upx/upx/issues/394
modified: p_lx_elf.cpp
2020-07-25 07:41:43 -07:00
John Reiser
9dfc8f573c
Avoid 0==nbucket
...
https://github.com/upx/upx/issues/393
modified: p_lx_elf.cpp
2020-07-23 05:44:18 -07:00
John Reiser
4e2fdb464a
Defend against bad PT_DYNAMIC
...
https://github.com/upx/upx/issues/391
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2020-07-23 05:09:52 -07:00
John Reiser
73b854874e
Defend against junk PT_DYNAMIC
...
https://github.com/upx/upx/issues/390
modified: p_lx_elf.cpp
2020-07-23 04:14:34 -07:00
John Reiser
0016512df1
Unpack: Phdrs must be within expansion of first compressed block
...
https://github.com/upx/upx/issues/388
modified: p_lx_elf.cpp
2020-07-22 19:34:27 -07:00
John Reiser
527139978a
DT_HASH chains might be trimmed (64-bit, too)
...
https://github.com/upx/upx/issues/383
modified: p_lx_elf.cpp
2020-06-08 12:37:53 -07:00
John Reiser
47bc68fa6b
DT_HASH chains might be trimmed
...
https://github.com/upx/upx/issues/383
modified: p_lx_elf.cpp
2020-06-07 19:35:49 -07:00
John Reiser
972b670a64
Set .b_extra for hdr, especially for Mach-o for 'go'.
...
https://github.com/upx/upx/issues/222
modified: p_unix.cpp
2020-06-06 17:11:32 -07:00
John Reiser
d7c416f243
More DPRINTF debugging
...
modified: stub/src/amd64-darwin.macho-main.c
2020-06-06 17:10:53 -07:00
John Reiser
3ace7a0468
Documentation only
...
modified: stub/src/amd64-darwin.macho-main.c
2020-06-06 15:32:45 -07:00
John Reiser
963392a5ae
De-compress (upx -d) for ELF pageholes
...
modified: p_lx_elf.cpp
2020-05-30 13:54:11 -07:00
John Reiser
2f453acf5d
use UPX_RSIZE_MAX_MEM
...
modified: p_mach.cpp
2020-05-28 15:45:07 -07:00
John Reiser
4ae1576726
Mach-o LC_SEGMENTs not monotonic in file (__DWARF for 'go')
...
https://github.com/upx/upx/issues/222 go-1.14 (but not go-1.14.3 ?)
modified: ../p_mach.cpp
modified: ../p_mach.h
modified: ../p_unix.cpp
modified: ../p_unix.h
modified: ../stub/src/amd64-darwin.macho-main.c
modified: ../stub/amd64-darwin.macho-fold.h
modified: ../stub/arm.v5a-darwin.macho-fold.h
modified: ../stub/arm64-darwin.macho-fold.h
modified: ../stub/tmp/amd64-darwin.macho-fold.map
modified: ../stub/tmp/arm.v5a-darwin.macho-fold.map
modified: ../stub/tmp/arm64-darwin.macho-fold.map
2020-05-30 02:54:09 -07:00
bitraid
17bd0b3248
Don't use --strip-reloc with -d
...
Always restore the relocation section of Portable Executables on
unpacking, if it exists in the compressed image.
2020-04-13 21:38:22 +03:00
Markus F.X.J. Oberhumer
a1ad1aee99
Use "python2" instead of "python".
2020-05-23 20:07:23 +02:00
John Reiser
a817ed0692
uintptr_t for MSVC
...
modified: p_lx_elf.cpp
2020-05-23 11:02:46 -07:00
John Reiser
828a6cf07b
invert_pt_dynamic() more checking
...
https://github.com/upx/upx/issues/378
https://github.com/upx/upx/issues/379
modified: p_lx_elf.cpp
2020-05-23 10:51:03 -07:00
John Reiser
962c35aa08
More checking of DT_GNU_HASH and DT_HASH tables
...
https://github.com/upx/upx/issues/381
modified: p_lx_elf.cpp
2020-05-23 10:04:38 -07:00
John Reiser
b327645e64
More checking of DT_GNU_HASH and DT_HASH tables
...
https://github.com/upx/upx/issues/380
modified: p_lx_elf.cpp
2020-05-23 09:41:41 -07:00
John Reiser
e1b42616a2
workaround: MIPS.r3000 early uClibc forgot memset(,0,) of local array
...
ldso/ldso/ldso.c: _dl_get_ready_to_run()
_dl_memset(app_tpnt, 0, sizeof(*app_tpnt));
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-fold.h
2020-05-26 14:49:25 -07:00
John Reiser
f96638c42a
MIPS32 works: ELF layout for page holes
...
modified: stub/src/include/linux.h
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/mips.r3000-linux.elf-entry.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-entry.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/tmp/mips.r3000-linux.elf-entry.bin.dump
modified: stub/tmp/mips.r3000-linux.elf-fold.map
modified: stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump
modified: stub/tmp/mipsel.r3000-linux.elf-fold.map
2020-05-25 14:13:01 -07:00
John Reiser
6272152dfe
phdr[C_BASE].p_memsz for ET_EXEC
...
modified: p_lx_elf.cpp
2020-05-25 14:11:46 -07:00
John Reiser
030a200c08
clarity; no functional change
...
modified: stub/src/powerpc-linux.elf-entry.S
2020-05-25 14:07:58 -07:00
John Reiser
994da63b4d
DPRINTF the munmap
...
modified: stub/src/i386-linux.elf-main.c
2020-05-25 14:05:58 -07:00
John Reiser
2315bff280
powerpc64 works: ELF layout for page holes
...
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/powerpc64-linux.elf-entry.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-entry.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/tmp/powerpc64-linux.elf-entry.bin.dump
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-entry.bin.dump
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2020-05-23 11:18:32 -07:00
John Reiser
98dddf93d8
powerpc32 works: ELF layout for page holes
...
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/powerpc-linux.elf-entry.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/tmp/powerpc-linux.elf-entry.bin.dump
modified: stub/tmp/powerpc-linux.elf-fold.map
2020-05-23 08:00:35 -07:00
John Reiser
fd2939e18d
i386 works: ELF layout for page holes
...
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main.c
modified: stub/arm.v4a-linux.elf-fold.h
modified: stub/arm.v5a-linux.elf-fold.h
modified: stub/armeb.v4a-linux.elf-fold.h
modified: stub/i386-linux.elf-entry.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/src/include/linux.h
modified: stub/tmp/arm.v4a-linux.elf-fold.map
modified: stub/tmp/arm.v5a-linux.elf-fold.map
modified: stub/tmp/armeb.v4a-linux.elf-fold.map
modified: stub/tmp/i386-linux.elf-entry.bin.dump
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
2020-05-15 16:05:26 -07:00
John Reiser
80c27e0822
arm.v4a works: ELF layout for page holes
...
modified: p_lx_elf.cpp
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/arm.v4a-linux.elf-entry.h
modified: stub/arm.v4a-linux.elf-fold.h
modified: stub/arm.v5a-linux.elf-entry.h
modified: stub/arm.v5a-linux.elf-fold.h
modified: stub/armeb.v4a-linux.elf-entry.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/tmp/arm.v4a-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v4a-linux.elf-fold.map
modified: stub/tmp/arm.v5a-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v5a-linux.elf-fold.map
modified: stub/tmp/armeb.v4a-linux.elf-entry.bin.dump
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
2020-05-14 15:10:40 -07:00
John Reiser
b463f24eda
arm64 works: ELF layout for page holes
...
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-fold.map
2020-05-10 09:18:06 -07:00