Markus F.X.J. Oberhumer
d001a63bce
Welcome 2022.
2022-09-04 04:24:39 +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
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
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
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
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
Markus F.X.J. Oberhumer
9131d5216f
Welcome 2021.
2021-01-01 20:39:22 +01: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
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
Markus F.X.J. Oberhumer
d1174385ef
Welcome 2020.
2020-01-08 04:13:28 +01:00
Markus F.X.J. Oberhumer
3667fa4e44
Welcome 2019.
2019-02-15 11:04:09 +01: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
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
Markus F.X.J. Oberhumer
021c8db58a
Welcome 2018.
2018-01-19 10:55:32 +01: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
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
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
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
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
14710dea55
Replace some negative enum constants with "static const unsigned" vars.
2017-01-03 12:57:10 +01:00
Markus F.X.J. Oberhumer
c4da5e81fa
Welcome 2017.
2017-01-03 12:02:07 +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
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
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
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
Markus F.X.J. Oberhumer
d335d7bafd
p_mach.h: fix C++ syntax.
2016-10-06 09:51:58 +02:00
John Reiser
8fd5479f32
Templates for ::pack4; i386 now packs, needs work before running.
...
modified: p_mach.cpp
modified: p_mach.h
new file: stub/i386-darwin.macho-upxmain.exe
new file: stub/i386-darwin.macho-upxmain.h
new file: stub/src/i386-darwin.macho-upxmain.c
2016-10-04 19:58:04 -07:00
John Reiser
3283896e4b
Templatize ::buildLoader
...
modified: p_mach.cpp
modified: p_mach.h
2016-10-04 08:54:55 -07:00
John Reiser
b444bcf418
On the way to templates and mach-o/i386.
...
modified: p_mach.cpp
modified: p_mach.h
2016-10-03 22:00:26 -07:00
Markus F.X.J. Oberhumer
f7554374ab
Update email address.
2016-09-28 12:25:01 +02:00
John Reiser
df19f0d5ec
Try harder to decompress Mach-O I386, too.
...
modified: p_mach.cpp
modified: p_mach.h
2016-09-24 09:15:10 -07:00
John Reiser
7826a3652b
Try harder to decompress Mach-O, because pirates.
...
modified: p_mach.cpp
modified: p_mach.h
2016-09-24 06:43:16 -07:00
Markus F.X.J. Oberhumer
83828aa8a3
Update vim modelines.
2016-09-22 17:29:43 +02:00
Markus F.X.J. Oberhumer
96d9968db5
Welcome 2016.
2016-09-22 14:07:14 +02:00
Markus F.X.J. Oberhumer
a7fd742c17
Canonicalize the names of our executable formats.
2016-09-21 23:58:08 +02:00
Markus F.X.J. Oberhumer
3765ca4e92
Cleanups and cruft removal.
2016-09-21 21:33:53 +02:00
John Reiser
ad6914b938
PackMachBase<T>::canUnpack() finds overlay_offset for decompression
...
modified: p_mach.cpp
modified: p_mach.h
2016-09-20 20:07:42 -07:00
Markus F.X.J. Oberhumer
09d9f71ae9
p_mach.h: use proper upx types.
2016-09-20 10:05:08 +02:00
jreiser@BitWagon.com
ee06ce1148
generic Mach_command
2016-09-10 14:57:27 -07:00
jreiser@BitWagon.com
17f47d3c0a
p_mach*: Try for MacOSX 10.12 "Sierra" with UUID, XHDR.
2016-09-04 19:05:31 -07: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
bd7ef27628
ARM64LE begins implementation
...
added src/stub/arm64-darwin.macho-entry.h
added src/stub/arm64-darwin.macho-fold.h
added src/stub/src/arch/arm/v8a/lzma_d.S
added src/stub/src/arch/arm/v8a/macros.S
added src/stub/src/arch/arm/v8a/nrv2b_d8.S
added src/stub/src/arch/arm/v8a/nrv2d_d8.S
added src/stub/src/arch/arm/v8a/nrv2e_d32.S
added src/stub/src/arch/arm/v8a/nrv2e_d8.S
added src/stub/src/arm64-darwin.macho-entry.S
added src/stub/src/arm64-darwin.macho-fold.S
added src/stub/src/arm64-darwin.macho-main.c
added src/stub/src/arm64-linux.elf-entry.S
added src/stub/src/arm64-linux.elf-fold.S
added src/stub/tmp/arm64-darwin.macho-entry.bin.dump
changed src/p_mach.cpp
changed src/p_mach.h
changed src/stub/Makefile
2016-01-31 20:09:38 -08:00
John Reiser
cb35ba4543
At ::unpack much of decompressed Mach_header must match outer Mach_header
2015-05-09 20:14:32 -07:00
John Reiser
35944cbfc1
Validate fat_head; CERT-FI id:000000,sig:06,src:000000,op:flip1,pos:7
2015-05-08 18:32:42 -07:00