New option --catch-sigsegv on amd64, arm64, arm.v4a
Catch SIGSEGV during de-compression, and print state info
("auto debug") using /proc/self/maps and gdb.
This was motivated by suspicion of unreliable hardware
which triggered "Heisenbugs": a crash which cannot be reproduced.
If SIGSGV occurs without the "auto debug" info, then that
implies an error user code after de-compression, often when
user code accesses /proc/self/exe, which is not the un-compressed file.
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/help.cpp
modified: src/main.cpp
modified: src/options.h
modified: src/p_lx_elf.cpp
modified: src/stub/Makefile
modified: src/stub/src/amd64-linux.elf-entry.S
modified: src/stub/src/amd64-linux.elf-fold.S
modified: src/stub/src/arm.v4a-linux.elf-entry.S
modified: src/stub/src/arm.v4a-linux.elf-fold.S
modified: src/stub/src/arm64-linux.elf-entry.S
modified: src/stub/src/arm64-linux.elf-fold.S
plus generated .h .dump .map
This commit is contained in:
+68
-61
@@ -2,53 +2,86 @@ file format elf32-littlearm
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn Flags
|
||||
0 ELFMAINY 0 0 0 034 2**0 CONTENTS
|
||||
1 HUMF_A 04 0 0 034 2**0 CONTENTS
|
||||
2 HUMF_L 04 0 0 038 2**0 CONTENTS
|
||||
3 UMF_ANDROID 0544 0 0 03c 2**2 CONTENTS
|
||||
4 UMF_LINUX 0144 0 0 0580 2**2 CONTENTS
|
||||
5 ELFMAINX 0264 0 0 06c4 2**2 CONTENTS
|
||||
6 ELFMAINZ 0218 0264 0264 0928 2**0 CONTENTS
|
||||
0 ELFSIGSEGV 0 0 0 034 2**0 CONTENTS
|
||||
1 ELFMAINX2 0234 0 0 034 2**2 CONTENTS
|
||||
2 ELFMAINY 0 0 0 0268 2**0 CONTENTS
|
||||
3 HUMF_A 04 0 0 0268 2**0 CONTENTS
|
||||
4 HUMF_L 04 0 0 026c 2**0 CONTENTS
|
||||
5 UMF_ANDROID 0544 0 0 0270 2**2 CONTENTS
|
||||
6 UMF_LINUX 0144 0 0 07b4 2**2 CONTENTS
|
||||
7 ELFMAINX 028 0 0 08f8 2**0 CONTENTS
|
||||
8 ELFMAINZ 0218 028 028 0920 2**0 CONTENTS
|
||||
SYMBOL TABLE:
|
||||
00000000 l d ELFMAINX2 0 ELFMAINX2
|
||||
00000000 l d UMF_ANDROID 0 UMF_ANDROID
|
||||
00000000 l d UMF_LINUX 0 UMF_LINUX
|
||||
00000000 l d ELFMAINX 0 ELFMAINX
|
||||
00000264 l d ELFMAINZ 0 ELFMAINZ
|
||||
00000028 l d ELFMAINZ 0 ELFMAINZ
|
||||
00000000 l d ELFSIGSEGV 0 ELFSIGSEGV
|
||||
00000000 l d ELFMAINY 0 ELFMAINY
|
||||
00000000 l d HUMF_A 0 HUMF_A
|
||||
00000000 l d HUMF_L 0 HUMF_L
|
||||
00000258 g ELFMAINX 0 get_page_mask
|
||||
00000000 l d ELFMAINX 0 ELFMAINX
|
||||
00000228 g ELFMAINX2 0 get_page_mask
|
||||
00000000 *UND* 0 MFLG
|
||||
00000350 g ELFMAINZ 0 getpid
|
||||
00000264 g ELFMAINX 0 upx_mmap_and_fd
|
||||
0000026c g ELFMAINZ 0 memcpy
|
||||
00000114 g ELFMAINZ 0 getpid
|
||||
00000234 g ELFMAINX2 0 upx_mmap_and_fd
|
||||
00000030 g ELFMAINZ 0 memcpy
|
||||
00000000 *UND* 0 O_BINFO
|
||||
00000404 g ELFMAINZ 0 Psync
|
||||
000002b0 g ELFMAINZ 0 mempcpy
|
||||
0000033c g ELFMAINZ 0 ftruncate
|
||||
00000364 g ELFMAINZ 0 lseek
|
||||
000001c8 g ELFMAINZ 0 Psync
|
||||
00000074 g ELFMAINZ 0 mempcpy
|
||||
00000100 g ELFMAINZ 0 ftruncate
|
||||
00000128 g ELFMAINZ 0 lseek
|
||||
000002c4 g F UMF_ANDROID 0280 upx_mmap_and_fd_android
|
||||
00000434 g ELFMAINZ 0 mmap
|
||||
000001f8 g ELFMAINZ 0 mmap
|
||||
00000000 g F UMF_LINUX 0144 upx_mmap_and_fd_linux
|
||||
000003c8 g ELFMAINZ 0 uname
|
||||
0000018c g ELFMAINZ 0 uname
|
||||
00000000 g ELFMAINY 0 end_decompress
|
||||
000003f0 g ELFMAINZ 0 write
|
||||
00000314 g ELFMAINZ 0 fdatasync
|
||||
00000264 g ELFMAINZ 0 get_upxfn_path
|
||||
000002cc g ELFMAINZ 0 memfd_create
|
||||
000001b4 g ELFMAINZ 0 write
|
||||
000000d8 g ELFMAINZ 0 fdatasync
|
||||
00000028 g ELFMAINZ 0 get_upxfn_path
|
||||
00000090 g ELFMAINZ 0 memfd_create
|
||||
00000004 g ELFMAINX 0 _start
|
||||
000003a0 g ELFMAINZ 0 read
|
||||
000003dc g ELFMAINZ 0 unlink
|
||||
00000290 g ELFMAINZ 0 memset
|
||||
00000194 g F ELFMAINX 0c4 ucl_nrv2b_decompress_8
|
||||
0000042c g ELFMAINZ 0 my_bkpt
|
||||
00000328 g ELFMAINZ 0 fsync
|
||||
000003b4 g ELFMAINZ 0 stat
|
||||
0000047c g ELFMAINZ 0 cpr0
|
||||
00000300 g ELFMAINZ 0 exit
|
||||
0000038c g ELFMAINZ 0 open
|
||||
00000378 g ELFMAINZ 0 mkdir
|
||||
000002ec g ELFMAINZ 0 close
|
||||
00000164 g ELFMAINZ 0 read
|
||||
000001a0 g ELFMAINZ 0 unlink
|
||||
00000054 g ELFMAINZ 0 memset
|
||||
00000164 g F ELFMAINX2 0c4 ucl_nrv2b_decompress_8
|
||||
000001f0 g ELFMAINZ 0 my_bkpt
|
||||
000000ec g ELFMAINZ 0 fsync
|
||||
00000178 g ELFMAINZ 0 stat
|
||||
00000240 g ELFMAINZ 0 cpr0
|
||||
000000c4 g ELFMAINZ 0 exit
|
||||
00000150 g ELFMAINZ 0 open
|
||||
0000013c g ELFMAINZ 0 mkdir
|
||||
000000b0 g ELFMAINZ 0 close
|
||||
|
||||
RELOCATION RECORDS FOR [ELFMAINX2]:
|
||||
OFFSET TYPE VALUE
|
||||
00000004 R_ARM_PC24 ELFMAINX2
|
||||
00000008 R_ARM_PC24 ELFMAINX2
|
||||
00000014 R_ARM_PC24 ELFMAINX2
|
||||
0000001c R_ARM_PC24 ELFMAINX2
|
||||
00000030 R_ARM_PC24 ELFMAINZ
|
||||
00000068 R_ARM_PC24 ELFMAINX2
|
||||
00000078 R_ARM_PC24 upx_mmap_and_fd
|
||||
00000080 R_ARM_PC24 ELFMAINX2
|
||||
000000b0 R_ARM_PC24 ELFMAINX2
|
||||
000000ec R_ARM_PC24 ELFMAINX2
|
||||
0000015c R_ARM_PC24 ELFMAINX2
|
||||
00000174 R_ARM_PC24 ELFMAINX2
|
||||
000001ac R_ARM_PC24 ELFMAINX2
|
||||
000001b4 R_ARM_PC24 ELFMAINX2
|
||||
000001b8 R_ARM_PC24 ELFMAINX2
|
||||
000001c8 R_ARM_PC24 ELFMAINX2
|
||||
000001cc R_ARM_PC24 ELFMAINX2
|
||||
000001d0 R_ARM_PC24 ELFMAINX2
|
||||
000001dc R_ARM_PC24 ELFMAINX2
|
||||
000001ec R_ARM_PC24 ELFMAINX2
|
||||
000001f0 R_ARM_PC24 ELFMAINX2
|
||||
000001f8 R_ARM_PC24 ELFMAINX2
|
||||
00000200 R_ARM_PC24 ELFMAINX2
|
||||
00000204 R_ARM_PC24 ELFMAINX2
|
||||
00000220 R_ARM_PC24 ELFMAINX2
|
||||
00000224 R_ARM_PC24 ELFMAINX2
|
||||
|
||||
RELOCATION RECORDS FOR [HUMF_A]:
|
||||
OFFSET TYPE VALUE
|
||||
@@ -171,32 +204,6 @@ OFFSET TYPE VALUE
|
||||
RELOCATION RECORDS FOR [ELFMAINX]:
|
||||
OFFSET TYPE VALUE
|
||||
00000000 R_ARM_ABS32 MFLG
|
||||
00000010 R_ARM_PC24 ELFMAINX
|
||||
00000014 R_ARM_PC24 ELFMAINX
|
||||
00000020 R_ARM_PC24 ELFMAINX
|
||||
00000028 R_ARM_PC24 ELFMAINX
|
||||
00000058 R_ARM_PC24 ELFMAINZ
|
||||
00000090 R_ARM_PC24 ELFMAINX
|
||||
000000a0 R_ARM_PC24 upx_mmap_and_fd
|
||||
000000a8 R_ARM_PC24 ELFMAINX
|
||||
000000d8 R_ARM_PC24 ELFMAINX
|
||||
00000114 R_ARM_PC24 ELFMAINX
|
||||
0000018c R_ARM_PC24 ELFMAINX
|
||||
000001a4 R_ARM_PC24 ELFMAINX
|
||||
000001dc R_ARM_PC24 ELFMAINX
|
||||
000001e4 R_ARM_PC24 ELFMAINX
|
||||
000001e8 R_ARM_PC24 ELFMAINX
|
||||
000001f8 R_ARM_PC24 ELFMAINX
|
||||
000001fc R_ARM_PC24 ELFMAINX
|
||||
00000200 R_ARM_PC24 ELFMAINX
|
||||
0000020c R_ARM_PC24 ELFMAINX
|
||||
0000021c R_ARM_PC24 ELFMAINX
|
||||
00000220 R_ARM_PC24 ELFMAINX
|
||||
00000228 R_ARM_PC24 ELFMAINX
|
||||
00000230 R_ARM_PC24 ELFMAINX
|
||||
00000234 R_ARM_PC24 ELFMAINX
|
||||
00000250 R_ARM_PC24 ELFMAINX
|
||||
00000254 R_ARM_PC24 ELFMAINX
|
||||
|
||||
RELOCATION RECORDS FOR [ELFMAINZ]:
|
||||
OFFSET TYPE VALUE
|
||||
|
||||
Reference in New Issue
Block a user