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
John Reiser
990988f920
More checking of input Phdr and Shdr
...
https://github.com/upx/upx/issues/157
modified: p_lx_elf.cpp
2017-12-18 10:36:43 -08:00
John Reiser
576d9a4e7e
stash work-in-progress
...
modified: stub/src/amd64-darwin.macho-entry.S
modified: stub/src/arm.v5a-darwin.macho-entry.S
modified: stub/src/arm64-darwin.macho-entry.S
2017-12-17 15:02:57 -08:00
John Reiser
1d462ee424
MIPS shlib --lzma stub coding error: wrong register
...
https://github.com/upx/upx/issues/139 (part2)
modified: stub/src/mipsel.r3000-linux.shlib-init.S
2017-12-14 11:17:01 -08:00
John Reiser
c9b09555c4
MH_PIE ASLR (Address-Space Layout Randomization)
...
modified: stub/src/amd64-darwin.macho-main.c
2017-12-13 11:15:10 -08:00
John Reiser
860b5bf967
MH_EXECUTE diagnose syscall failure
...
modified: stub/src/amd64-darwin.macho-fold.S
2017-12-13 10:53:22 -08:00
John Reiser
5063480a38
MH_EXECUTE runs under lldb, fails under shell
...
mmap addr=0x100000000 len=0x3003 prot=0x3 flags=0x1012 fd=-1 off=0x0 reloc=0x0
maddr=0xffffffffffffffff addr=0x100000000
modified: p_mach.cpp
modified: p_mach_enum.h
modified: stub/src/amd64-darwin.macho-entry.S
modified: stub/src/amd64-darwin.macho-fold.S
modified: stub/src/amd64-darwin.macho-main.c
2017-12-13 09:54:44 -08:00
John Reiser
3400ae9dbe
MH_EXECUTE leave space for thread state command
...
modified: p_mach.cpp
2017-12-12 10:53:19 -08:00
John Reiser
3385264eb2
new DPRINTF
...
modified: stub/src/amd64-darwin.macho-main.c
2017-12-12 10:52:47 -08:00
John Reiser
34646f1c6a
fix braces in comment after #elif
...
modified: stub/src/amd64-linux.elf-main.c
2017-12-12 10:51:38 -08:00
John Reiser
50aa63a5a0
declare write()
...
modified: stub/src/include/darwin.h
2017-12-12 10:50:50 -08:00
John Reiser
64557bee43
Mach-o MH_EXECUTE rewrite; work-in-progress
...
The stub for amd64 gets to upx_main()
modified: stub/src/amd64-darwin.macho-entry.S
modified: stub/src/amd64-darwin.macho-fold.S
plus .h .bin.dump .map
2017-12-09 20:18:39 -08:00
John Reiser
7c21c4513e
Android 64-bit ARM shared library stub: use 4Ki page size until more is known
...
https://github.com/upx/upx/issues/124
modified: p_lx_elf.cpp
modified: stub/arm64-linux.shlib-init.h
modified: stub/src/arm64-linux.shlib-init.S
modified: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-12-08 20:05:21 -08:00
John Reiser
c6d6378005
Mach-o MH_EXECUTE rewrite; work-in-progress
...
The stub for amd64 gets into the de-compressed folded code.
modified: p_mach.cpp
modified: stub/amd64-darwin.macho-entry.h
modified: stub/src/amd64-darwin.macho-entry.S
modified: stub/src/amd64-darwin.macho-upxmain.c
modified: stub/tmp/amd64-darwin.macho-entry.bin.dump
2017-12-06 17:04:47 -08:00
John Reiser
4f6979967d
Mach-o MH_EXECUTE rewrite; work-in-progress
...
On amd64, otool and lldb accept the results.
The entry point points to the unfilter and uncompress routines.
Somehow _start has been lost.
modified: p_mach.cpp
modified: p_mach.h
modified: p_mach_enum.h
modified: stub/amd64-darwin.macho-entry.h
modified: stub/src/amd64-darwin.macho-entry.S
modified: stub/src/amd64-darwin.macho-upxmain.c
modified: stub/src/i386-darwin.macho-upxmain.c
modified: stub/src/powerpc-darwin.macho-upxmain.c
modified: stub/tmp/amd64-darwin.macho-entry.bin.dump
2017-12-03 23:17:55 -08:00
John Reiser
e633c51b50
off_t_upx_stub typedef enables easier use of native #include
...
... but requires #define __WORDSIZE
modified: p_mach.h
modified: stub/amd64-darwin.macho-fold.h
modified: stub/src/amd64-darwin.macho-main.c
modified: stub/src/arm.v5a-darwin.macho-main.c
modified: stub/src/arm64-darwin.macho-main.c
modified: stub/src/i386-darwin.macho-main.c
modified: stub/src/include/darwin.h
modified: stub/src/powerpc-darwin.macho-main.c
modified: stub/src/powerpc64le-darwin.macho-main.c
modified: stub/tmp/amd64-darwin.macho-fold.map
2017-11-28 14:49:46 -08:00
John Reiser
143f0accef
PeFile check MZ offset to PE header
...
modified: pefile.cpp
2017-11-21 13:07:42 -08:00
John Reiser
b413f3da26
ELF shared library: PT_NOTE can prevent packing
...
Android build environment post-processing is adding a PT_NOTE
("Android", 21, "r16-beta1") at the high end of PT_LOAD[0],
above the stub; the runtime linker looks there before de-compression.
https://github.com/upx/upx/issues/124
modified: p_lx_elf.cpp
2017-11-20 10:08:24 -08:00
John Reiser
6eafa552bb
Mach-o defend against bad crafted input
...
https://github.com/upx/upx/issues/146
modified: p_mach.cpp
2017-11-15 13:38:54 -08:00
John Reiser
7a0514d9b4
PeFile more checks for Section table
...
modified: pefile.cpp
2017-11-12 21:47:47 -08:00
John Reiser
7e7565299e
PeFile check Section table
...
https://github.com/upx/upx/issues/132
modified: pefile.cpp
2017-11-12 21:02:52 -08:00
László Molnár
ed34a089c6
minor update for a memory derefencing check
2017-11-12 16:19:40 +01:00
John Reiser
d14a2c5282
PeFile fix the recently-added interval checking.
...
https://github.com/upx/upx/issues/143
modified: pefile.cpp
2017-11-09 21:58:25 -08:00
John Reiser
f014406b65
MemBuffer.subref(errfmt, skip, take) checks that a subinterval is inside
...
modified: mem.cpp
modified: mem.h
2017-11-09 21:55:41 -08:00
John Reiser
58771ecca6
PeFile: better checking for import descriptors
...
modified: pefile.cpp
2017-11-08 12:38:54 -08:00
John Reiser
5d9dcb634b
PeFile: Defend against bad crafted import descriptors
...
https://github.com/upx/upx/issues/143
modified: pefile.cpp
modified: pefile.h
2017-11-08 11:07:46 -08:00
John Reiser
19c2c1edcf
Android 8.0 (Oreo) wants 0!=.e_shstrndx in a shared library
...
https://github.com/upx/upx/issues/142
It should not matter what the .sh_name is; only the .sh_type matters.
modified: p_lx_elf.cpp
2017-11-07 11:12:23 -08:00
John Reiser
0430e7931e
PowerPC64 stub: on syscall, real Linux trashes r13 and below
...
(except r1, r2, and input args!) So, r12 .e_entry for musl
must copy from a saved register. [qemu-ppc64 doesn't trash registers!]
modified: ../.github/travis_testsuite_1.sh
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/powerpc64le-linux.elf-fold.S
also .h .fold.map
2017-10-27 20:07:32 -07:00
John Reiser
bb8e607442
PowerPC64 musl 1.1.16 wants r12= .e_entry
...
modified: stub/src/powerpc64le-linux.elf-fold.S
also .h .fold.map
2017-10-27 13:19:03 -07:00
John Reiser
e61ada944d
debug info for shared library on stderr under "-D"
...
modified: p_lx_elf.cpp
2017-10-25 21:32:17 -07:00
John Reiser
46730315e3
stub arm64-linux.shlib-init.S saves 1 instr and checks for assembly errors
...
modified: arm64-linux.shlib-init.S
also .h .bin.dump
2017-10-24 12:50:29 -07:00
John Reiser
4869142034
arm64 stub for shared library uses AT_PAGESZ
...
modified: stub/src/arm64-linux.shlib-init.S
also .h .bin.dump
2017-10-23 18:55:28 -07:00
John Reiser
8e42e17bbf
typo
...
modified: stub/src/amd64-linux.elf-entry.S
2017-10-23 18:53:42 -07:00
John Reiser
38c8b84a26
Align hatch_off.
...
modified: p_lx_elf.cpp
2017-10-20 17:23:55 -07:00
John Reiser
c652626a37
32-bit shared libs reduce Phdr[1].p_align to 4096, like 64-bit.
...
This saves space when PAGE_SIZE is larger than 4096: MIPS, etc.
modified: p_lx_elf.cpp
2017-10-20 16:35:27 -07:00
John Reiser
06f6e47ebf
Fix stub for MIPS shared libraries
...
https://github.com/upx/upx/issues/135
modified: p_lx_elf.cpp
modified: stub/src/mipsel.r3000-linux.shlib-init.S
also .h .bin.dump
2017-10-20 16:16:35 -07:00
John Reiser
403b180b1d
Compress shared libraries for mips and mipsel in ELF on Linux
...
modified: p_lx_elf.cpp
modified: stub/Makefile
new file: stub/mips.r3000-linux.shlib-init.h
new file: stub/mipsel.r3000-linux.shlib-init.h
new file: stub/src/mips.r3000-linux.shlib-init.S
new file: stub/src/mipsel.r3000-linux.shlib-init.S
new file: stub/tmp/mips.r3000-linux.shlib-init.bin.dump
new file: stub/tmp/mipsel.r3000-linux.shlib-init.bin.dump
2017-10-19 13:47:36 -07:00