John Reiser
bb1f9cdecd
Propagate pagezero_vmsize; fix overlay_offset.
...
modified: p_mach.cpp
2018-09-22 12:11:51 -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
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
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
Markus F.X.J. Oberhumer
021c8db58a
Welcome 2018.
2018-01-19 10:55:32 +01:00
Markus F.X.J. Oberhumer
900926c0ed
Avoid a MSVC warning.
2018-01-12 10:19:14 +01: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
79e65503a9
Merge branch 'devel' into jreiser-macho
2017-12-26 10:41:26 -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
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
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
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
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
96433b4e39
FILTER_ID was wrong for arm64-linux.shlib and arm64-darwin.macho.
...
https://github.com/upx/upx/issues/100 (partial)
modified: stub/src/arm64-darwin.macho-fold.S
modified: stub/src/arm64-linux.shlib-init.S
modified: p_mach.cpp
modified: stub/arm64-darwin.macho-fold.h
modified: stub/arm64-linux.shlib-init.h
2017-08-25 12:51:33 -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
69355514c9
Fix some misspellings.
2017-07-22 12:54:37 +02:00
John Reiser
650df95b72
Fix thinko in PackMachBase<T>::canUnpack(). Also detect more bad input values.
...
https://github.com/upx/upx/issues/109
modified: p_mach.cpp
2017-06-18 14:24:44 -07:00
John Reiser
143c4e3322
Fix MH_EXECUTE for amd64-darwin.macho
...
modified: p_mach.cpp
modified: stub/src/amd64-darwin.macho-entry.S
modified: stub/amd64-darwin.macho-entry.h
modified: stub/tmp/amd64-darwin.macho-entry.bin.dump
2017-06-07 08:58:20 -07:00
John Reiser
ce194fa5d8
amd64-darwin.dylib hacking
...
modified: p_mach.cpp
modified: p_mach.h
modified: p_mach_enum.h
modified: stub/src/amd64-darwin.dylib-entry.S
modified: stub/amd64-darwin.dylib-entry.h
modified: stub/tmp/amd64-darwin.dylib-entry.bin.dump
2017-05-17 15:50:34 -07:00
John Reiser
fe4a8f33b1
Start on darwin.macho-dylib
...
modified: p_mach.cpp
modified: p_mach.h
modified: packmast.cpp
2017-05-03 08:30:21 -07:00
John Reiser
6ed67f4532
Unpack prefix with appended data; give message, keep backup
...
https://github.com/upx/upx/issues/4
modified: p_mach.cpp
2017-04-03 12:53:27 -07:00
John Reiser
f7751684af
Stubs LZMA_DEC00 and LZMA_ELF00 fall through; no "+80C" alignment.
...
addStubEntrySections() and getDecompressorSections()
modified: p_lx_elf.cpp
modified: p_mach.cpp
modified: packer_c.cpp
2017-02-05 13:26:02 -08:00
John Reiser
2cefd34bb7
Allow __PAGEZERO.vmsize to be 0x1000 on x86_64, as for "go"-language.
...
https://github.com/upx/upx/issues/59
modified: p_mach.cpp
modified: p_mach.h
2017-02-03 15:12:40 -08:00
Markus F.X.J. Oberhumer
5d3be8da1d
Silence a MSVC warning.
2017-01-03 12:37:35 +01:00
Markus F.X.J. Oberhumer
c4da5e81fa
Welcome 2017.
2017-01-03 12:02:07 +01:00
Markus F.X.J. Oberhumer
0b4ac35bc9
Tune some MSVC warnings.
2016-12-19 22:57:43 +01:00
John Reiser
9c1bc99d7a
Avoid warning C4146: unary minus operator applied to unsigned type, result still unsigned
...
modified: p_mach.cpp
2016-12-16 10:59:51 -08:00
Markus F.X.J. Oberhumer
8d61e037f9
Cleanups.
2016-11-20 14:17:21 +01:00
John Reiser
3df7d26101
propagate cpusubtype
...
modified: p_mach.cpp
modified: p_mach.h
2016-11-14 05:06:29 -08:00
John Reiser
a72aca4379
powerpc (32-bit) works on MacOS using Sierra-compatible strategy.
...
modified: p_mach.cpp
modified: p_mach.h
modified: stub/powerpc-darwin.macho-entry.h
modified: stub/powerpc-darwin.macho-upxmain.exe
modified: stub/powerpc-darwin.macho-upxmain.h
modified: stub/src/powerpc-darwin.macho-entry.S
modified: stub/src/powerpc-darwin.macho-upxsubr.S
modified: stub/tmp/powerpc-darwin.macho-entry.bin.dump
2016-11-12 19:48:19 -08:00
John Reiser
3f14b9dab7
LC_UNIXTHREAD in ::pass4
...
modified: p_mach.cpp
2016-11-08 17:53:02 -08:00
John Reiser
3b2c411274
Work on 32-bit PowerPC
...
modified: p_mach.cpp
modified: p_mach.h
2016-11-06 20:39:01 -08:00
John Reiser
e418af1ccd
Try to fix 32-bit PowerPC.
...
modified: p_mach.cpp
modified: p_mach.h
modified: stub/Makefile
new file: stub/powerpc-darwin.macho-upxmain.exe
new file: stub/powerpc-darwin.macho-upxmain.h
new file: stub/src/powerpc-darwin.macho-upxsubr.S
2016-11-06 17:59:16 -08:00
John Reiser
7dc004acb3
bug in other-endian ::canPack and ::canUnpack
...
modified: p_mach.cpp
2016-11-05 14:02:51 -07:00
John Reiser
2635472896
more unpacking for Mach-o (pre-3.91 ?)
...
modified: p_mach.cpp
modified: p_mach.h
2016-11-05 13:16:16 -07:00
John Reiser
9dd0e3ce4f
c++-analyzer finds the speck but misses the log.
...
modified: p_mach.cpp
2016-10-09 09:34:33 -07:00
John Reiser
42206364e5
Reduce Mach-o headers
...
modified: p_mach.cpp
2016-10-06 16:06:24 -07:00
John Reiser
82d9bb8f51
Fix namespace typedefs for Mach-o structs [upx_uint32_t ==> Word]
...
modified: p_mach.cpp
modified: p_mach.h
2016-10-06 14:00:05 -07:00
John Reiser
923a9d3f9b
Template PackMackBase<T>::pack3. Use more templates for ::pack4.
...
modified: p_mach.cpp
modified: p_mach.h
2016-10-06 08:55:09 -07:00
John Reiser
ae7660068b
Merge branch 'devel' of https://github.com/upx/upx into devel
2016-10-06 07:49:52 -07:00
John Reiser
f466c1d764
Cosmetic
...
modified: p_mach.cpp
2016-10-06 07:49:37 -07:00
Markus F.X.J. Oberhumer
6e76f8ef3a
Don't use variable length arrays (VLA).
2016-10-06 13:04:46 +02:00
John Reiser
791fd9199e
Preserve alignment in .text
...
modified: p_mach.cpp
2016-10-05 12:52:52 -07:00
John Reiser
9e8baf1914
i386 for MacOS 10.12 "Sierra"
...
modified: p_mach.cpp
modified: stub/i386-darwin.macho-entry.h
modified: stub/src/i386-darwin.macho-entry.S
modified: stub/tmp/i386-darwin.macho-entry.bin.dump
2016-10-05 11:25:16 -07:00