Markus F.X.J. Oberhumer
63f6fef964
all: don't use egrep or fgrep
2022-10-25 01:47:42 +02:00
Markus F.X.J. Oberhumer
983eb6d676
src: improve error message when using doctest options like '--dt-help'; add
...
doctest info to help.cpp
2022-10-25 01:47:38 +02:00
Markus F.X.J. Oberhumer
75a769759d
src/stub: sync stubs
2022-10-24 12:56:49 +02:00
John Reiser
2354b01bad
Adapt to libbfd: "no Shdrs" requires 0==.e_shentsize and 0==.e_shnum
...
modified: p_lx_elf.cpp
2022-10-24 12:56:49 +02:00
John Reiser
c331b9f1e2
Zero the tail of last RW page, even when variable page size
...
https://github.com/upx/upx/issues/611
modified: stub/src/amd64-linux.elf-main.c
2022-10-24 12:56:49 +02:00
John Reiser
afeaeeddec
munmap(, Phdr[C_TEXT=1].p_memsz); // not .p_vaddr
...
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-fold.S
2022-10-24 12:56:49 +02:00
John Reiser
ab7ef9f511
Document the value of "brk #0 " instruction
...
modified: stub/src/arm64-linux.elf-entry.S
2022-10-24 12:56:49 +02:00
John Reiser
d3ad6d25d8
PackLinuxElf64::asl_pack2_Shdrs() for better fit in logical flow
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2022-10-24 12:56:49 +02:00
John Reiser
2e29f9fa5f
pack2() fixes for --android-shlib
...
WIP for https://github.com/upx/upx/issues/599
modified: p_lx_elf.cpp
2022-10-24 12:56:49 +02:00
John Reiser
5d9f71bb13
asl_pack1_Shdrs()
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2022-10-24 12:56:49 +02:00
John Reiser
82ed25bb44
Major fix 64-bit un_shlib_1() and unpack(), but not --android-shlib
...
Also canUnpack() is really a 'bool' which sets overlay_offset
when 'true'; confusing!
https://github.com/upx/upx/issues/599 (partial)
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_unix.h
2022-10-24 12:56:49 +02:00
Markus F.X.J. Oberhumer
f57393c0e8
all: simplify include path handling; update src/Makefile
2022-10-24 12:56:35 +02:00
Markus F.X.J. Oberhumer
b54cced19c
src: add some tests for compress_zlib
2022-10-24 12:18:25 +02:00
Markus F.X.J. Oberhumer
60a0544314
all: bump tentative release date
2022-10-23 23:15:00 +02:00
Markus F.X.J. Oberhumer
283c1cf931
src: add --version-short option; support doctest --dt-XXX options; cleanups
2022-10-23 23:09:13 +02:00
Markus F.X.J. Oberhumer
fff53efc05
src: add some more xspan tests
2022-10-20 14:06:20 +02:00
Markus F.X.J. Oberhumer
07d368adca
all: misc cleanups
2022-10-20 02:09:05 +02:00
Markus F.X.J. Oberhumer
13276d93fa
all: bump tentative release date
2022-10-18 21:07:48 +02:00
John Reiser
72613d06a5
Look for PackHeader in the right place.
...
https://github.com/upx/upx/issues/606
modified: p_mach.cpp
2022-10-11 08:08:55 -07:00
John Reiser
48ad5513ff
un_shlib_1() allows test mode ("-t") which has (nullptr == fo)
...
modified: p_lx_elf.cpp
2022-10-07 12:52:21 -07:00
John Reiser
201d9f1346
Fix length when stub unmaps compressed input for main program
...
https://github.com/upx/upx/issues/606
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
modified: stub/amd64-linux.elf-fold.h
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/tmp/amd64-linux.elf-fold.map
2022-10-07 09:53:29 +02:00
John Reiser
1e8f1f49d0
is_bad_linker_command() ignores LC_REQ_DYLD
...
https://github.com/upx/upx/issues/606
modified: p_mach.cpp
2022-10-06 10:15:10 -07:00
Markus F.X.J. Oberhumer
65707900bc
src: remove more traces of fictional powerpc64le-darwin
2022-10-06 15:53:50 +02:00
Markus F.X.J. Oberhumer
c4437cb293
all: add support for a basic "make test"
2022-10-06 14:10:35 +02:00
Markus F.X.J. Oberhumer
e2b86a49db
src: fix recently introduced bug in unoptimzeReloc
2022-10-06 14:09:45 +02:00
John Reiser
05ff7e35a1
Warn for big shell scripts, and send them to --force-execve.
...
Also propagte error code when execve() fails for compressed shell,
to avoid confusion of `hlt` ==> SIGSEGV.
https://github.com/upx/upx/issues/604
2022-10-05 01:30:32 +02:00
Markus F.X.J. Oberhumer
f67cec4752
submodules: update for new version
2022-10-04 15:33:27 +02:00
Markus F.X.J. Oberhumer
0f42579e68
src: fix djgpp and musl builds
2022-10-02 20:00:30 +02:00
Markus F.X.J. Oberhumer
7398d8f68f
src: enable -Wsuggest-override in src/conf.h
2022-09-27 18:17:28 +02:00
John Reiser
ec33109b22
clang-10 requires the use of 'override'
...
Discovered during gitlab auto-build for https://github.com/upx/upx/issues/595
modified: Makefile
modified: p_armpe.h
modified: p_djgpp2.h
modified: p_lx_elf.h
modified: p_lx_exc.h
modified: p_lx_interp.h
modified: p_lx_sh.h
modified: p_mach.h
modified: p_ps1.h
modified: p_tmt.h
modified: p_unix.h
modified: p_vmlinx.h
modified: p_vmlinz.h
modified: p_w32pe.h
modified: p_w64pep.h
modified: pefile.h
2022-09-27 18:15:48 +02:00
John Reiser
a13b4d10d9
After upx-3.96, the de-compressing stub for ELF moved
...
... so unpack() of newly-compressed ELF by upx-3.96 now says
"CantUnpackException: need a newer version of UPX"
https://github.com/upx/upx/issues/595
modified: p_lx_elf.h
modified: packer.h
2022-09-27 18:09:20 +02:00
Markus F.X.J. Oberhumer
36e94e58d0
stub: add mising powerpc64-darwin tmp dump files
2022-09-27 18:09:20 +02:00
John Reiser
d0a52bd483
More cleanup of stubs for powerpc64le-darwin* which does not exist.
...
Only powerpc64-darwin (BigEndian, no suffix) exists.
https://github.com/upx/upx/issues/596
2022-09-27 15:58:35 +02:00
Markus F.X.J. Oberhumer
4256057c27
src: add a mem_size() call hinted by GitHub CodeQL
2022-09-21 19:28:46 +02:00
John Reiser
55e4a4f086
Assembler local symbol ("1:") clobbered by code in .macro
...
https://github.com/upx/upx/issues/534
modified: stub/arm64-darwin.macho-entry.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.shlib-init.h
modified: stub/src/arch/arm64/v8/lzma_d.S
modified: stub/src/arch/arm64/v8/macros.S
2022-09-20 13:08:14 -07:00
Markus F.X.J. Oberhumer
b4cb9f8b2f
src: silence some bogus GitHub CodeQL warnings; add MemBuffer "+" overload
2022-09-17 07:53:14 +02:00
Markus F.X.J. Oberhumer
63298ebd6d
src: silence clang-15 compiler warnings
2022-09-16 16:31:34 +02:00
Markus F.X.J. Oberhumer
73c816e468
doc: work on improving docs; add generated files to Git repo
2022-09-16 13:26:13 +02:00
Markus F.X.J. Oberhumer
b8b94ee89e
src: more cleanups; NFCI
2022-09-16 13:26:13 +02:00
Markus F.X.J. Oberhumer
81176716d5
src: linker: fix a minor printf format issue detected by codeql
2022-09-16 13:26:13 +02:00
Markus F.X.J. Oberhumer
c75d7a685d
src: major cleanups, introduce new eXtended Span class
...
- initial minimally invasive eXtended Span implementation
- rename ptr_diff to ptr_diff_bytes
- move some files to util subdir
- lots of cleanups
- start using the new checked pointers - this needs some real-world testing
2022-09-16 13:26:13 +02:00
Markus F.X.J. Oberhumer
4318cc22ee
src: cleanup option handling, add testcases; fixes #587
2022-09-16 13:26:13 +02:00
Markus F.X.J. Oberhumer
5db34fbf92
src: new ACC version
2022-09-16 13:26:13 +02:00
Markus F.X.J. Oberhumer
4603f1df4b
src: bump tentative release date
2022-09-16 13:26:13 +02:00
Markus F.X.J. Oberhumer
c69fcfff9d
src: doctest: start work on using doctest
2022-09-16 13:26:13 +02:00
Markus F.X.J. Oberhumer
45e6e73d85
misc: move some scripts from src/stub/scripts to misc/scripts
2022-09-16 13:26:13 +02:00
Markus F.X.J. Oberhumer
be30c26dbb
make: update src/Makefile
2022-09-16 13:26:13 +02:00
Markus F.X.J. Oberhumer
79e9b0762c
CI: work on new cmake-based CI; updates
2022-09-16 13:26:10 +02:00
Markus F.X.J. Oberhumer
3c47898cf4
make: adjust for new vendor/lzma-sdk location
2022-09-11 13:26:32 +02:00
Markus F.X.J. Oberhumer
a20636fd63
submodules: remove submodule src/lzma-sdk
2022-09-04 04:24:39 +02:00
Markus F.X.J. Oberhumer
aa8cdca0a9
src: consistently use TESTING for internal development tests
2022-09-04 04:24:39 +02:00
Markus F.X.J. Oberhumer
6931a3aa70
src: enable -Wzero-as-null-pointer-constant when using clang
2022-09-04 04:24:39 +02:00
Markus F.X.J. Oberhumer
d001a63bce
Welcome 2022.
2022-09-04 04:24:39 +02:00
Markus F.X.J. Oberhumer
0d3377f48b
src: p_mach.cpp: disable -Wcast-align warning
2022-08-17 19:54:44 +02:00
John Reiser
aeb04d97c8
powerpc64-darwin.macho (not powerpc64le-darwin.macho)
...
All Apple PowerPC are BigEndian only.
https://github.com/upx/upx/issues/596
modified: p_mach.cpp
modified: p_mach.h
modified: packmast.cpp
2022-09-03 12:39:50 -07:00
John Reiser
eb68ab91cd
PackDjgpp2::canPack() allows "loose" (non-contiguous) text,data,bss
...
Hack: grow text to eliminate gap; don't complain unless bss overlaps data
https://github.com/upx/upx/issues/45
modified: p_djgpp2.cpp
2022-08-29 11:37:46 +02:00
cui fliter
44a53736ff
fix some typos
...
Signed-off-by: cui fliter <imcusg@gmail.com>
2022-08-23 19:20:21 +02:00
Markus F.X.J. Oberhumer
5f9c50cd3e
clang-format
2022-08-10 23:29:43 +02:00
Markus F.X.J. Oberhumer
793d8c1d2e
Fix compilation with C++20.
2022-07-17 21:16:11 +02:00
John Reiser
dadbbbdc64
Avoid trouble: disallow empty name of export directory
...
https://github.com/upx/upx/issues/425
modified: pefile.cpp
2022-08-13 12:25:30 -07:00
John Reiser
bfd2153f2b
Delete trailing space characters
...
https://github.com/upx/upx/pull/589
modified: pefile.cpp
2022-07-26 20:09:16 -07:00
S01den
077793fa5e
Update pefile.cpp
...
I found a bug by participating to the Binary Golf Grand Prix 3 (https://tmpout.sh/bggp/3/ ) : upx text.exe segfaults when NumberOfSections in the IMAGE_FILE_HEADER is NULL, so
if (memcmp(isection[0].name,"UPX",3) == 0) triggers a NULL pointer dereference causing a crash.
To fix it, just have to check if isection is NULL (which means NumberOfSections = 0) or not.
2022-07-27 01:54:01 +02:00
John Reiser
acad3c3000
DT_INIT_ARRAY noes not pertain to DT_* for symbol table info
...
https://github.com/upx/upx/issues/586
modified: p_lx_elf.cpp
2022-07-02 20:52:18 -07:00
John Reiser
3b4627e17e
Add filename to infoWarning("file coruupted")
...
modified: p_mach.cpp
2022-06-01 08:34:23 -07:00
John Reiser
05976ee1a7
Try harder to de-compress corrupted Mach-o file.
...
https://github.com/upx/upx/issues/579
modified: p_mach.cpp
2022-05-31 11:52:10 -07:00
John Reiser
c1311c78a3
Extra space to force "git commit" to force rebuild for tagging Issue
...
https://github.com/upx/upx/issues/577
modified: p_lx_elf.cpp
2022-05-30 15:19:18 -07:00
John Reiser
717150b7f3
Stupid MSVC: bad C4706: assignment within conditional expression
...
- for (unsigned j=0; (k = dt_names[j]); ++j) {
+ for (unsigned j=0; ((k = dt_names[j]), k); ++j) {
The complaint was:
p_lx_elf.cpp(5710) : warning C4706: assignment within conditional expression
which is INCORRECT, as shown in the change which is 100% equivalent.
The assignment occurs BEFORE the conditional expression.
modified: p_lx_elf.cpp
2022-05-30 15:09:34 -07:00
John Reiser
a68c62d938
More placate compilers
...
https://github.com/upx/upx/issues/577
modified: p_lx_elf.cpp
2022-05-30 15:02:53 -07:00
John Reiser
c11f8a569a
Placate 'clang' -Wcast-align
...
https://github.com/upx/upx/issues/577
modified: p_lx_elf.cpp
2022-05-30 14:55:39 -07:00
John Reiser
03436d2415
Bug in handling DT_GNU_HASH table.
...
Fix includes a more-general and stronger heuristic to find the end of
GNU_HASH table when there is no ElfXX_Shdr for it. 64-bit only for now.
(This is needed to help prevent SIGSEGV when processing tampered .exe.)
https://github.com/upx/upx/issues/577
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2022-05-30 14:24:21 -07:00
John Reiser
4ae75375e0
LC_BUILD_VERSION etc for XCode 13+
...
https://github.com/upx/upx/issues/578
modified: p_mach.cpp
modified: p_mach_enum.h
2022-05-30 01:05:09 -07:00
John Reiser
2721ef0636
ElfLinker::init() allows symbols and relocations (but not Sections) to be empty
...
modified: linker.cpp
modified: linker.h
2022-05-04 13:29:36 -07:00
John Reiser
7a232cb330
Allow qemu on host with smaller PAGE_SIZE. Sync stubs.
...
https://github.com/upx/upx/issues/571
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
modified: stub/arm64-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/src/amd64-linux.elf-main.c
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2022-03-25 09:13:10 -07:00
John Reiser
52f19ae330
Cleanup powerpc64le-linux.elf-*.S (forgotten when powerpc-linux.elf*.S)
...
https://github.com/upx/upx/issues/571
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/src/amd64-linux.elf-main.c
modified: stub/src/powerpc64le-linux.elf-entry.S
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
2022-03-24 19:14:56 -07:00
John Reiser
275477f914
ElfLinker::addSection omits "ABS*" and "UND*" sections
...
modified: linker.cpp
2022-03-24 19:09:09 -07:00
John Reiser
78c555b4a6
Handle old-style compressed main programs when de-compressing
...
modified: p_lx_elf.cpp
2022-03-22 19:20:09 -07:00
John Reiser
a127125707
Comment the breakpoint instructions for faster analysis by 'grep'
...
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm.v5a-darwin.macho-entry.S
modified: stub/src/arm.v5a-darwin.macho-fold.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-fold.S
2022-03-22 19:18:19 -07:00
John Reiser
f853f91c5b
Placate clang re: missing 'override'
...
modified: file.h
2022-03-22 19:16:15 -07:00
John Reiser
e7ca5c54ff
Fix --brute for p_lx_elf.cpp, which compresses multiple pieces
...
Force all pieces to use the same de-compressor.
(Future: allow each PT_LOAD to choose its own.)
Has minor wobbles due to page alignment, and size of de-compressor.
64-bit only for now.
https://github.com/upx/upx/issues/570
https://github.com/upx/upx/issues/297
modified: p_lx_elf.cpp
modified: p_unix.cpp
modified: packer.cpp
modified: packer.h
2022-03-22 11:46:25 -07:00
John Reiser
663d6b466b
WIP: clarify compressWithFilters; reduce size of obuf for PackLinuxElf64
...
modified: p_lx_elf.cpp
modified: packer.cpp
modified: packer.h
2022-03-21 13:49:46 -07:00
John Reiser
34df0d6ef1
More empty HASH and/or GNU_HASH when Rust-musl
...
https://github.com/upx/upx/issues/568
modified: p_lx_elf.cpp
2022-03-12 14:21:51 -08:00
John Reiser
540164849b
whitespace
...
https://github.com/upx/upx/issues/446
modified: macho-snip.c
2022-03-01 16:05:37 -08:00
John Reiser
252143d0bb
WIP: smallest executable on Apple M1 (aarch64 or arm64)
...
Requirements for success after snipping a loader_command:
"codesign -s - my_app" must succeed.
"lldb my_app; process launch -s; continue" must succeed.
Optional loader_commands (macho-snip can remove these successfully):
LC_UUID, LC_BUILD_VERSION, LC_SOURCE_VERISON,
LC_DATA_IN_CODE (when 0==datasize)
Apple "strip -N" clears out LC_SYMTAB and LC_DYSYMTAB, but leaves
LC_DYLD_INFO_ONLY.export_size. Perhaps this could be zero if
constructed that way; snipping seems tedious because codesign
requires that __LINKEDIT must have no gaps.
LC_FUNCTION_STARTS seems to be required by codesign.
codesign wants offsets that point into __LINKEDIT to be in order:
LC_DYLD_INFO_ONLY, LC_FUNCTION_STARTS, LC_DATA_IN_CODE, LC_SYMTAB
MacOS seesm to require LC_LOAD_DYLINKER (else "zsh: Kiled"),
which seems to require LD_LOAD_DYLIB (else SIGABRT).
https://github.com/upx/upx/issues/446
----
modified: macho-snip.c
modified: udf.s
2022-03-01 15:06:58 -08:00
John Reiser
480ab51650
Evade poratbility constraints of UPX build system
...
when building a tool to investigate "minimal" Mach-O executable
on Apple MacOS Big Sur using Apple M1 hardware (aarch64).
https://github.com/upx/upx/issues/567
modified: stub/tools/macho-snip/Makefile
modified: stub/tools/macho-snip/macho-snip.c
modified: stub/tools/macho-snip/udf.s
2022-03-01 11:12:19 -08:00
John Reiser
972c76eb42
Tool for snipping loader_commands in Mach-O on Apple M1 (aarch64) on BigSur.
...
experimental!
https://github.com/upx/upx/issues/424
new file: macho-snip/Makefile
new file: macho-snip/macho-snip.c
new file: macho-snip/udf.s
2022-02-28 19:53:25 -08:00
John Reiser
e5aeea9ed2
Check more carefully in invert_pt_dynamic()
...
https://github.com/upx/upx/issues/566
modified: p_lx_elf.cpp
2022-02-28 07:55:49 -08:00
John Reiser
f204670008
Mach unpack checks for bad load_command in compressed input
...
https://github.com/upx/upx/issues/564
modified: p_mach.cpp
2022-02-25 10:17:04 -08:00
John Reiser
651155c64d
Check Mach_header.ncmds at unpack
...
https://github.com/upx/upx/issues/563
modified: p_mach.cpp
2022-02-25 09:32:29 -08:00
John Reiser
660aee6d22
More checking for unpack of tampered Elf_Phdr
...
https://github.com/upx/upx/issues/562
modified: p_elf_enum.h
modified: p_lx_elf.cpp
2022-02-25 09:23:55 -08:00
John Reiser
a646231630
aligned_sotls, per Laszlo
...
https://github.com/upx/upx/issues/556
modified: pefile.cpp
2022-02-07 08:39:13 -08:00
John Reiser
1050de5171
Native alignment for the "load config" table
...
https://github.com/upx/upx/issues/556
modified: pefile.cpp
2022-01-15 06:45:47 -08:00
John Reiser
b7a5b9437a
Fix checking of sh_name versus shstrsec->sh_size
...
https://github.com/upx/upx/issues/509
modified: p_vmlinx.cpp
2022-01-01 14:20:18 -08:00
Kornel Pal
620955a724
PE: Fix has_oxrelocs (TLS always has oxrelocs)
2021-12-31 20:45:28 +01:00
John Reiser
2e64a277f8
Fix headway during optimizeReloc()
...
Later: "Assertion `(soxrelocs == 0) == !has_oxrelocs' failed."
https://github.com/upx/upx/issues/552
modified: packer.cpp
modified: packer.h
modified: pefile.cpp
2021-12-31 10:27:58 -08:00
John Reiser
ea567a8b14
Check when optimizeRelocs()
...
https://github.com/upx/upx/issues/513
modified: packer.h
modified: packer.cpp
modified: pefile.cpp
modified: p_wcle.cpp
modified: p_tmt.cpp
2021-12-29 16:57:52 -08:00
John Reiser
be23f93ee6
upx_uint8_t
...
https://github.com/upx/upx/issues/545
modified: p_mach.h
2021-12-27 08:49:05 -08:00
John Reiser
fcdf0e92c1
Use upx_uint32_t, upx_uint64_t
...
Avoid complaints from x86_64-w64-mingw32-gcc (GCC) 9.3-win32 20200320
https://github.com/upx/upx/issues/545
modified: p_mach.h
2021-12-27 08:33:54 -08:00
John Reiser
2d6987252e
is_bad_linker_command()
...
https://github.com/upx/upx/issues/545
modified: p_mach.cpp
2021-12-27 08:14:19 -08:00
John Reiser
4a9c46253e
Validate input LC_ commands in order to defend against fuzzers
...
TODO: validate in ::unpack(), too
https://github.com/upx/upx/issues/545
modified: p_mach.cpp
modified: p_mach.h
modified: p_mach_enum.h
2021-12-26 19:40:34 -08:00
John Reiser
5bcf9dd8af
Do not complain for minimal DT_GNU_HASH as by Rust.
...
Also: .p_type is 32 bits only!
https://github.com/upx/upx/issues/525
modified: p_lx_elf.cpp
2021-12-25 12:39:31 -08:00
John Reiser
284adb203f
Better checking of DT_HASH.nbuckets
...
https://github.com/upx/upx/issues/507
modified: p_lx_elf.cpp
2021-12-24 15:52:16 -08:00
John Reiser
adafa841f7
Some PT_LOAD must have (p_flags & PF_X)
...
https://github.com/upx/upx/issues/511
modified: p_lx_elf.cpp
2021-12-24 15:32:19 -08:00
John Reiser
fdc5d25d03
Require DT_STRSZ
...
https://github.com/upx/upx/issues/512
modified: p_lx_elf.cpp
2021-12-24 15:08:22 -08:00
Kornel Pal
990d0ec543
PE: Remove duplicate oxrelocs write
2021-12-22 05:07:54 +01:00
Kornel Pal
00e3d992e8
Sync stubs
2021-12-22 03:05:53 +01:00
Kornel Pal
937bfa4e49
PE: Add support for EFI images
2021-12-22 03:05:24 +01:00
Kornel Pal
1d9c211eed
PE: Make imports in decompressor stub optional
2021-12-22 03:00:17 +01:00
Kornel Pal
76ddf6b8da
PE: Add position independent decompressor stub for i386
2021-12-22 02:58:09 +01:00
Kornel Pal
7f1f29b0d8
PE: Remove empty non-compressed section
2021-12-22 02:57:10 +01:00
Kornel Pal
222471744f
PE: Remove file alignment restriction
2021-12-22 02:56:09 +01:00
Kornel Pal
cc100be26e
PE: Fix stripped relocation handling
2021-12-22 02:55:33 +01:00
Kornel Pal
966b571b7c
PE: Use no red zone on AMD64
2021-12-16 06:59:26 +01:00
Kornel Pal
f3e710394a
PE: Set header size on 64-bit too
2021-12-16 06:57:39 +01:00
Kornel Pal
bfd1f1fbfa
PE: Fix relocation parsing and validation
2021-12-16 06:56:01 +01:00
Efreak
a09146b5e0
unreferenced variable breaks build
2021-12-02 14:00:40 -08:00
John Reiser
e2dbc661f1
Sync stub
...
modified: stub/i386-linux.elf-entry.h
2021-12-03 08:38:26 -08:00
John Reiser
7626e09f66
Fix jl ==> jb (unsigned compare)
...
modified: stub/src/i386-linux.elf-entry.S
2021-12-03 08:27:23 -08:00
Kirill A. Korinsky
248a6980cf
Revert -std=c++14
...
This commit reverts 648fa30f22 which was removed by d60c46371d which is fixed https://github.com/upx/upx/issues/440
2021-11-27 13:22:54 +01:00
John Reiser
f956bfc797
Allow slack for non-GLIBC tool chains versus -Wzero-as-null-pointer-constant
...
https://github.com/upx/upx/pull/531
modified: conf.h
2021-11-27 06:58:38 -08:00
bitraid
6da79783ea
PE: Handle empty imports
2021-05-15 21:41:31 +03:00
John Reiser
bd441e83ae
WIP: de-compression of old-style shlib
...
modified: p_lx_elf.cpp
2021-09-06 08:43:20 -07:00
John Reiser
02bd9cc403
IMAGE_SUBSYSTEM_EFI_APPLICATION
...
Beginning of support for compressing EFI files; lacks run-time decompressor.
https://github.com/upx/upx/issues/518
modified: p_armpe.cpp
modified: p_w32pe.cpp
modified: p_w64pep.cpp
modified: pefile.cpp
modified: pefile.h
2021-09-06 08:38:51 -07:00
John Reiser
c9f6a3583c
WIP 64-bit shlib
...
modified: p_lx_elf.cpp
2021-08-07 06:45:01 -07:00
John Reiser
076aaf829a
WIP: Elf64 shlib compress+decompress seems to work
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_unix.cpp
2021-07-05 13:47:19 -07:00
John Reiser
85f0c5a445
WIP: Elf64 shlib cleanup
...
modified: file.cpp
modified: file.h
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2021-07-02 18:33:38 -07:00
John Reiser
d5263a56ce
WIP: handling shared library
...
modified: p_lx_elf.cpp
modified: p_unix.cpp
modified: p_unix.h
2021-05-22 16:03:53 -07:00
Markus F.X.J. Oberhumer
6aa641e5aa
Update submodules.
2021-05-15 06:03:48 +02:00
John Reiser
504839951a
arm64 clear_cache at end of de-compress
...
https://github.com/upx/upx/issues/441
modified: stub/src/arch/arm64/v8/macros.S
modified: stub/src/arch/arm64/v8/lzma_d.S
modified: stub/src/arch/arm64/v8/nrv2b_d32.S
modified: stub/src/arch/arm64/v8/nrv2d_d32.S
modified: stub/src/arch/arm64/v8/nrv2e_d32.S
modified: stub/arm64-darwin.macho-entry.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.shlib-init.h
modified: stub/tmp/arm64-darwin.macho-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/arm64-linux.shlib-init.bin.dump
2021-05-16 09:53:03 -07:00
bitraid
d55746f62d
PE: disable CFG and compress with --force
2021-05-01 18:05:27 +03:00
bitraid
144010295e
Improve --strip-relocs
...
- Remove .reloc section
- Enable for 64-bit images
- Abort if explicitly set on unsupported image
- Use with --force to remove ASLR / apply when imagebase < default
2021-04-25 20:15:07 +03:00
John Reiser
181c752488
WIP: un_shlib_1
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2021-05-08 11:14:31 -07:00
John Reiser
bd4aca5c12
generated stub files
...
https://github.com/upx/upx/issues/473
modified: stub/mips.r3000-linux.shlib-init.h
modified: stub/mipsel.r3000-linux.shlib-init.h
modified: stub/tmp/mips.r3000-linux.shlib-init.bin.dump
modified: stub/tmp/mipsel.r3000-linux.shlib-init.bin.dump
2021-05-07 11:15:41 -07:00
John Reiser
ad6d73c875
/proc/self/auxv for AT_PAGESZ because musl calls _init with no args
...
https://github.com/upx/upx/issues/473
modified: mipsel.r3000-linux.shlib-init.S
2021-05-07 09:36:07 -07:00
bitraid
c5cc83d424
Fix unoptimizeReloc() to process all relocs
2021-04-21 23:06:55 +03:00
John Reiser
766fe466d6
PAGE_SIZE varies: Apple M1 uses 16K
...
modified: p_mach.cpp
modified: p_mach.h
modified: p_mach_enum.h
2021-04-11 15:19:24 -07:00
John Reiser
333a288248
shlib: Don't compress below xct_off (except Elf headers)
...
modified: p_lx_elf.cpp
2021-04-11 15:16:34 -07:00
John Reiser
613df414ed
Fix off-by-1 in invert_pt_dynamic; SHT_NOBITS occupies no space
...
modified: p_lx_elf.cpp
2021-04-11 15:09:55 -07:00
John Reiser
be050693f2
PackLinuxElf::canUnpack must checkEhdr() for ELF input
...
https://github.com/upx/upx/issues/485
modified: p_lx_elf.cpp
2021-04-10 10:11:48 -07:00
goushibee
bf957f435e
fix issue 486
2021-04-07 15:40:13 +08:00
bitraid
9ea2b31541
PE: fix SectionHeadersSize of SizeOfHeaders value
2021-04-06 22:49:31 +03:00
John Reiser
cb70a5fef5
Enable usual grep for function definition
...
Developer convenience: no space between function name and left paren
modified: compress.cpp
2021-04-03 12:46:20 -07:00
Markus F.X.J. Oberhumer
d33a34f016
Revert some changes from previous commit to pacify clang
...
-Winconsistent-missing-override warnings.
2021-03-28 21:40:13 +02:00
Markus F.X.J. Oberhumer
f6ff5a2805
Cleanups: start working on -Wsuggest-override, add some "final". NFCI.
2021-03-28 21:19:29 +02:00
bitraid
1518e5bc98
PE: fix SizeOfHeaders value of Optional Header field
2021-03-25 21:41:49 +02:00
John Reiser
78f48d65d5
Allow 0==nbucket for DT_HASH, DT_GNU_HASH
...
static linked 'Rust' program with no symbols
https://github.com/upx/upx/issues/476
2021-03-25 07:22:01 -07:00
John Reiser
b81ec224b7
Fix headway argument to invert_pt_dynamic()
...
https://github.com/upx/upx/issues/473
modified: p_lx_elf.cpp
2021-03-25 07:10:40 -07:00
John Reiser
4be6cfebcd
get_te32() when checking DT_GNU_HASH chains (MIPS .so)
...
https://github.com/upx/upx/issues/473
modified: p_lx_elf.cpp
2021-03-23 18:21:45 -07:00
John Reiser
98973dd8b9
get_te32() when checking DT_HASH chains (MIPS .so)
...
https://github.com/upx/upx/issues/473
modified: p_lx_elf.cpp
2021-03-23 06:45:01 -07:00
John Reiser
1218b6ff2a
Check more in invert_pt_dynamic
...
https://github.com/upx/upx/issues/471
modified: p_lx_elf.cpp
2021-03-16 18:46:11 -07:00
John Reiser
ba5c77c9e5
Reject if MZ and PE headers overlap
...
Overlap ('leanify', etc.) causes headaches.
https://github.com/upx/upx/issues/231
modified: p_w32pe.cpp
modified: p_w64pep.cpp
modified: pefile.cpp
2021-03-14 15:20:15 -07:00
John Reiser
cb60603950
Turn off BUILD_TYPE_DEBUG to enable CI build amd64-win64-gcc-9 to pass.
...
modified: Makefile
2021-03-07 09:33:16 -08:00
John Reiser
0a69e7803b
Fix errors detected by "make run-testsuite".
...
total_out does not matter when option -t writes no output file.
Subtle error in generateElfHdr() [noted by address sanitizer].
New member function is_LOAD32() to avoid confusion with (1+ LO_PROC).
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2021-03-06 15:31:56 -08:00
John Reiser
baa9090198
Change back to lzma-sdk d5bed9963d051c9e5690b12199eab6884a592c43
...
modified: lzma-sdk
2021-03-06 12:05:23 -08:00
John Reiser
e78a08b8fc
change lzma-sdk to latest commit 44db23cc6d6b607986dace07b17fece1af925558 on its master
2021-03-06 10:46:40 -08:00
John Reiser
7e5e6012df
PackMachFat::canPack handles case PackMachFat::CPU_TYPE_ARM64
...
modified: p_mach.cpp
2021-03-06 09:59:51 -08:00
John Reiser
0a1d24d1d9
Remove nit from PackLinuxElf64::generateElfHdr [address sanitizer]
...
modified: p_lx_elf.cpp
2021-03-05 16:33:25 -08:00
John Reiser
35555bfb8a
WIP: PackLinuxElf64::unpack working for shared libraries (non-Android)
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_unix.cpp
2021-03-05 16:20:36 -08:00
John Reiser
c9cb42df40
WIP: hacking un_shlib_1
...
modified: p_lx_elf.cpp
2021-02-28 17:12:20 -08:00
John Reiser
2be03028f4
WIP: un_shlib_1
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2021-02-27 19:27:12 -08:00
John Reiser
214dd0a522
4 fewer bytes of code?
...
modified: arm64-linux.elf-fold.h
modified: tmp/arm64-linux.elf-fold.map
2021-02-23 02:24:24 -08:00
John Reiser
182e0796df
Split PackLinuxElf64::unpack for main program vs shared library
...
modified: p_lx_elf.cpp
2021-02-22 16:15:03 -08:00
John Reiser
fb844a8ed1
total_in, total_out move to PackUnix
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_lx_interp.cpp
modified: p_mach.cpp
modified: p_unix.cpp
modified: p_unix.h
2021-02-22 16:13:40 -08:00
John Reiser
6be3e747ca
Remove unrelated debugging
...
modified: stub/src/arm64-linux.elf-fold.S
2021-02-15 11:40:04 -08:00
John Reiser
23f63e4196
WIP unpacking ELF shared library
...
modified: Makefile
modified: lzma-sdk
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_mach.cpp
modified: p_unix.cpp
modified: p_unix.h
modified: packer.cpp
modified: packer.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/tmp/arm64-linux.elf-fold.map
2021-01-15 14:11:09 -08:00
John Reiser
fd6837b267
Another checkAlreadyPacked()
...
https://github.com/upx/upx/issues/463
modified: Makefile
modified: p_mach.cpp
2021-02-26 15:15:28 -08:00
John Reiser
1c29f921e0
getSizeForCompression worst cases
...
https://github.com/upx/upx/issues/463
modified: Makefile
modified: mem.cpp
2021-02-25 20:04:16 -08:00
John Reiser
1ab6e01de2
MacOS BigSur wants no MH_DYLDLINK for our MH_EXECUTE
...
https://github.com/upx/upx/issues/434
modified: p_mach.cpp
2021-02-14 13:23:19 -08:00
John Reiser
2469563b26
Mach_ARM64_thread_state padded to (0 mod 8)
...
https://github.com/upx/upx/issues/446 (partial)
modified: p_mach.cpp
modified: p_mach.h
modified: p_mach_enum.h
2021-01-30 16:11:32 -08:00
John Reiser
00139caf43
More robust PackWcle::decodeFixups()
...
https://github.com/upx/upx/issues/455
modified: p_wcle.cpp
2021-01-23 15:37:52 -08:00
John Reiser
21d102c84f
Better checking of Mach_header.ncmds, .sizeofcmds
...
Improves earlier fix.
https://github.com/upx/upx/issues/447
modified: p_mach.cpp
2021-01-23 13:52:54 -08:00
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
John Reiser
2a849444db
un-debug
...
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/amd64-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-fold.map
2020-05-09 09:46:51 -07:00
John Reiser
69e106c0c5
unmap C_TEXT
...
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/amd64-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-fold.map
2020-05-09 09:45:02 -07:00
John Reiser
926481dace
ELF layout for page holes when runtime PAGE_SIZE < .p_align
...
amd64 works
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/amd64-linux.elf-main.c
modified: Makefile
modified: stub/amd64-linux.elf-entry.h
modified: stub/amd64-linux.elf-fold.h
modified: stub/amd64-linux.shlib-init.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/src/amd64-linux.shlib-init.S
modified: stub/tmp/amd64-linux.elf-entry.bin.dump
modified: stub/tmp/amd64-linux.elf-fold.map
modified: stub/tmp/amd64-linux.shlib-init.bin.dump
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-05-09 08:05:05 -07:00
John Reiser
a3b2cde58d
max_bucket versus symbias
...
modified: p_lx_elf.cpp
2020-04-17 17:09:47 -07:00
John Reiser
30f37d2cc6
DT_GNU_HASH check the buckets
...
https://github.com/upx/upx/issues/365
modified: p_lx_elf.cpp
2020-04-17 16:49:54 -07:00
John Reiser
c4d61dd9fe
--preserve-build-id for ET_EXEC
...
https://github.com/upx/upx/issues/371
modified: p_lx_elf.cpp
2020-04-17 16:17:29 -07:00
John Reiser
210870f840
invert_pt_dynamic() DT_GNU_HASH trims hash array for Rust and Android
...
https://github.com/upx/upx/issues/369
modified: p_lx_elf.cpp
2020-04-15 17:29:03 -07:00
John Reiser
4cb4bd38eb
check_pt_dynamic() checks PT_DYNAMIC.p_memsz
...
https://github.com/upx/upx/issues/368
modified: p_lx_elf.cpp
2020-04-15 14:24:05 -07:00
John Reiser
58c6d19f7c
unpack() checks PT_DYNAMIC.p_filesz
...
https://github.com/upx/upx/issues/367
modified: p_lx_elf.cpp
2020-04-15 14:12:06 -07:00
John Reiser
f99ae94747
More checking .e_shstrndx
...
https://github.com/upx/upx/issues/366
modified: p_vmlinx.cpp
2020-04-15 13:44:35 -07:00
John Reiser
6868ca7953
getElfSections concentrates on _Shdr[.e_shstrndx]
...
https://github.com/upx/upx/issues/363
modified: p_vmlinx.cpp
2020-04-15 13:29:01 -07:00
John Reiser
87a5a4ef32
WIP but should concentrate on section .e_shstrndx instead.
...
modified: p_vmlinx.cpp
2020-04-15 13:13:45 -07:00
John Reiser
c67a5d677c
More bounds checking for DT_INIT (etc.) in shlib
...
https://github.com/upx/upx/issues/364
modified: p_lx_elf.cpp
2020-04-13 17:08:49 -07:00
bitraid
1ce6f0e6f4
Fix unpacking of ASLR enabled PE files
2020-04-12 03:19:57 +03:00
John Reiser
740b4ff865
ELF shared lib: PT_DYNAMIC might be below xct_off, such as MIPS
...
https://github.com/upx/upx/issues/298
modified: p_lx_elf.cpp
2020-02-15 15:04:44 -08:00
John Reiser
1059f62566
MIPS stub mprotect() suffered from [non-]inlining.
...
https://github.com/upx/upx/issues/342
https://github.com/upx/upx/issues/339
modified: src/stub/src/include/linux.h
consequences:
modified: .github/travis_testsuite_1-expected_sha256sums.sh
modified: src/stub/mips.r3000-linux.elf-fold.h
modified: src/stub/mipsel.r3000-linux.elf-fold.h
modified: src/stub/tmp/mips.r3000-linux.elf-fold.map
modified: src/stub/tmp/mipsel.r3000-linux.elf-fold.map
2020-02-08 19:55:08 -08:00
Markus F.X.J. Oberhumer
c63a71ad42
Prepare for switch to semantic versioning.
2020-01-22 23:24:00 +01:00
Markus F.X.J. Oberhumer
f33645f739
Post-release version bump.
2020-01-22 23:11:13 +01:00
Markus F.X.J. Oberhumer
d7ba31cab8
Bump release date.
2020-01-22 22:29:58 +01:00
John Reiser
342b1b7d6c
EM_PPC64 forgot get_te16(&...) for ehdri.e_machine
...
So compression on big-endian host was not correct.
https://github.com/upx/upx/issues/334
modified: p_lx_elf.cpp
2020-01-19 18:48:50 -08:00
John Reiser
936013f60c
Decompression escape hatch for ELF can require a new page.
...
If not enough room on last page of .text, and ElfXX_Ehdr not PF_X,
then the escape hatch must use a new page.
https://github.com/upx/upx/issues/308
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/i386-linux.elf-main.c
Plus stub/*-linux.elf-fold.h and stub/tmp/*-linux.elf-fold.map
2020-01-19 13:25:55 -08:00
Markus F.X.J. Oberhumer
9172ae3d19
New ACC version.
2020-01-16 01:53:55 +01:00
John Reiser
e2f60adc95
Detect 0==DT_SYMTAB in invert_pt_dynamic()
...
https://github.com/upx/upx/issues/333
modified: p_lx_elf.cpp
2020-01-14 18:45:52 -08:00
John Reiser
1bb93d4fce
Detect bad e_shstrtab better.
...
https://github.com/upx/upx/issues/332
modified: p_lx_elf.cpp
2020-01-13 17:26:31 -08:00
John Reiser
eb90eab632
Detect bogus DT_SYMENT.
...
https://github.com/upx/upx/issues/331
modified: p_lx_elf.cpp
2020-01-13 17:10:02 -08:00
Markus F.X.J. Oberhumer
b5b1f06a11
Avoid some compilation warnings.
2020-01-08 06:04:21 +01:00
Markus F.X.J. Oberhumer
86f8eb0930
Fix shadowing global symbols.
2020-01-08 05:44:06 +01:00
Markus F.X.J. Oberhumer
91ad0e7572
Revert "Cleanup legacy symbols: basename, index"
...
This reverts commit 47ddace96a .
2020-01-08 05:41:56 +01:00
Markus F.X.J. Oberhumer
ded07f8781
Revert "MSVC lacks S_IXUSR"
...
This reverts commit 62a07df45e .
2020-01-08 05:38:44 +01:00
Markus F.X.J. Oberhumer
849bdd87e1
Revert "Option --assume-execute-permission"
...
This reverts commit 4484acf9d6 .
2020-01-08 05:38:19 +01:00
Markus F.X.J. Oberhumer
92f072cf70
Silence some compiler warnings.
2020-01-08 04:49:27 +01:00
Markus F.X.J. Oberhumer
6a6c6d84eb
Rebuild stubs.
2020-01-08 04:30:08 +01:00
Markus F.X.J. Oberhumer
08a689c81e
Bump tentative release date.
2020-01-08 04:21:30 +01:00
Markus F.X.J. Oberhumer
d1174385ef
Welcome 2020.
2020-01-08 04:13:28 +01:00
John Reiser
cb5f590e10
More hacking Android shlib.
...
https://github.com/upx/upx/issues/318
modified: p_elf_enum.h
modified: p_lx_elf.cpp
2019-12-12 20:23:33 -08:00
John Reiser
5ed9c66ed9
Hack Android shared libraries on arm64.
...
https://github.com/upx/upx/issues/318
modified: p_lx_elf.cpp
2019-12-12 17:05:50 -08:00
John Reiser
b8f52d14f4
user_init_va on AARCH64
...
https://github.com/upx/upx/issues/318 (work-in-progress)
modified: p_elf_enum.h
modified: p_lx_elf.cpp
2019-12-04 14:26:46 -08:00
John Reiser
5d295c24f0
DT_NEEDED can be duplicated
...
modified: p_lx_elf.cpp
2019-11-26 19:33:27 -08:00
John Reiser
8be9da8280
Avoid bogus values in PT_DYNAMIC segment.
...
Detect duplicate DT_*.
Detect out-of-bounds hashtab and gashtab.
Detect missing DT_REL, DT_RELA.
Detect out-of-bounds d_val.
https://github.com/upx/upx/issues/317
modified: p_lx_elf.cpp
2019-11-23 20:06:14 -08:00
John Reiser
819c33fee2
Detect malformed Mach-o file in ::canUnpack()
...
https://github.com/upx/upx/issues/314
https://github.com/upx/upx/issues/315
modified: p_mach.cpp
2019-11-15 21:32:06 -08:00
John Reiser
75a2cc4ecb
Sync testsuite (amd64, 32-bit ARM, 64-bit ARM)
...
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
modified: Makefile
2019-10-27 21:56:30 -07:00
John Reiser
e2833cf303
Message when /proc/self/exe lacks Read permission
...
Done: amd64, 32-bit ARM, 64-bit ARM. TODO: mips, PowerpC
https://github.com/upx/upx/issues/302
modified: stub/amd64-linux.elf-entry.h
modified: stub/arm.v4a-linux.elf-entry.h
modified: stub/arm.v5a-linux.elf-entry.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/armeb.v4a-linux.elf-entry.h
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/tmp/amd64-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v4a-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v5a-linux.elf-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/armeb.v4a-linux.elf-entry.bin.dump
2019-10-27 21:30:41 -07:00
John Reiser
801de73dbe
random assembler?
...
modified: ../stub/arm64-linux.elf-entry.h
2019-10-27 21:15:15 -07:00
John Reiser
6a53c0b3d4
[Append to previous commit message.]
...
https://github.com/upx/upx/issues/286
modified: p_vmlinx.cpp
2019-07-21 10:51:59 -07:00
John Reiser
58b122d97d
Better checking for malformed input
...
https://github.com/upx/upx/issues
modified: p_vmlinx.cpp
2019-07-21 10:48:50 -07:00
John Reiser
276b748aa6
Ignore malformed ElfXX_Shdr in search for .text or .note
...
https://github.com/upx/upx/issues/287
modified: p_vmlinx.cpp
2019-07-21 07:40:21 -07:00
John Reiser
23570097cf
MSVC barfs on {unsigned == long int) [because sizeof() is the same!]
...
https://github.com/upx/upx/issues/283
modified: p_lx_elf.cpp
2019-07-14 13:39:09 -07:00
John Reiser
62a07df45e
MSVC lacks S_IXUSR
...
modified: p_unix.cpp
2019-07-14 13:38:51 -07:00
John Reiser
593a69ce25
PT_LOAD[0] with ElfXX.Ehdr only
...
https://github.com/upx/upx/issues/283
modified: p_lx_elf.cpp
2019-07-14 13:08:56 -07:00
John Reiser
c33603e324
'bound' register was clobbered
...
modified: stub/src/arch/arm64/v8/lzma_d-arm.S
2019-07-14 13:05:52 -07:00
John Reiser
49766388bc
Fix compression and de-compression of Android shared libraries
...
Handle relocation (and DT_INIT_ARRAY[0]==NULL) when !DT_INIT.
Warn about missing --android-shlib if (ET_DYN && !DF_1_PIE && Arm*).
modified: p_lx_elf.cpp
modified: p_lx_elf.h
https://github.com/upx/upx/issues/265
https://github.com/upx/upx/issues/262
https://github.com/upx/upx/issues/259
https://github.com/upx/upx/issues/243
https://github.com/upx/upx/issues/229
https://github.com/upx/upx/issues/220
2019-04-14 19:59:08 -07:00
John Reiser
f23267bddd
Fix rotate+lop of PT_INTERP in shared library
...
Found while working on https://github.com/upx/upx/issues/262
but probably does not help that bug.
modified: p_lx_elf.cpp
2019-04-01 21:35:53 -07:00
John Reiser
4484acf9d6
Option --assume-execute-permission
...
modified: main.cpp
modified: options.h
modified: p_unix.cpp
https://github.com/upx/upx/issues/256
2019-03-31 10:25:06 -07:00
John Reiser
47ddace96a
Cleanup legacy symbols: basename, index
...
modified: conf.h
https://github.com/upx/upx/issues/257
2019-03-31 10:12:41 -07:00
John Reiser
8aadbcd786
Enable standalone compiling, to investigate size of compiled code
...
modified: stub/src/arch/arm64/v8/lzma_d-arm.S
modified: stub/src/arch/arm64/v8/lzma_d.S
modified: stub/src/arch/arm64/v8/nrv2b_d32.S
modified: stub/src/arch/arm64/v8/nrv2d_d32.S
modified: stub/src/arch/arm64/v8/nrv2e_d32.S
2019-03-03 14:27:33 -08:00
John Reiser
517bc9db0b
PR_SET_MM (previous commit had typo) is from 7 years ago: 2012
...
modified: stub/src/include/linux.h
2019-03-03 14:26:20 -08:00
John Reiser
16bfa7b846
PT_SET_MM since 2012
...
modified: stub/src/include/linux.h
2019-03-02 16:12:14 -08:00
John Reiser
2653a0749a
de-tabify
...
modified: stub/src/arch/i386/bxx.S
2019-03-02 15:48:44 -08:00
John Reiser
3de0008543
i386-darwin.macho re-implementation, especially for MacOS <= 10.8.x (Mountain Lion)
...
[i386 will not be supported by new MacOS beginning fall 2019.]
https://github.com/upx/upx/issues/246
modified: p_mach.cpp
modified: stub/i386-darwin.macho-entry.h
modified: stub/i386-darwin.macho-fold.h
modified: stub/i386-darwin.macho-upxmain.exe
modified: stub/i386-darwin.macho-upxmain.h
new file: stub/src/arch/i386/bxx.S
new file: stub/src/arch/i386/nrv2b_d32-easy.S
new file: stub/src/arch/i386/nrv2d_d32-easy.S
new file: stub/src/arch/i386/nrv2e_d32-easy.S
modified: stub/src/i386-darwin.macho-entry.S
modified: stub/src/i386-darwin.macho-fold.S
modified: stub/src/i386-darwin.macho-main.c
modified: stub/src/i386-darwin.macho-upxmain.c
modified: stub/tmp/i386-darwin.macho-entry.bin.dump
modified: stub/tmp/i386-darwin.macho-fold.map
2019-03-02 15:39:30 -08:00
John Reiser
d4e2d7e8a8
arm64 (aarch64) and PAGE_SIZE > 4KiB
...
Future: use prctl(PR_SET_MM, PR_SET_MM_START_BRK, addr)
https://github.com/upx/upx/issues/254
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-main.c
2019-03-01 20:31:41 -08:00
John Reiser
a9c08c6f52
__MSYS2__ acts like UNIX but cannot handle --x permission
...
https://github.com/upx/upx/issues/256
modified: p_unix.cpp
2019-03-01 16:46:49 -08:00
Markus F.X.J. Oberhumer
c2aa5c35f7
Silence a gcc-4.6 compiler warning.
2019-02-25 13:41:54 +01:00
John Reiser
423f1a8758
pack4() "__TEXT".nsects can differ from prototype to actual
...
modified: p_mach.cpp
2019-02-18 14:41:43 -08:00
Markus F.X.J. Oberhumer
b6646d319a
Bump tentative release date.
2019-02-15 11:12:07 +01:00
Markus F.X.J. Oberhumer
3667fa4e44
Welcome 2019.
2019-02-15 11:04:09 +01:00
John Reiser
d1c80154f6
SHT_NOTE with ~SHF_ALLOC; as for 'gold' linker version
...
https://github.com/upx/upx/issues/243
modified: p_lx_elf.cpp
2019-02-12 21:13:24 -08:00
John Reiser
3c2bfc742e
g++ -Wsign-compare is not as picky as MSVC warning C4018: '<': signed/unsigned mismatch
...
https://github.com/upx/upx/issues/247
modified: p_lx_elf.cpp
2019-02-09 08:04:58 -08:00
John Reiser
d60fef753f
check_pt_load(); u32_t, u64_t; (off_t) is not unsigned!
...
https://github.com/upx/upx/issues/247
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2019-02-01 19:31:57 -08:00
John Reiser
70ed2d0d03
Allow Load Configuration directory > 256, with info().
...
https://github.com/upx/upx/issues/245
modified: pefile.cpp
2019-01-26 07:51:16 -08:00
John Reiser
9719a7dd56
MSVC pettiness
...
https://github.com/upx/upx/issues/238
modified: p_lx_elf.cpp
2018-12-26 18:38:30 -08:00
John Reiser
c097233bf3
Stronger checks for DT_HASH, DT_GNU_HASH
...
https://github.com/upx/upx/issues/238
modified: p_lx_elf.cpp
2018-12-26 13:00:20 -08:00
John Reiser
69a583281f
MemBuffer::subref() for 64-bit offsets; better diagnosis for bad .e_shoff
...
https://github.com/upx/upx/issues/235 (POC14)
modified: mem.cpp
modified: mem.h
modified: p_lx_elf.cpp
2018-12-16 16:00:15 -08:00
John Reiser
8e90c9af2b
Corner cases for e_shnum vs e_shstrndx
...
modified: p_lx_elf.cpp
2018-12-16 15:36:51 -08:00
John Reiser
a784284b7f
Check user_init_off. Also remove '\n' from error messages.
...
https://github.com/upx/upx/issues/235 POC11
modified: p_lx_elf.cpp
2018-12-16 12:14:22 -08:00
John Reiser
0509edf08d
ElfXX_Sym.st_name is always 32 bits
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2018-12-16 11:32:58 -08:00
John Reiser
7ca20f424f
Typos
...
modified: p_lx_elf.cpp
2018-12-15 21:17:26 -08:00
John Reiser
b74d51c2a8
More checking of e_shstrndx
...
https://github.com/upx/upx/issues/235 POC6
modified: p_lx_elf.cpp
2018-12-15 21:12:15 -08:00
John Reiser
58061cd121
Check .p_offset
...
https://github.com/upx/upx/issues/235 POC13
modified: p_lx_elf.cpp
2018-12-15 20:59:45 -08:00
John Reiser
b8f6be5389
More checking of DT_HASH and DT_GNU_HASH
...
https://github.com/upx/upx/issues/235 POC12
modified: p_lx_elf.cpp
2018-12-15 20:43:33 -08:00
John Reiser
7c766b3313
Check e_shstrndx and Shdr.st_name
...
https://github.com/upx/upx/issues/235 POC10
modified: p_lx_elf.cpp
2018-12-15 20:27:20 -08:00
John Reiser
91b81b587b
Abandon when outrageous Elf64_Dyn.d_tag
...
https://github.com/upx/upx/issues/235 POC8
modified: p_lx_elf.cpp
2018-12-15 19:35:13 -08:00
John Reiser
780a4347b8
Check DT_HASH and DT_GNU_HASH.
...
https://github.com/upx/upx/issues/235 POC2,POC4
Also cleanup checking of symbol number and .st_name
in POC1,POC3,POC5,POC7,POC9,POC11
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2018-12-15 19:16:14 -08:00
John Reiser
606ad08dd1
Check symbol number and .st_name
...
https://github.com/upx/upx/issues/235 POC1,POC3,POC7,POC9
modified: p_elf_enum.h
modified: p_lx_elf.h
modified: p_lx_elf.cpp
2018-12-14 21:32:49 -08:00
John Reiser
75c31dff1d
Use THUMB 'ret' when in THUMB mode.
...
https://github.com/upx/upx/issues/236
https://github.com/upx/upx/issues/229
modified: src/arm.v4t-linux.shlib-init.S
modified: arm.v5t-linux.shlib-init.h
modified: tmp/arm.v5t-linux.shlib-init.bin.dump
2018-12-13 20:14:14 -08:00
John Reiser
473b90419f
Mach-o for 'rust' has intermixed LC_SEGMENT64 "__DWARF" with 0==.vmsize
...
https://github.com/upx/upx/issues/222
modified: p_mach.cpp
modified: stub/src/amd64-darwin.macho-main.c
modified: stub/src/amd64-darwin.macho-upxmain.c
also *-darwin.macho-fold.{h,map}
2018-10-13 21:06:37 -07:00
John Reiser
f88b85e126
MSVC error C4146: unary minus operator applied to unsigned type, result still unsigned
...
modified: p_lx_elf.cpp
2018-10-09 20:27:19 -07:00
John Reiser
b122f8e9d0
Optimize /proc/self/exe. Sync stubs.
...
See also commit 78b1da5c00 earlier today
for https://github.com/upx/upx/issues/225 .
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
also *.h, *.map, *.bin.dump
2018-10-09 20:11:34 -07:00
John Reiser
cb8b1595a1
Pay more attention to 0==.e_shnum
...
modified: p_lx_elf.cpp
2018-10-09 19:38:43 -07:00
John Reiser
1bee919276
cosmetic: developer quality-of-life
...
modified: packer.cpp
2018-10-09 19:35:03 -07:00
John Reiser
78b1da5c00
Avoid dcache==>icache trouble with mflg_data; heuristic cache_flush for 32-bit ARM
...
modified: arm.v4a-linux.elf-entry.S
modified: arm.v4a-linux.elf-fold.S
2018-10-09 19:24:50 -07:00
John Reiser
bb8239ccda
more DPRINTF
...
modified: amd64-linux.elf-main.c
2018-10-09 19:23:06 -07:00
John Reiser
2a594ad0a7
Better return value when de-compression method mismatches.
...
modified: arch/amd64/lzma_d.S
modified: arch/amd64/nrv2b_d.S
modified: arch/amd64/nrv2d_d.S
modified: arch/amd64/nrv2e_d.S
2018-10-07 10:15:48 -07:00
John Reiser
b05073550c
"pop %rcx", not %ecx
...
modified: amd64-darwin.macho-entry.S
modified: amd64-linux.elf-entry.S
2018-10-07 10:11:45 -07:00
John Reiser
37d6a34e58
MSVC is a nimrod. (All verions 10.0 through 14.1)
...
"(4074): error C4146: unary minus operator applied to unsigned type, result still unsigned"
So what? Many programmers are much better than the typical Microsoft coder.
The C standard GUARANTEES that unsigned arithmetic uses two's complement,
ignores overflow, and the result is what the hardware adder produces.
modified: p_lx_elf.cpp
2018-09-23 20:45:07 -07:00
John Reiser
4f0cba9bb6
/proc/self/exe mapping had wrong offset in stub for 32-bit ARM
...
https://github.com/upx/upx/issues/221
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
also arm*.*-linux.elf-*.{h,map}
2018-09-23 20:32:37 -07:00
John Reiser
4d1c754af9
Preserve Mach_segment_header.flags; fix non-PIE main programs on MacOS.
...
https://github.com/upx/upx/issues/222
modified: p_mach.cpp
modified: p_mach.h
modified: stub/src/amd64-darwin.macho-entry.S
also *.macho-*.h, *.macho-fold.map, amd64-darwin.macho-entry.bin.dump
2018-09-22 18:50:37 -07:00
John Reiser
c1cfde21d7
Map when .vmsize (not .filesize). More debugging DPRINTF;
...
modified: stub/src/amd64-darwin.macho-main.c
also *.macho-fold.h, *.macho-fold.map
2018-09-22 13:06:45 -07:00
John Reiser
bb1f9cdecd
Propagate pagezero_vmsize; fix overlay_offset.
...
modified: p_mach.cpp
2018-09-22 12:11:51 -07:00
John Reiser
b259b0ca28
Print failed syscalls to stderr
...
modified: stub/src/amd64-darwin.macho-fold.S
2018-09-22 12:09:22 -07:00
John Reiser
0051dfc84f
--android-shlib: Relocate ABS _edata etc.
...
https://github.com/upx/upx/issues/220
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2018-09-16 15:10:40 -07:00
John Reiser
9f294e6ce5
Fix "upx -d" de-compression when input is compressed Android shlib.
...
https://github.com/upx/upx/issues/220
modified: p_lx_elf.cpp
2018-09-16 13:09:43 -07:00
John Reiser
153ea8be03
MSVC signed/unsigned
...
modified: p_mach.cpp
2018-09-11 21:13:27 -07:00
John Reiser
f3f7f97f8d
MSVC signed/unsigned
...
modified: p_mach.cpp
2018-09-09 15:58:24 -07:00
John Reiser
9bb6854e64
Fix stub for MacOS El Capitan, which has "pre-linked" /usr/bin/dyld
...
https://github.com/upx/upx/issues/218
https://github.com/Homebrew/homebrew-core/pull/31846
modified: src/amd64-darwin.macho-main.c
also *-darwin.mach-fold.{h,map}
2018-09-09 15:37:54 -07:00
John Reiser
597e8fe407
Fix de-compression for Mach-O files (MacOS)
...
https://github.com/upx/upx/issues/219
modified: p_mach.cpp
modified: p_mach.h
2018-09-08 11:41:38 -07:00
John Reiser
0dac6b7be3
MacOS de-compression (upx -d)
...
https://github.com/upx/upx/issues/218
modified: p_mach.cpp
2018-09-04 20:52:17 -07:00
Markus F.X.J. Oberhumer
2fcc3f86c0
Introduce environment variable UPX_DISABLE_GITREV_WARNING.
2018-08-26 06:29:58 +02:00
Markus F.X.J. Oberhumer
56f4d781c1
Post-release version bump.
2018-08-26 06:08:40 +02:00
John Reiser
2923c0968e
Merge branch 'devel' of https://github.com/upx/upx into devel
...
Fix Conflicts:
.github/travis_testsuite_1.sh
2018-08-22 14:58:36 -07:00
John Reiser
bdd97fe0b2
build stubs
...
modified: amd64-linux.elf-fold.h
modified: arm64-linux.elf-fold.h
modified: i386-bsd.elf-fold.h
modified: i386-linux.elf.interp-fold.h
modified: i386-netbsd.elf-fold.h
modified: i386-openbsd.elf-fold.h
modified: powerpc64-linux.elf-fold.h
modified: powerpc64le-linux.elf-fold.h
modified: tmp/amd64-linux.elf-fold.map
modified: tmp/arm64-linux.elf-fold.map
modified: tmp/i386-bsd.elf-fold.map
modified: tmp/i386-linux.elf.interp-fold.map
modified: tmp/i386-netbsd.elf-fold.map
modified: tmp/i386-openbsd.elf-fold.map
modified: tmp/powerpc64-linux.elf-fold.map
modified: tmp/powerpc64le-linux.elf-fold.map
2018-08-22 14:48:15 -07:00
John Reiser
6b500bc83b
auxv_up() quit at AT_NULL, especially when AT_BASE has been omitted.
...
Based on contribution from Brian Geffon 'bgaff'
https://github.com/upx/upx/pull/215 ; bgaff
modified: amd64-linux.elf-main.c
modified: i386-bsd.elf-main.c
modified: i386-linux.elf.interp-main.c
modified: i386-openbsd.elf-main.c
2018-08-22 14:39:14 -07:00
Markus F.X.J. Oberhumer
04d79040f9
Bump tentative release date.
2018-08-22 13:15:50 +02:00
Markus F.X.J. Oberhumer
2f06de54c5
Cosmetic update.
2018-08-22 12:43:23 +02:00
John Reiser
6489ec9bba
Fix PT_LOAD for ELF shared library.
...
modified: p_lx_elf.cpp
2018-08-20 19:36:27 -07:00
John Reiser
8f9713ed53
Appease MSVC warning C4018: s/igned/unsigned mismatch
...
modified: p_lx_elf.cpp
2018-08-13 18:47:42 -07:00
John Reiser
90eb68b3b9
Adapt to 4 PT_LOAD in binutils-2.31 and gcc-8.2.1 (Fedora 29)
...
0: PF_R: .gnu.hash .dynsym .dynstr
1: PF_X | PF_R: .plt .plt.sec .text
2: PF_R: .rodata .hash
3: PF_W | PF_R: .data.rel.ro .dynamic .got .got.plt .data .bss
modified: p_lx_elf.cpp
https://github.com/upx/upx/issues/212 (partial, Fedora 29)
2018-08-13 17:36:56 -07:00
John Reiser
95fcbcb4f2
::PackLinuxElf64amd() sets lg2_page back to 12.
...
https://github.com/upx/upx/issues/212 (partial, Fedora 29)
modified: p_lx_elf.cpp
2018-08-10 20:28:40 -07:00
John Reiser
b97688d119
Stub updates AT_PHDR for 32-bit libmusl, particularly -fPIE
...
https://github.com/upx/upx/issues/200
modified: stub/src/i386-linux.elf-main.c
also *.elf-fold.h, *.elf-fold.map for arm, armeb, i386, mips, mipsel, powerpc
modified: ../.github/travis_testsuite_1.sh
2018-08-04 18:26:02 -07:00
John Reiser
d9288213ec
More checking of PT_DYNAMIC and its contents.
...
https://github.com/upx/upx/issues/206
modified: p_lx_elf.cpp
2018-05-17 21:48:26 -07:00
John Reiser
614c86fb7d
--force-pie inhibits treating as shared library (for 'rust', etc.)
...
https://github.com/upx/upx/issues/200
modified: main.cpp
modified: options.h
modified: p_lx_elf.cpp
2018-04-26 13:44:17 -07:00
John Reiser
9f651ee40f
Ignore ElfXX_Shdr if not CMD_COMPRESS; beware unpack when PT_DYNAMIC in other PT_LOAD
...
https://github.com/upx/upx/issues/200
modified: p_lx_elf.cpp
2018-04-26 08:34:58 -07:00
John Reiser
774c8c3fd4
Fix forgotten get_teXX() in canPack() and invert_pt_dynamic()
...
https://github.com/upx/upx/issues/200
modified: p_lx_elf.cpp
2018-04-25 23:05:17 -07:00
John Reiser
b711d2f750
TLS callbacks: one entry only
...
https://github.com/upx/upx/issues/186 [partial, incomplete]
(Laszlo hints there is more, but meanwhile this does fix some.)
modified: pefile.cpp
2018-04-06 13:44:24 -07:00
John Reiser
8a793d5942
ELF shlib when no DT_INIT (especially --android-shlib)
...
https://github.com/upx/upx/issues/191
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2018-04-04 09:15:18 -07:00
Mattiwatti
2c2e108301
PE: fix comparison against a constant value
...
... due to size always being assigned to right before this comparison,
and instead check against the RVA and size of the export directory
from the header. (note: this is still stricter than the Windows loader
which ignores all of these except the directory RVA, but if the name RVA
is invalid the PE was probably tampered with).
Change 'offset' to 'RVA' in exception message; this field is always an RVA
Author: Mattiwatti <mattiwatti@gmail.com>
modified: pefile.cpp
2018-04-02 09:07:29 -07:00
John Reiser
563165e6ae
Defensive patches from hints by Sean Williams <rootkit@google.com>
...
modified: pefile.cpp
2018-03-29 16:55:21 -07:00
John Reiser
f1a31b4793
ELf32::unpack; Elf64 parity with Elf32 for shlib with no DT_INIT
...
https://github.com/upx/upx/issues/191 [partial, not finished]
modified: p_lx_elf.cpp
2018-03-27 19:15:47 -07:00
John Reiser
5e9b6bd69d
more ELF shlib when no DT_INIT (especially Android): hook DT_INIT_ARRAY[0]
...
https://github.com/upx/upx/issues/191 [partial, not finished]
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: stub/src/arm.v4a-linux.shlib-init.S
modified: stub/src/arm.v4t-linux.shlib-init.S
2018-03-26 16:30:52 -07:00
John Reiser
9b990c4eae
clarity
...
modified: p_lx_elf.cpp
2018-03-24 13:52:29 -07:00
John Reiser
7a625a449a
ELF shlib without DT_INIT: steal a DT_NULL from PT_DYNAMIC
...
https://github.com/upx/upx/issues/191 [partial, not finished]
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2018-03-24 09:41:58 -07:00
John Reiser
c2b62359d5
arm32 stubs on linux: allow 0==user_DT_INIT as nop; somewhat expensive
...
modified: stub/arm.v5a-linux.shlib-init.h
modified: stub/arm.v5t-linux.shlib-init.h
modified: stub/src/arm.v4a-linux.shlib-init.S
modified: stub/src/arm.v4t-linux.shlib-init.S
modified: stub/tmp/arm.v5a-linux.shlib-init.bin.dump
modified: stub/tmp/arm.v5t-linux.shlib-init.bin.dump
2018-03-24 08:55:04 -07:00
John Reiser
6722e8972e
cleanup dead variables: is_big, all_pages
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2018-03-23 08:06:31 -07:00
John Reiser
fefe7a3452
Fix segTEXT.vmsize and data for entry to shlib.
...
https://github.com/upx/upx/issues/57
modified: p_mach.cpp
2018-03-19 14:59:20 -07:00
John Reiser
90a1322929
Also check for wrap-around when checking oversize involving e_shoff and e_shnum.
...
raised by https://github.com/upx/upx/pull/190
modified: p_lx_elf.cpp
2018-03-15 21:25:20 -07:00
John Reiser
d698eb69e2
Fix decompression stub for arm64 --lzma
...
https://github.com/upx/upx/issues/181
modified: stub/src/arch/arm64/v8/lzma_d.S
2018-02-24 13:04:15 -08:00
John Reiser
0ef00e9b82
Fix --lzma (and so --ultra-brute) for 32-bit ARM
...
https://github.com/upx/upx/issues/167 (comment #14 )
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: ../.github/travis_testsuite_1.sh
2018-02-03 15:44:00 -08:00
John Reiser
95cedb6640
upgrade ::unpack for --android-shlib
...
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: stub/src/arm64-linux.shlib-init.S
modified: stub/src/arm.v4t-linux.shlib-init.S
2018-02-02 14:50:56 -08:00
John Reiser
d736da4208
Elf32, not shared lib: leave alone the hole between .text and .data
...
In theory Linux might put pages there (and that would be a problem),
but postpone closing the gap until more experience.
modified: p_lx_elf.cpp
2018-01-28 13:30:10 -08:00
John Reiser
be83788666
--android-shlib for 32-bit ARM
...
Includes better handling of asl_delta in execution stub.
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: stub/src/arm.v4t-linux.shlib-init.S
modified: stub/src/arm64-linux.shlib-init.S
2018-01-27 22:00:16 -08:00
John Reiser
5a28a51abc
android shlib: better handling of asl_delta in execution stub
...
modified: p_lx_elf.cpp
modified: stub/src/arm64-linux.shlib-init.S
2018-01-26 12:35:06 -08:00
John Reiser
8a84df752c
Compiler nit: ptr->ENUM is not always considered a constant
...
modified: p_lx_elf.cpp
2018-01-26 11:54:33 -08:00
John Reiser
85f53b210d
de-compression of arm64 --android-shlib
...
modified: src/p_lx_elf.cpp
modified: src/p_lx_elf.h
modified: src/stub/src/arm64-linux.shlib-init.S
2018-01-24 15:39:46 -08:00
John Reiser
5d13c6cd01
elfout is unset for shlib in PackLinuxElf64::updateLoader
...
modified: p_lx_elf.cpp
2018-01-22 16:15:53 -08:00
John Reiser
e1d20fd0b5
Fix wobble in PackLinuxElf64::pack2
...
modified: p_lx_elf.cpp
2018-01-22 13:48:26 -08:00
John Reiser
d1035ecd8f
Fix PLT for --android-shlib
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2018-01-22 13:05:18 -08:00
John Reiser
e4b23f7a47
Merge branch 'devel' of https://github.com/upx/upx into devel
2018-01-21 10:30:42 -08:00
John Reiser
f056ecdcd5
pefile: Allow overlap of MZ header and PE header (h.nexepos==0x10)
...
https://github.com/upx/upx/issues/169
This means .codebase is aliased to .nexepos, with both equal to 0x10.
modified: pefile.cpp
2018-01-21 10:29:17 -08:00
Markus F.X.J. Oberhumer
f747435952
For consistency, add missing "virtual".
2018-01-19 20:21:18 +01:00
Markus F.X.J. Oberhumer
e6edad8f46
Clean up OptVar handling.
2018-01-19 19:50:28 +01:00
Markus F.X.J. Oberhumer
05e44b9644
Fix powerpc64 cross build.
2018-01-19 15:05:43 +01:00
Markus F.X.J. Oberhumer
16bb7ab841
clang-format files.
2018-01-19 14:18:47 +01:00
Markus F.X.J. Oberhumer
9248f02557
Silence some gcc-8-snapshot compiler warnings.
2018-01-19 14:13:58 +01:00
Markus F.X.J. Oberhumer
021c8db58a
Welcome 2018.
2018-01-19 10:55:32 +01:00
John Reiser
8ab180edf8
MS-DOS .exe (not PE): default to file_size when ih.m512 and ih.p512 are zero
...
https://github.com/upx/upx/issues/169
modified: p_exe.cpp
2018-01-18 12:00:38 -08:00
John Reiser
ab35b685d4
Fix pefile.cpp bad range checking for reloc type 3 and 10
...
modified: pefile.cpp
2018-01-18 11:11:19 -08:00
John Reiser
86745721ee
MSVC strikes again
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2018-01-15 16:27:00 -08:00
John Reiser
c34fe09a79
Revamp --android-shlib
...
Android "Oreo" wants to deal with ElfXX_Shdr[]. So splice 4KiB into PT_LOAD[0]
with an "extra" copy of them. This requires careful relocation processing.
It also costs a page at run time, and an average of a page in the file
(depending on fragmentation at the boundary between r-x and rw- .)
https://github.com/upx/upx/issues/124
https://github.com/upx/upx/issues/139
https://github.com/upx/upx/issues/142
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: stub/src/arm.v4a-linux.shlib-init.S
modified: stub/src/arm.v4t-linux.shlib-init.S
modified: stub/src/arm64-linux.shlib-init.S
modified: stub/arm.v5a-linux.shlib-init.h
modified: stub/arm.v5t-linux.shlib-init.h
modified: stub/arm64-linux.shlib-init.h
modified: ../.github/travis_testsuite_1.sh
2018-01-15 16:08:34 -08:00
John Reiser
f3a7620ae8
ARM: recognize R_ARM_CALL and R_ARM_JUMP24 as equivalent to R_ARM_PC24
...
modified: linker.cpp
2018-01-12 08:42:34 -08:00
Markus F.X.J. Oberhumer
900926c0ed
Avoid a MSVC warning.
2018-01-12 10:19:14 +01:00
John Reiser
df94f4288a
picky, picky
...
modified: p_lx_elf.cpp
2018-01-11 12:09:43 -08:00
John Reiser
969efe687d
MSVC pecadillos
...
modified: p_lx_elf.cpp
modified: pefile.cpp
2018-01-11 12:01:00 -08:00
John Reiser
ee3f1292d0
fix editing rot for mach-o .dylib
...
https://github.com/upx/upx/issues/57
modified: p_mach.cpp
2018-01-11 11:33:15 -08:00
John Reiser
4854c03096
uint64_t ==> upx_uint64_t
...
MSVC error C2065: 'uint64_t' : undeclared identifier
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_mach.cpp
2018-01-06 09:33:04 -08:00
John Reiser
e853119c77
canonicalize bool in OR
...
MSVC error C4805: '|' : unsafe mix of type 'bool' and type 'unsigned int' in operation
modified: p_lx_elf.cpp
2018-01-06 09:20:46 -08:00
John Reiser
edde6210f1
amd64 linux stack align
...
forgotten as part of 4a35bf32ea
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/amd64-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-fold.map
modified: ../.github/travis_testsuite_1.sh
2017-12-31 10:36:14 -08:00
John Reiser
507e19945e
more checking of PT_DYNAMIC
...
https://github.com/upx/upx/issues/166
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2017-12-30 22:31:50 -08:00
John Reiser
4a35bf32ea
static uClibc on amd64 passes entry.%rdx to 'atexit'
...
https://github.com/upx/upx/issues/166
modified: ../.github/travis_testsuite_1.sh
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/amd64-linux.elf-main.c
2017-12-30 17:20:01 -08:00
John Reiser
e04bf9e4bc
more checking of PT_DYNAMIC
...
https://github.com/upx/upx/issues/164
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2017-12-28 17:40:04 -08:00
John Reiser
c384d224c0
Mach-o stubs turn off DEBUG
...
Branch jreiser-macho has DEBUG 1
modified: stub/src/amd64-darwin.macho-main.c
modified: stub/src/arm.v5a-darwin.macho-entry.S
modified: stub/src/arm.v5a-darwin.macho-fold.S
modified: stub/src/arm64-darwin.macho-entry.S
modified: stub/src/arm64-darwin.macho-fold.S
2017-12-27 10:23:19 -08:00
John Reiser
35427f998e
Mach-o stubs turn off SIMULATE_ON_LINUX_EABI4
...
modified: stub/src/amd64-darwin.macho-main.c
modified: stub/src/arm.v5a-darwin.macho-entry.S
modified: stub/src/arm.v5a-darwin.macho-fold.S
modified: stub/src/arm64-darwin.macho-entry.S
modified: stub/src/arm64-darwin.macho-fold.S
2017-12-27 09:12:38 -08:00
John Reiser
1174da2bc3
arm64 stubs use NBPW in TRACE etc
...
modified: stub/src/arm64-darwin.macho-entry.S
modified: stub/src/arm64-darwin.macho-fold.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/arm64-linux.shlib-init.S
2017-12-26 16:39:51 -08:00
John Reiser
11e8a47030
DEBUG and TRACE for arm*-darwin.macho-* stubs
...
modified: stub/src/amd64-darwin.macho-main.c
modified: stub/src/arm.v5a-darwin.macho-entry.S
modified: stub/src/arm.v5a-darwin.macho-fold.S
modified: stub/src/arm64-darwin.macho-entry.S
modified: stub/src/arm64-darwin.macho-fold.S
2017-12-26 15:44:54 -08:00
John Reiser
8c4e9bcf0d
typo
...
modified: stub/src/arm.v4a-linux.elf-entry.S
2017-12-26 15:43:58 -08:00
John Reiser
9dfd624901
fix TRACE macro
...
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
2017-12-26 15:43:01 -08:00
John Reiser
79e65503a9
Merge branch 'devel' into jreiser-macho
2017-12-26 10:41:26 -08:00
John Reiser
59f18b9d9f
stash work-in-progress
...
modified: stub/src/amd64-darwin.macho-main.c
modified: stub/src/arm.v5a-darwin.macho-entry.S
modified: stub/src/arm.v5a-darwin.macho-fold.S
modified: stub/src/arm64-darwin.macho-entry.S
modified: stub/src/arm64-darwin.macho-fold.S
2017-12-22 23:07:03 -08:00
John Reiser
fb3699fb89
stash work-in-progress
...
modified: stub/src/amd64-darwin.macho-main.c
modified: stub/src/amd64-darwin.macho-upxmain.c
modified: stub/src/arm.v5a-darwin.macho-entry.S
modified: stub/src/arm.v5a-darwin.macho-fold.S
modified: stub/src/arm.v5a-darwin.macho-main.c
modified: stub/src/arm64-darwin.macho-entry.S
modified: stub/src/arm64-darwin.macho-fold.S
modified: stub/src/i386-darwin.macho-upxmain.c
2017-12-22 10:20:32 -08:00
John Reiser
9d2d59b5d2
stash work-in-progress
...
modified: stub/src/amd64-darwin.macho-main.c
modified: stub/src/arm64-darwin.macho-fold.S
2017-12-19 21:19:53 -08:00
John Reiser
aefb2fa3c3
bad logic for throwCantUnpack("cmdsize") [simple]
...
https://github.com/upx/upx/issues/161
modified: p_mach.cpp
2017-12-19 17:36:22 -08:00
John Reiser
e8aa80f904
stash work-in-progress
...
modified: linker.cpp
modified: p_mach.cpp
modified: p_mach.h
modified: packmast.cpp
modified: stub/Makefile
modified: stub/src/amd64-darwin.macho-main.c
modified: stub/src/arm.v5a-darwin.macho-entry.S
modified: stub/src/arm64-darwin.macho-entry.S
modified: stub/src/arm64-darwin.macho-fold.S
modified: stub/src/arm64-darwin.macho-main.c
2017-12-19 17:32:15 -08:00