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
John Reiser
ee008acfbd
amd64 implements --is_ptinterp
...
https://github.com/upx/upx/issues/121
modified: ../.github/travis_testsuite_1.sh
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
also .h, .map, .bin.dump
2017-10-18 13:10:49 -07:00
John Reiser
eafa136c69
Appease error C4146 unary minus operator applied to unsigned type, result still unsigned
...
Microsoft Optimizing Compiler 16.00.40219.01, 19.00.24215.1, 19.11.25507.1; others
modified: p_lx_elf.cpp
2017-10-17 08:44:08 -07:00
John Reiser
402c885987
Merge branch 'jreiser-elfstub' into devel
...
New stub strategy on Linux: Linux adds too many other segments
to the address space: [vdso], [sigpage], ...; and qemu might
arrange them differently. Thus the only reliable mappings
are the PT_LOAD of the compressed file itself; all other
address space is unknown! First, the compressed file uses
.bss to occupy all unused pages up to the original brk(0).
Then at run time, the stub gets another mapping of /proc/self/exe,
and uncompresses the user program on top of the original pages.
[*BSD unchanged for now?]
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/powerpc64le-darwin.macho-entry.S
modified: stub/src/powerpc64le-darwin.dylib-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-main.c
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/amd64-linux.elf-entry.S
modified: p_unix.cpp
modified: p_mach.cpp
modified: p_lx_sh.cpp
modified: p_lx_interp.cpp
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_lx_interp.h
modified: p_lx_sh.h
modified: p_mach.h
modified: p_unix.h
modified: stub/src/arch/mips/r3000/macros.ash
modified: stub/src/arch/powerpc/32/ppc_regs.h
modified: stub/src/arch/powerpc/64le/ppc_regs.h
modified: stub/src/include/linux.h
modified: stub/Makefile
modified: ../.github/travis_testsuite_1.sh
also .h .map .bin.dump
2017-10-14 14:26:11 -07:00
John Reiser
e0bc040b0a
mips stub uses new strategy
...
modified: p_lx_elf.cpp
modified: stub/src/arch/mips/r3000/macros.ash
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
also .h, .bin.dump, .map
2017-10-12 21:04:10 -07:00
John Reiser
1522293be0
arm64: stub uses new strategy
...
modified: p_lx_elf.cpp
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-main.c
also .h, .map, .bin.dump
2017-10-10 14:51:03 -07:00
John Reiser
b37bc99330
PowerPC64: stub uses new strategy
...
Needed: expert on TOC for big-endian. glibc, musl, gcc disagree
on layout (is the .func first?) and usage for .e_entry.
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/arch/powerpc/64le/ppc_regs.h
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64le-darwin.dylib-entry.S
modified: stub/src/powerpc64le-darwin.macho-entry.S
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/Makefile
also .h, .bin.dump, .map
2017-10-07 13:43:12 -07:00
John Reiser
7f905724b1
amd64: stub uses new strategy
...
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-fold.S
modified: p_lx_elf.cpp
also .h, .bin.dump, .map
2017-10-06 11:15:34 -07:00
John Reiser
2bf5bb1625
arm: stub uses new strategy
...
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: p_lx_elf.cpp
plus .h, .bin.dump, .map
2017-10-05 17:07:30 -07:00
John Reiser
7bace76176
Protect against bad crafted input.
...
https://github.com/upx/upx/issues/129
modified: p_lx_elf.cpp
2017-10-03 09:55:34 -07:00
John Reiser
ef336dbcc6
Protect against bad crafted input.
...
https://github.com/upx/upx/issues/128
modified: p_lx_elf.cpp
2017-10-02 21:47:40 -07:00
John Reiser
9e8de4abe5
i386: new stub strategy to avoid problems with early mmap layout
...
The stub occupies the same region that execve() would create
for the original progam. The stub copies everything to a new area,
erases the original region, replaces it with the de-compressed
program, and erases the copy of itself via the escape hatch.
The copy is inexpensive via mmap() of /proc/self/exe.
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: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_lx_interp.cpp
modified: p_lx_interp.h
modified: p_lx_sh.cpp
modified: p_lx_sh.h
modified: p_mach.cpp
modified: p_mach.h
modified: p_unix.cpp
modified: p_unix.h
modified: p_vmlinx.cpp
plus .h, .map, .dump
2017-10-01 15:56:34 -07:00
John Reiser
6470c748db
Flush ACC_UNUSED(adrc); and its predecessors from stub for MIPS.
...
modified: p_lx_elf.cpp
2017-09-24 20:07:31 -07:00
John Reiser
f4947cc2ae
Work-around Ubuntu runtime bug loading shlib on ARM.
...
Use --android-shlib to activate the work-around.
https://bugs.launchpad.net/bugs/1712938
https://github.com/upx/upx/issues/116
modified: p_elf_enum.h
modified: p_lx_elf.cpp
2017-08-24 19:52:30 -07:00
Markus F.X.J. Oberhumer
ef8a7f330d
Silence some compiler warnings.
2017-07-23 02:59:51 +02:00
Markus F.X.J. Oberhumer
b72e0f3060
Disable debugging section.
2017-07-23 02:59:51 +02:00
John Reiser
6de021d8d8
Fix MIPS, at least ET_EXEC.
...
ET_DYN not tested. Also /proc/self/exe is not proected [use getenv(" ")]
modified: p_lx_elf.cpp
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: ../.github/travis_testsuite_1.sh
also .h .dump .map for mips
2017-06-27 20:53:44 -07:00
John Reiser
9be86621bf
PowerPC64 unifies into amd64-linux.elf-main.c
...
Also reconcile ppc32 and ppc64, especially *.S
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-main.c
modified: ../.github/travis_testsuite_1.sh
also corresponding *.h *.map *.dump
2017-06-27 14:58:13 -07:00
John Reiser
8f572e5fe6
Rewrite stubs for 32-bit arm and i386 for -pie (Position-Independent Executable)
...
Coming next: MIPS and PowerPC.
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/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: ../.github/travis_testsuite_1.sh
also associated *.h *.map *.dump files
2017-06-14 09:57:19 -07:00
John Reiser
e7f1e99a5e
Merge branch 'jreiser' into devel
...
O_BINFO simplifies stubs on linux Elf;
PowerPC64 (big endian: Apple Macintosh G5) and PowerPC* cleanup;
-fpie simplification; shlib for arm64, amd64.
A big merge due to suspending activity on 'devel' branch
during stabilization for release of UPX-3.94.
There were intermediate merges with private branch 'jreiser',
and attempted rebase onto 'devel' did not go well.
Verfication of cases ({ET_EXEC, -fpie, shlib} x {$ARCH}) is in progress.
modified: ../.github/travis_testsuite_1.sh
modified: conf.h
modified: linker.cpp
modified: linker.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_mach.cpp
modified: p_mach.h
modified: p_mach_enum.h
modified: packmast.cpp
modified: stub/Makefile
modified: stub/scripts/xstrip.py
modified: stub/src/amd64-darwin.dylib-entry.S
modified: stub/src/amd64-darwin.macho-entry.S
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: stub/src/arch/powerpc/32/bxx.S
modified: stub/src/arch/powerpc/32/lzma_d.S
modified: stub/src/arch/powerpc/32/nrv2b_d.S
modified: stub/src/arch/powerpc/32/nrv2d_d.S
modified: stub/src/arch/powerpc/32/nrv2e_d.S
modified: stub/src/arch/powerpc/32/ppc_regs.h
new file: stub/src/arch/powerpc/64/Makefile
new file: stub/src/arch/powerpc/64/Makefile.extra
new file: stub/src/arch/powerpc/64/bxx.S
new file: stub/src/arch/powerpc/64/lzma_d.S
new file: stub/src/arch/powerpc/64/lzma_d_cf.S
new file: stub/src/arch/powerpc/64/lzma_d_cs.S
new file: stub/src/arch/powerpc/64/macros.S
new file: stub/src/arch/powerpc/64/nrv2b_d.S
new file: stub/src/arch/powerpc/64/nrv2d_d.S
new file: stub/src/arch/powerpc/64/nrv2e_d.S
new file: stub/src/arch/powerpc/64/ppc_regs.h
modified: stub/src/arch/powerpc/64le/bxx.S
copied: stub/src/arch/powerpc/64le/lzma_d.S -> stub/src/arch/powerpc/64le/lzma_d-common.S
modified: stub/src/arch/powerpc/64le/lzma_d.S
modified: stub/src/arch/powerpc/64le/lzma_d_cs.S
modified: stub/src/arch/powerpc/64le/nrv2b_d.S
modified: stub/src/arch/powerpc/64le/nrv2d_d.S
modified: stub/src/arch/powerpc/64le/nrv2e_d.S
modified: stub/src/arch/powerpc/64le/ppc_regs.h
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm64-darwin.macho-entry.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
modified: stub/src/i386-bsd.elf-entry.S
modified: stub/src/i386-darwin.macho-entry.S
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/powerpc-darwin.dylib-entry.S
modified: stub/src/powerpc-darwin.macho-entry.S
modified: stub/src/powerpc-darwin.macho-fold.S
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-main.c
new file: stub/src/powerpc64-darwin.dylib-entry.S
new file: stub/src/powerpc64-darwin.macho-entry.S
new file: stub/src/powerpc64-darwin.macho-fold.S
new file: stub/src/powerpc64-darwin.macho-main.c
new file: stub/src/powerpc64-linux.elf-entry.S
new file: stub/src/powerpc64-linux.elf-fold.S
new file: stub/src/powerpc64-linux.elf-fold.lds
new file: stub/src/powerpc64-linux.elf-main.c
modified: stub/src/powerpc64-savegpr0.S
modified: stub/src/powerpc64le-darwin.dylib-entry.S
modified: stub/src/powerpc64le-darwin.macho-entry.S
modified: stub/src/powerpc64le-darwin.macho-fold.S
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-main.c
and most stub/*.h and stub/tmp/*.dump
2017-06-05 11:32:25 -07:00
John Reiser
140a031515
arm64-linux.shlib-init
...
modified: p_lx_elf.cpp
modified: stub/src/arm64-linux.shlib-init.S
modified: stub/arm64-linux.shlib-init.h
modified: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-06-04 16:52:43 -07:00
John Reiser
b7c91941b8
--android-shlib fix Elf64_Shdr.sh_offset
...
https://github.com/upx/upx/issues/100
modified: ../p_lx_elf.cpp
modified: ../p_lx_elf.h
2017-05-31 11:04:56 -07:00
John Reiser
ee18fe9bba
DF_1_PIE and calls_crt1() to handle part of -pie,-fPIE
...
https://github.com/upx/upx/issues/106 [partial]
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2017-05-31 10:53:55 -07:00
John Reiser
d979e19315
fpad8() for --android-shlib in PackLinuxElf64::pack4()
...
https://github.com/upx/upx/issues/100
modified: p_lx_elf.cpp
2017-05-30 11:32:05 -07:00
John Reiser
6e541a432f
amd64-linux: DF_1_PIE marks a main program; stub juggles AT_PHDR for same
...
https://github.com/upx/upx/issues/105
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-main.c
modified: ../.github/travis_testsuite_1.sh
modified: stub/amd64-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-fold.map
2017-05-27 19:54:12 -07:00
John Reiser
8eabb9b02f
i386 recover from merge
...
modified: p_lx_elf.cpp
2017-05-08 18:54:41 -07:00
John Reiser
955206aaf0
Merge branch 'devel' into jreiser
...
Conflicts:
src/p_lx_elf.cpp
src/stub/src/amd64-linux.elf-entry.S
src/stub/src/amd64-linux.elf-main.c
src/stub/src/arm.v4a-linux.elf-entry.S
src/stub/src/arm.v4a-linux.elf-fold.S
src/stub/src/arm64-linux.elf-entry.S
src/stub/src/arm64-linux.elf-fold.S
src/stub/src/i386-linux.elf-fold.S
src/stub/src/powerpc-darwin.macho-entry.S
src/stub/src/powerpc-linux.elf-fold.S
src/stub/src/powerpc64le-darwin.macho-entry.S
src/stub/src/powerpc64le-linux.elf-entry.S
src/stub/src/powerpc64le-linux.elf-fold.S
src/stub/src/powerpc64le-linux.elf-main.c
Changes to be committed:
modified: ../.github/ISSUE_TEMPLATE.md
modified: ../.github/travis_build.sh
modified: ../.github/travis_deploy.sh
modified: ../.github/travis_init.sh
modified: ../.github/travis_testsuite_1.sh
modified: ../.gitignore
modified: ../.travis.yml
modified: ../NEWS
modified: c_screen.cpp
modified: file.cpp
modified: help.cpp
modified: linker.cpp
modified: main.cpp
modified: p_lx_elf.cpp
modified: packer.cpp
modified: s_djgpp2.cpp
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/powerpc-darwin.dylib-entry.S
modified: stub/src/powerpc-darwin.macho-entry.S
modified: stub/src/powerpc-darwin.macho-fold.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64le-darwin.dylib-entry.S
modified: stub/src/powerpc64le-darwin.macho-entry.S
modified: stub/src/powerpc64le-darwin.macho-fold.S
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-main.c
modified: ui.cpp
modified: util.cpp
modified: work.cpp
[plus *.h, *.dump, *.map]
2017-05-08 14:21:31 -07:00
John Reiser
90714cf624
arm64 tracing in stub
...
modified: ../../linker.cpp
modified: ../../p_lx_elf.cpp
modified: arm64-linux.elf-entry.S
2017-05-06 19:37:37 -07:00
John Reiser
515897e180
Allow Elf64_Ehdr::ELFOSABI_NONE on Linux; cater to EM_PPC64.e_flags quirk
...
modified: p_lx_elf.cpp
2017-05-04 08:28:03 -07:00
John Reiser
24c924d668
Fix size of 'imul'
...
modified: src/stub/src/i386-linux.elf-fold.S
modified: src/p_lx_elf.cpp
modified: .github/travis_testsuite_1.sh
modified: src/stub/i386-linux.elf-fold.h
modified: src/stub/tmp/i386-linux.elf-fold.map
2017-04-26 15:24:19 -07:00
John Reiser
15e9d8c99d
Recognize __libc_init for Android -pie (PositionIndependentExecutable)
...
based on d34887ef60
modified: p_lx_elf.cpp
2017-04-24 11:04:48 -07:00
John Reiser
c4a921283a
Revamp powerpc{,64le,64}.
...
Fix 64-bit stack frame (8*8 bytes for spilling a0-a7). Avoid using r2 (t0).
Prepare for -pie executables. Prepare for unified strategy in stubs.
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/arch/powerpc/32/bxx.S
modified: stub/src/arch/powerpc/32/lzma_d.S
modified: stub/src/arch/powerpc/32/nrv2b_d.S
modified: stub/src/arch/powerpc/32/nrv2d_d.S
modified: stub/src/arch/powerpc/32/nrv2e_d.S
modified: stub/src/arch/powerpc/32/ppc_regs.h
new file: stub/src/arch/powerpc/64/Makefile
new file: stub/src/arch/powerpc/64/Makefile.extra
new file: stub/src/arch/powerpc/64/lzma_d.S
new file: stub/src/arch/powerpc/64/lzma_d_cf.S
new file: stub/src/arch/powerpc/64/lzma_d_cs.S
modified: stub/src/arch/powerpc/64le/bxx.S
copied: stub/src/arch/powerpc/64le/lzma_d.S -> stub/src/arch/powerpc/64le/lzma_d-common.S
modified: stub/src/arch/powerpc/64le/lzma_d.S
modified: stub/src/arch/powerpc/64le/lzma_d_cs.S
modified: stub/src/arch/powerpc/64le/nrv2b_d.S
modified: stub/src/arch/powerpc/64le/nrv2d_d.S
modified: stub/src/arch/powerpc/64le/nrv2e_d.S
modified: stub/src/arch/powerpc/64le/ppc_regs.h
modified: stub/src/i386-darwin.macho-entry.S
modified: stub/src/powerpc-darwin.dylib-entry.S
modified: stub/src/powerpc-darwin.macho-entry.S
modified: stub/src/powerpc-darwin.macho-fold.S
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-main.c
modified: stub/src/powerpc64-darwin.dylib-entry.S
modified: stub/src/powerpc64-darwin.macho-entry.S
modified: stub/src/powerpc64-darwin.macho-fold.S
modified: stub/src/powerpc64-darwin.macho-main.c
modified: stub/src/powerpc64-linux.elf-main.c
modified: stub/src/powerpc64-savegpr0.S
modified: stub/src/powerpc64le-darwin.dylib-entry.S
modified: stub/src/powerpc64le-darwin.macho-entry.S
modified: stub/src/powerpc64le-darwin.macho-fold.S
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/i386-darwin.macho-entry.h
modified: stub/powerpc-darwin.dylib-entry.h
modified: stub/powerpc-darwin.macho-entry.h
modified: stub/powerpc-darwin.macho-fold.h
modified: stub/powerpc-linux.elf-entry.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/powerpc-linux.kernel.vmlinux.h
modified: stub/powerpc64-linux.elf-entry.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-darwin.dylib-entry.h
modified: stub/powerpc64le-darwin.macho-entry.h
modified: stub/powerpc64le-darwin.macho-fold.h
modified: stub/powerpc64le-linux.elf-entry.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/powerpc64le-linux.kernel.vmlinux.h
modified: stub/tmp/i386-darwin.macho-entry.bin.dump
modified: stub/tmp/powerpc-darwin.dylib-entry.bin.dump
modified: stub/tmp/powerpc-darwin.macho-entry.bin.dump
modified: stub/tmp/powerpc-linux.elf-entry.bin.dump
modified: stub/tmp/powerpc-linux.elf-fold.map
modified: stub/tmp/powerpc64le-darwin.dylib-entry.bin.dump
modified: stub/tmp/powerpc64le-darwin.macho-entry.bin.dump
modified: stub/tmp/powerpc64le-linux.elf-entry.bin.dump
modified: stub/tmp/powerpc64le-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.kernel.vmlinux.bin.dump
2017-04-19 19:25:05 -07:00
John Reiser
4e05f087f9
PowerPC 64-bit big-endian
...
modified: conf.h
modified: linker.cpp
modified: linker.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: packmast.cpp
modified: stub/Makefile
modified: stub/powerpc-linux.elf-entry.h
new file: stub/powerpc64-linux.elf-entry.h
new file: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-entry.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/scripts/xstrip.py
modified: stub/src/arch/powerpc/64le/nrv2b_d.S
modified: stub/src/arch/powerpc/64le/nrv2d_d.S
modified: stub/src/arch/powerpc/64le/nrv2e_d.S
new file: stub/src/powerpc64-darwin.dylib-entry.S
new file: stub/src/powerpc64-darwin.macho-entry.S
new file: stub/src/powerpc64-darwin.macho-fold.S
new file: stub/src/powerpc64-darwin.macho-main.c
new file: stub/src/powerpc64-linux.elf-entry.S
new file: stub/src/powerpc64-linux.elf-fold.S
new file: stub/src/powerpc64-linux.elf-fold.lds
new file: stub/src/powerpc64-linux.elf-main.c
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-main.c
modified: stub/tmp/powerpc64le-linux.elf-entry.bin.dump
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2017-04-11 19:15:43 -07:00
John Reiser
7c16872a6e
Merge branch 'devel' into jreiser
2017-04-07 08:22:08 -07:00
John Reiser
c34f496600
Avoid incorrect C4319 by Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x64
...
modified: p_lx_elf.cpp
2017-04-07 05:36:40 -07:00
John Reiser
85fdd579d6
Cleanup PackLinuxElf64amd::defineSymbols(): use is_pie; reduce symbols
...
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/amd64-linux.elf-entry.h
modified: stub/amd64-linux.elf-fold.h
modified: stub/tmp/amd64-linux.elf-entry.bin.dump
modified: stub/tmp/amd64-linux.elf-fold.map
2017-04-06 17:22:30 -07:00
John Reiser
e88d2ff88c
Merge branch 'devel' into jreiser
...
modified: ../.appveyor.yml
modified: ../.github/travis_build.sh
modified: Makefile
modified: linker.cpp
modified: p_lx_elf.cpp
modified: packmast.cpp
2017-04-06 14:25:14 -07:00
John Reiser
491e8640b2
is_pie; O_BINFO; remove LUNMP000, LUNMP001
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2017-04-06 14:15:07 -07:00
John Reiser
cd1f6e733f
Merge branch 'devel' of https://github.com/upx/upx into devel
2017-04-06 09:05:46 -07:00
John Reiser
d3fc7687b8
Fix valgrind error
...
https://travis-ci.org/upx/upx/jobs/218929378
modified: p_lx_elf.cpp
2017-04-06 09:04:13 -07:00
Markus F.X.J. Oberhumer
2c23cbb359
Silence some compiler warnings.
2017-04-05 17:02:42 +02:00
John Reiser
a59005e836
Elf propagates NX via PT_GNU_STACK (except MIPS stub is too difficult for now)
...
https://github.com/upx/upx/issues/81
modified: ../.github/travis_testsuite_1.sh
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: stub/amd64-linux.elf-entry.h
modified: stub/i386-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/tmp/amd64-linux.elf-entry.bin.dump
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2017-04-03 20:25:57 -07:00
John Reiser
5da6a27e6b
Elf propates NX via PT_GNU_STACK (except MIPS stub is too difficult for now)
...
https://github.com/upx/upx/issues/81
modified: ../.github/travis_testsuite_1.sh
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: stub/amd64-linux.elf-entry.h
modified: stub/i386-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/tmp/amd64-linux.elf-entry.bin.dump
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2017-04-03 20:11:08 -07:00
John Reiser
df3d15ffb3
Enable stub for arm64 shlib. Stub is broken, but at least it packs.
...
modified: p_lx_elf.cpp
2017-03-31 20:01:14 -07:00
John Reiser
20bc848bd6
--android-shlib preserves selected Elf64_Shdr
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2017-03-31 13:24:36 -07:00
John Reiser
ce7f1292dc
Merge branch 'devel' into jreiser
2017-03-31 13:10:08 -07:00
John Reiser
d97ff8bb40
More cleanup
...
modified: p_lx_elf.cpp
2017-03-31 12:57:11 -07:00
John Reiser
8a9b46d82f
Cleanup minor bug in unpack ET_EXE
...
modified: p_lx_elf.cpp
2017-03-31 12:42:14 -07:00
John Reiser
12e5703541
Stronger test and better message for PT_LOAD[0].p_offset != 0
...
https://github.com/upx/upx/issues/80
modified: p_lx_elf.cpp
2017-03-31 12:20:02 -07:00
John Reiser
1b87fc2ee6
DT_INIT restored for -d on --android-shlib
...
modified: p_lx_elf.cpp
2017-03-30 15:55:35 -07:00
John Reiser
ebd0c780a1
Unpacking --android-shlib works except for restoring DT_INIT
...
modified: p_lx_elf.cpp
2017-03-30 11:05:49 -07:00
John Reiser
300d489408
--android-shlib preserves selected Elf32_Shdr
...
32-bit only for now; also in wrong place for unpacking (-d)
modified: main.cpp
modified: options.h
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2017-03-29 18:31:39 -07:00
John Reiser
024d081167
Fix unpack of ET_DYN
...
https://github.com/upx/upx/issues/73
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2017-03-27 16:49:46 -07:00
John Reiser
348173d3f1
Fix editing glitch
...
modified: p_lx_elf.cpp
2017-03-27 16:42:26 -07:00
John Reiser
23e3814f8a
Fix unpacking of ET_DYN
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2017-03-27 16:10:12 -07:00
John Reiser
b818e2c4b8
arm64 (aarch64)
...
Tested and working: nrv2b and nrv2e for ET_EXE on linux.
NOT TESTED: lzma, ET_DYN on linux; any Mach-O
modified: bele.h
modified: conf.h
modified: filter/ct.h
modified: filteri.cpp
modified: linker.cpp
modified: linker.h
modified: miniacc.h
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: packmast.cpp
modified: stub/Makefile
modified: stub/arm64-darwin.macho-entry.h
modified: stub/arm64-darwin.macho-fold.h
new file: stub/arm64-linux.elf-entry.h
new file: stub/arm64-linux.elf-fold.h
new file: stub/arm64-linux.shlib-init.h
new file: stub/src/arch/arm64/v8/Makefile.extra
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/lzma_d_cf.S
new file: stub/src/arch/arm64/v8/lzma_d_cs.S
modified: stub/src/arch/arm64/v8/macros.S
renamed: stub/src/arch/arm64/v8/nrv2b_d8.S -> stub/src/arch/arm64/v8/nrv2b_d32.S
renamed: stub/src/arch/arm64/v8/nrv2d_d8.S -> stub/src/arch/arm64/v8/nrv2d_d32.S
modified: stub/src/arch/arm64/v8/nrv2e_d32.S
deleted: stub/src/arch/arm64/v8/nrv2e_d8.S
modified: stub/src/arm64-darwin.macho-entry.S
modified: stub/src/arm64-darwin.macho-fold.S
new file: stub/src/arm64-linux.elf-entry.S
new file: stub/src/arm64-linux.elf-fold.S
new file: stub/src/arm64-linux.elf-fold.lds
new file: stub/src/arm64-linux.elf-main.c
new file: stub/src/arm64-linux.shlib-init.S
modified: stub/src/include/linux.h
modified: stub/tmp/arm64-darwin.macho-entry.bin.dump
modified: stub/tmp/arm64-darwin.macho-fold.map
new file: stub/tmp/arm64-linux.elf-entry.bin.dump
new file: stub/tmp/arm64-linux.elf-fold.map
new file: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-03-26 13:10:26 -07:00
John Reiser
0e154cc759
Hint when need DT_INIT for shared library
...
https://github.com/upx/upx/issues/74
modified: p_lx_elf.cpp
2017-03-25 20:22:04 -07:00
John Reiser
0db82e09e9
Suggest fix for missing DT_INIT in shared library.
...
modified: p_lx_elf.cpp
2017-03-25 17:39:47 -07:00
John Reiser
543fa3ae79
Revert PackLinuxElf32::unpack() for decompression of armeb-linux.elf/upx-3.91
...
Conflicting with https://github.com/upx/upx/issues/73
modified: p_lx_elf.cpp
2017-03-25 12:52:20 -07:00
John Reiser
6bb31e276e
Merge branch 'devel' into jreiser
2017-03-23 13:27:09 -07:00
Markus F.X.J. Oberhumer
aedbf02830
p_lx_elf.cpp: silence a clang-4.0 compilation warning.
2017-03-23 17:43:23 +01:00
John Reiser
bb7d3ca3a1
Fix PackLinuxElf32::unpack() for shared library?
...
modified: p_lx_elf.cpp
2017-03-20 21:21:46 -07:00
John Reiser
9f554a14fd
ARM64 hacking
...
modified: p_lx_elf.cpp
modified: stub/src/arch/arm64/v8/macros.S
modified: stub/src/arm64-darwin.macho-fold.S
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/arm64-darwin.macho-entry.h
modified: stub/arm64-darwin.macho-fold.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/tmp/arm64-darwin.macho-fold.map
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/arm64-linux.elf-fold.map
2017-03-14 20:08:28 -07:00
John Reiser
68a2b91ccb
arm64 filter, relocation, defineSymbols
...
modified: Makefile
modified: bele.h
modified: filter/ct.h
modified: filteri.cpp
modified: linker.cpp
modified: miniacc.h
modified: p_lx_elf.cpp
modified: stub/arm64-linux.elf-entry.h
modified: stub/src/arm64-linux.elf-entry.S
2017-03-05 21:05:13 -08:00
John Reiser
4089cc6e6f
arm64-linux compiles
...
modified: conf.h
modified: linker.cpp
modified: linker.h
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: packmast.cpp
modified: stub/Makefile
new file: stub/arm64-linux.shlib-init.h
new file: stub/src/arm64-linux.shlib-init.S
new file: stub/tmp/arm64-linux.elf-entry.bin.dump
new file: stub/tmp/arm64-linux.elf-fold.map
new file: stub/tmp/arm64-linux.shlib-init.bin.dump
2017-03-05 18:07:29 -08:00
John Reiser
8232aedf78
unpackExtent() segregates rewrite() from write()
...
Fix the reported output file size when un-compressing.
Part of https://github.com/upx/upx/issues/60
modified: p_lx_elf.cpp
modified: p_unix.cpp
modified: p_unix.h
2017-02-11 15:26:27 -08:00
John Reiser
7f3e7da7c7
Stubs LZMA_DEC00 and LZMA_ELF00 fall through; no "+80C" alignment.
...
https://github.com/upx/upx/issues/60 (partial)
addStubEntrySections() and getDecompressorSections()
modified: p_lx_elf.cpp
modified: p_mach.cpp
modified: packer_c.cpp
2017-02-05 14:52:09 -08:00
Markus F.X.J. Oberhumer
c4da5e81fa
Welcome 2017.
2017-01-03 12:02:07 +01:00
Markus F.X.J. Oberhumer
0ccbc5f139
Silence some bogus coverity warnings.
2016-12-21 19:03:01 +01:00
Markus F.X.J. Oberhumer
0b4ac35bc9
Tune some MSVC warnings.
2016-12-19 22:57:43 +01:00
John Reiser
a1cabd5a68
Avoid warning C4805: '|': unsafe mix of type 'bool' and type 'unsigned int' in operation
...
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2016-12-18 11:32:47 -08:00
John Reiser
134b829d59
prevent warning C4319: '~': zero extending 'const unsigned int' to 'upx_uint64_t' of greater size
...
modified: linker.cpp
modified: p_lx_elf.cpp
modified: pefile.cpp
2016-11-19 16:46:01 -08:00
Thierry Fauck
b1c07c22ce
powerpc64le -fpic dynamically linked binary support
...
Update stub for -fpic support
Handle 64K page in p_lx_elf.cpp
Signed-off-by: Thierry Fauck <tfauck@free.fr>
2016-11-08 18:29:10 +01:00
John Reiser
c2c970ee33
pacify c++-analyzer
...
modified: p_lx_elf.cpp
2016-10-19 15:19:33 -07:00
John Reiser
44328aee76
fix brk() problem when is_big: stub must munmap all_pages
...
https://github.com/upx/upx/issues/5
modified: p_lx_elf.cpp
modified: p_lx_elf.h
2016-10-15 14:06:56 -07:00
John Reiser
d688a05ac7
DT_JMPREL vanished (binutils-2.26.1); check all DT_RELA.
...
modified: p_elf_enum.h
modified: p_lx_elf.cpp
2016-10-09 21:50:45 -07:00
John Reiser
ca2293f6d3
c++-analyzer needs improved range tracking.
...
modified: p_lx_elf.cpp
2016-10-09 09:33:35 -07:00
John Reiser
e3fe0dc89b
Avoid bug in ld-linux to set brk(0) when .p_align is large.
...
modified: p_lx_elf.cpp
2016-10-03 09:41:05 -07:00
John Reiser
977024ea94
Fix clang scan-build errors.
...
modified: p_lx_elf.cpp
2016-10-01 17:38:16 -07:00
Markus F.X.J. Oberhumer
b9b3b67b95
Silence some pedantic compilation warnings about unused results.
2016-09-28 13:50:50 +02:00
Markus F.X.J. Oberhumer
f7554374ab
Update email address.
2016-09-28 12:25:01 +02:00
Markus F.X.J. Oberhumer
96d9968db5
Welcome 2016.
2016-09-22 14:07:14 +02:00
Markus F.X.J. Oberhumer
aef54a4bfd
Update source for previous rename.
2016-09-22 12:12:43 +02:00
Markus F.X.J. Oberhumer
1bc8b6f46e
Update source for previous rename.
2016-09-22 11:29:12 +02:00
Markus F.X.J. Oberhumer
10a0469221
Update source for previous rename.
2016-09-22 10:56:33 +02:00
Markus F.X.J. Oberhumer
8b0101dcab
Update source for previous rename.
2016-09-22 10:25:45 +02:00
Markus F.X.J. Oberhumer
ea2bddf245
Fix one more file_image usage.
2016-09-22 00:58:43 +02:00
Markus F.X.J. Oberhumer
242f606a29
p_lx_elf.h: turn file_image into a MemBuffer.
2016-09-21 22:22:41 +02:00
Markus F.X.J. Oberhumer
3765ca4e92
Cleanups and cruft removal.
2016-09-21 21:33:53 +02:00
John Reiser
d2830db94d
Fix memory leak
...
modified: p_lx_elf.cpp
2016-09-20 20:43:48 -07:00
Markus F.X.J. Oberhumer
1bb0fa1809
Fix a few things spotted by the gcc-6 sanitizer. Needs review.
2016-09-21 00:35:51 +02:00
Markus F.X.J. Oberhumer
7af6c4b10e
Use new style casts. Cleanups.
2016-09-20 20:59:34 +02:00
John Reiser
48ce1f1814
Merge branch 'master' of https://github.com/upx/upx
2016-09-20 10:56:00 -07:00
John Reiser
5151c8a505
Indentation error detected by g++-6
...
modified: p_lx_elf.cpp
2016-09-20 10:55:14 -07:00
Markus F.X.J. Oberhumer
44248f19b5
Introduce mem_size() and New() and start using it.
2016-09-20 15:24:07 +02:00
Markus F.X.J. Oberhumer
e4723e0bad
Avoid some compiler warnings.
2016-09-20 10:54:27 +02:00
John Reiser
01a0c8672d
changeset: 2451:4e2a6c33d5fb
...
tag: ppc64le
user: Thierry Fauck <tfauck@free.fr>
date: Wed Jun 22 08:25:13 2016 -0400
summary: Add support for ppc64le statically linked binaries
2016-07-26 17:00:25 -07:00
John Reiser
53b45279ad
Better diagnosis of Go-language PT_LOAD; https://sourceforge.net/p/upx/bugs/195/
2015-07-25 07:11:57 -07:00
John Reiser
298ea1f0d3
::unpack(): another check on b_info; uncompressed ElfXX_Ehdr must match input
2015-05-16 15:23:01 -07:00
John Reiser
759827b404
EI_OSABI for EM_ARM is a real mess
2015-05-15 20:47:35 -07:00
John Reiser
330fca722a
too large: blocksize > 1024*1024*1024 [corrupted]
2015-05-15 05:36:21 -07:00
John Reiser
cdd152d015
Detect (int)blocksize < 0
2015-05-09 20:13:30 -07:00
John Reiser
83ce7dc62f
Must not compare orig_file_size with fi->st_size() during ::unpack
2015-05-09 17:47:17 -07:00
John Reiser
b182b50f24
Distinguish corruption of p_info, b_info
2015-05-09 10:13:13 -07:00
John Reiser
c777da263e
Check blocksize. CERT-FI 829767
...
id:000053,sig:06,src:000000,op:arith8,pos:10440,val:+20
2015-05-09 07:25:25 -07:00
John Reiser
2cb7b56a41
Check ph.c_len; CERT-FI 829767
...
id:000023,sig:06,src:000000,op:flip2,pos:10440
2015-05-09 07:18:54 -07:00
John Reiser
8d6c594240
Check ph.c_len; CERT-FI 829767
...
id:000008,sig:06,src:000000,op:flip1,pos:205
2015-05-09 07:05:17 -07:00
John Reiser
771fd732d1
Check e_phentsize; CERT-FI 829767
...
id:000064,sig:06,sync:upx-macho-crash-2,src:000096
2015-05-09 05:31:36 -07:00
John Reiser
7ca14d209c
Use upx_uint64_t instead of "unsigned long".
2015-01-10 12:26:35 -08:00
Markus F.X.J. Oberhumer
9fa1772ae4
Merge.
2015-01-03 00:34:42 +01:00
John Reiser
51ee664cae
PackLinuxElf32help1 refuses if e_ident[EI_DATA] mismatches bele policy
2015-01-02 15:25:29 -08:00
Markus F.X.J. Oberhumer
fb611a98f9
Welcome 2015.
2015-01-03 00:24:07 +01:00
Markus F.X.J. Oberhumer
a26c982e93
Welcome 2014.
2014-01-07 23:05:10 +01:00
John Reiser
cd3132667a
ARM shlib escape hatch moves to just beyond .text.
...
https://sourceforge.net/p/upx/bugs/223/
2013-11-22 19:26:19 -08:00
John Reiser
c5c9921b59
Unpack detects is_shlib more robustly. Dispute .e_shoff.
2013-11-16 14:25:53 -08:00
John Reiser
6b63aba1fc
Disable jni_onload_*
2013-11-09 16:06:41 -08:00
John Reiser
382331fb11
e_phoff and e_shoff are 32/64 specific
2013-10-28 07:11:40 -07:00
John Reiser
caf9af7ae4
JNI_OnLoad is a pre-DT_INIT in a shared library.
2013-10-26 09:51:25 -07:00
Markus F.X.J. Oberhumer
b2643b6926
Start using the new intergral type names.
2013-09-20 08:19:18 +02:00
John Reiser
d43f8e3100
Alignment bug in test or decompress of shared library;
...
sourceforge.net/p/upx/bugs/218/
2013-07-06 13:50:15 -07:00
John Reiser
66269eabe9
ARM Try a hole so that kernel does not extend brk(0)
2013-06-08 08:39:08 -07:00
Markus F.X.J. Oberhumer
36dd35f238
Silence some compilation warnings.
2013-02-18 11:01:30 +01:00
Markus F.X.J. Oberhumer
87a368a857
Welcome 2013.
2013-02-12 10:14:03 +01:00
John Reiser
b362a61863
fix for user brk() on ARM with static linking
2013-01-31 12:19:35 -08:00
John Reiser
468fec38d7
Fix .e_ident[EI_OSABI] for Debian armhf.
2013-01-30 13:31:35 -08:00
Markus F.X.J. Oberhumer
25d706a913
Whitespace cleanup.
2012-10-31 15:50:52 +01:00
John Reiser
048236aaaa
Isolate change to p_mach.cpp of previous revision
...
(p_lx_elf.cpp and p_lx_elf.h were included by mistake.)
2012-10-10 08:58:15 -07:00
John Reiser
d442c58fd1
MachO no longer needs contiguous LC_SEGMENT (SourceForge bug 3308161)
2012-10-10 08:51:52 -07:00
John Reiser
8a5d352733
Portability: fix "EOFException: premature end of file" doing ELF on Windows.
...
OutputFile::read() was bad news; fsync() should work, but was missing.
2012-07-12 14:25:28 -07:00
John Reiser
a6d717cb04
big endian, too: ARM Linux EABI version 4 and 5 is a mess
2012-07-07 07:45:51 -07:00
Markus F.X.J. Oberhumer
43ce34d547
Welcome 2012.
2012-01-01 22:35:11 +01:00
Markus F.X.J. Oberhumer
a38721db93
Remove meaningless "const" from casts.
2011-12-14 06:05:41 +01:00
Markus F.X.J. Oberhumer
86e534ff75
Remove trailing whitespace. Remove hard tabs.
2011-12-14 06:03:08 +01:00
John Reiser
640d5b2dec
Option --preserve-build-id for Gnu ELF; contributed by Nicholas Twerdochlib
...
(SourceForge [ upx-Patches-3413335 ])
2011-12-13 17:26:03 -08:00
Markus F.X.J. Oberhumer
260138ba11
Silence some compilation warnings.
2011-12-12 11:30:02 +01:00
John Reiser
f6ee8b9f04
MSVC++ disallows zero-length array in struct
2011-11-23 13:05:00 -08:00
John Reiser
31af22c2ff
ARM_is_QNX looks for PT_INTERP containing "ldqnx"
2011-10-16 15:04:18 -07:00
John Reiser
6e92902407
ARM_is_QNX() heuristic
2011-10-16 13:11:03 -07:00
John Reiser
b247b051ea
QNX on armel (experimental)
2011-10-15 19:49:37 -07:00
Markus F.X.J. Oberhumer
afbd553622
Silence some compilation warnings.
2011-08-30 03:40:53 +02:00
John Reiser
cfa6c8ddf6
Fix ::pack3 for shared library.
2011-06-06 20:00:43 -07:00
John Reiser
21924bf022
move stub escape hatch for shared library to end of .text [glibc-2.13.90]
2011-06-02 07:18:50 -07:00
John Reiser
eea33f6019
Document copy ONLY for old_dtinit, .e_shoff in compressed shared library.
2011-05-31 11:01:40 -07:00
John Reiser
de9b9fd0b1
more messages in PackLinuxElf32::canPack
2011-05-30 07:21:51 -07:00
John Reiser
ece7384be4
fpad4 from st_size(), not from getBytesWritten()
2011-05-28 12:18:27 -07:00
John Reiser
0c052e4506
amd64 output PT_LOAD[0] ends after loader
2011-05-20 10:29:04 -07:00
John Reiser
1996a0a3d6
32-bit shared libraries on i386 only (SourceForge bug 3286178)
2011-04-14 09:39:55 -07:00
John Reiser
836fd2565f
Place loader immediately after compressed PT_LOADs, in "middle" of file.
...
This moves compressed gaps and debuginfo out of compressed PT_LOADs,
and fixes a bug where large debuginfo would cause first mmap
at runtime to erase the loader (SourceForge bug 3239079).
2011-03-28 10:44:23 -07:00
John Reiser
c1d6bf4366
avoid .so with DT_TEXTREL; SourceForge bug 3190915
2011-02-24 09:38:17 -08:00
Markus F.X.J. Oberhumer
9bf2b79d9e
Enter 2011.
2011-01-03 08:49:23 +01:00
Markus F.X.J. Oberhumer
4d98408995
Remove trailing whitespace.
2010-12-29 15:46:55 +01:00
John Reiser
80c5ee2479
use up4()
2010-11-17 14:28:00 -08:00
John Reiser
e6357b81eb
NetBSD version 5 requires PT_NOTE for PaX. Also adjust other *BSD and PT_NOTE.
...
[Tested OK on FreeBSD 8.1, NetBSD 5.1, OpenBSD 4.8. Cleanup needed.]
2010-11-16 21:13:42 -08:00
John Reiser
a10293f8f7
ARM copy .e_flags from input to output to preserve soft_FP flag, etc.
2010-11-09 11:05:55 -08:00
John Reiser
b1f02f91d7
NetBSD 5.0 wants PT_NOTE and branded executables
2010-11-09 10:47:53 -08:00
Markus F.X.J. Oberhumer
e8ba14a2c1
Silence some compilation warnings.
2010-09-01 14:49:26 +02:00
John Reiser
e31777ec53
ARM ELF EABI version 5
...
https://sourceforge.net/tracker/?func=detail&atid=102331&aid=3040129&group_id=2331
2010-08-17 11:30:17 -07:00
John Reiser
3cb61402c2
merge
2010-07-16 21:01:45 -07:00
John Reiser
5336c51199
Fix conflict between VDSO and unfolded decompressor for ET_DYN
...
(-fPIE) with unlimited stack on Linux-2.6.34 et al.
2010-07-16 20:58:52 -07:00
Markus F.X.J. Oberhumer
52aa658aaa
Silence some compilation warnings.
2010-07-14 20:03:09 +02:00
Markus F.X.J. Oberhumer
a15ce00934
Fix some small memory leaks. Minor cleanup.
2010-04-10 13:57:25 +02:00
John Reiser
9e3e80261b
merge
2010-03-31 14:15:18 -07:00
John Reiser
c72c685434
Diagnose PT_LOAD beyond end-of-file.
...
https://sourceforge.net/tracker/?func=detail&atid=102331&aid=2979240&group_id=2331
2010-03-31 14:09:28 -07:00
Markus F.X.J. Oberhumer
b6a9b0a4c9
Silence some compilation warnings.
2010-03-31 02:16:32 +02:00
John Reiser
f4f8bd8d42
Fix for "upx --help" constructs with (0===f)
2010-03-17 18:33:30 -07:00
John Reiser
7e2e72bd40
infoWarning for shlib with no DT_INIT
2010-03-09 13:03:03 -08:00
John Reiser
aa7a13bd02
Linux kernels must be ET_EXEC
2010-03-09 09:22:57 -08:00
John Reiser
5895058a17
Linux kernels must be ET_EXEC
2010-03-09 09:20:46 -08:00
John Reiser
ffb60d5149
memmove instead of overlapping memcpy
2010-03-08 22:01:25 -08:00
John Reiser
8de5aa9409
Fix ET_DYN main program on amd64-linux.elf.
2010-03-08 16:59:53 -08:00
John Reiser
f03f42ca4d
Linux preserve /proc/self/exe; --unmap-all-pages option
2010-02-28 15:58:08 -08:00
John Reiser
895b0bd602
merge
2010-02-20 20:46:20 -08:00
John Reiser
2ee5ee92f8
merge
2010-02-20 20:44:54 -08:00
John Reiser
3e619423b1
merge
2010-02-20 20:40:32 -08:00
John Reiser
b524e18bdf
merge
2010-02-20 20:40:20 -08:00
John Reiser
6aa4579db8
merge
2010-02-20 20:40:04 -08:00
John Reiser
17fb86c0f1
merge
2010-02-20 20:39:52 -08:00
John Reiser
62ecfe4873
merge
2010-02-20 20:39:39 -08:00
John Reiser
04e55e6b9a
merge
2010-02-20 20:39:19 -08:00
John Reiser
f432aa1090
merge
2010-02-20 20:39:04 -08:00
John Reiser
7add104313
merge
2010-02-20 20:38:20 -08:00
John Reiser
36de249066
merge
2010-02-20 20:36:34 -08:00
John Reiser
b7a54dcffd
merge
2010-02-20 20:26:08 -08:00
John Reiser
6bb28deab2
merge
2010-02-20 20:24:55 -08:00
John Reiser
7f88d15c86
ELF ::unpack decompressing ElfXX_Ehdr changes .e_phnum
2010-02-20 19:57:34 -08:00
Markus F.X.J. Oberhumer
6bc3197721
Enter 2010.
2010-02-06 17:15:49 +01:00
Markus F.X.J. Oberhumer
c1ddea479d
Minor portability fixes.
2009-12-03 19:58:23 +01:00
John Reiser
5f3a95962c
PackLinuxElf32::unpack fix ARM (thumb)
2009-10-26 13:35:14 -07:00
John Reiser
eeae73296e
thumb-eabi-linux.shlib, and use it (for smaller size) instead of ARM.
...
[Consider compress-time option to choose ARM vs thumb?]
2009-10-26 09:05:12 -07:00
John Reiser
6ab04d7bbc
::buildLinuxLoader empty FOLDEXED for shlib
2009-10-25 13:52:41 -07:00
John Reiser
4e1c342e55
arm-linux.shlib escape hatch: munmap temporary pages
2009-10-21 09:32:42 -07:00
John Reiser
63da091d36
Compress shared library for armel-eabi-linux.
2009-10-19 20:48:46 -07:00
John Reiser
ad0dc88a33
Cleanup some FIXME. amd64-linux.shlib forces 4KiB page size to save space.
2009-10-18 16:03:26 -07:00
John Reiser
147acf4b57
Compress shared library for amd64-linux.
2009-10-17 21:55:03 -07:00
John Reiser
5085f3a15e
Allow ET_DYN on amd64-linux.elf
2009-10-16 17:47:16 -07:00
John Reiser
df4bd6a60c
move PackLinuxElf32x86::unpack up the class hierarchy to PackLinuxElf32
2009-10-16 11:00:33 -07:00
John Reiser
813e7b05e4
fix .ui_total_passes when shlib
2009-10-16 10:56:15 -07:00