John Reiser
|
9dfc8f573c
|
Avoid 0==nbucket
https://github.com/upx/upx/issues/393
modified: p_lx_elf.cpp
|
2020-07-23 05:44:18 -07:00 |
|
John Reiser
|
4e2fdb464a
|
Defend against bad PT_DYNAMIC
https://github.com/upx/upx/issues/391
modified: p_lx_elf.cpp
modified: p_lx_elf.h
|
2020-07-23 05:09:52 -07:00 |
|
John Reiser
|
73b854874e
|
Defend against junk PT_DYNAMIC
https://github.com/upx/upx/issues/390
modified: p_lx_elf.cpp
|
2020-07-23 04:14:34 -07:00 |
|
John Reiser
|
0016512df1
|
Unpack: Phdrs must be within expansion of first compressed block
https://github.com/upx/upx/issues/388
modified: p_lx_elf.cpp
|
2020-07-22 19:34:27 -07:00 |
|
John Reiser
|
527139978a
|
DT_HASH chains might be trimmed (64-bit, too)
https://github.com/upx/upx/issues/383
modified: p_lx_elf.cpp
|
2020-06-08 12:37:53 -07:00 |
|
John Reiser
|
47bc68fa6b
|
DT_HASH chains might be trimmed
https://github.com/upx/upx/issues/383
modified: p_lx_elf.cpp
|
2020-06-07 19:35:49 -07:00 |
|
John Reiser
|
963392a5ae
|
De-compress (upx -d) for ELF pageholes
modified: p_lx_elf.cpp
|
2020-05-30 13:54:11 -07:00 |
|
John Reiser
|
a817ed0692
|
uintptr_t for MSVC
modified: p_lx_elf.cpp
|
2020-05-23 11:02:46 -07:00 |
|
John Reiser
|
828a6cf07b
|
invert_pt_dynamic() more checking
https://github.com/upx/upx/issues/378
https://github.com/upx/upx/issues/379
modified: p_lx_elf.cpp
|
2020-05-23 10:51:03 -07:00 |
|
John Reiser
|
962c35aa08
|
More checking of DT_GNU_HASH and DT_HASH tables
https://github.com/upx/upx/issues/381
modified: p_lx_elf.cpp
|
2020-05-23 10:04:38 -07:00 |
|
John Reiser
|
b327645e64
|
More checking of DT_GNU_HASH and DT_HASH tables
https://github.com/upx/upx/issues/380
modified: p_lx_elf.cpp
|
2020-05-23 09:41:41 -07:00 |
|
John Reiser
|
6272152dfe
|
phdr[C_BASE].p_memsz for ET_EXEC
modified: p_lx_elf.cpp
|
2020-05-25 14:11:46 -07:00 |
|
John Reiser
|
80c27e0822
|
arm.v4a works: ELF layout for page holes
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/arm.v4a-linux.elf-entry.h
modified: stub/arm.v4a-linux.elf-fold.h
modified: stub/arm.v5a-linux.elf-entry.h
modified: stub/arm.v5a-linux.elf-fold.h
modified: stub/armeb.v4a-linux.elf-entry.h
modified: stub/armeb.v4a-linux.elf-fold.h
modified: stub/i386-linux.elf-fold.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/tmp/arm.v4a-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v4a-linux.elf-fold.map
modified: stub/tmp/arm.v5a-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v5a-linux.elf-fold.map
modified: stub/tmp/armeb.v4a-linux.elf-entry.bin.dump
modified: stub/tmp/armeb.v4a-linux.elf-fold.map
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/mips.r3000-linux.elf-fold.map
modified: stub/tmp/mipsel.r3000-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
|
2020-05-14 15:10:40 -07:00 |
|
John Reiser
|
926481dace
|
ELF layout for page holes when runtime PAGE_SIZE < .p_align
amd64 works
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
modified: Makefile
modified: stub/amd64-linux.elf-entry.h
modified: stub/amd64-linux.elf-fold.h
modified: stub/amd64-linux.shlib-init.h
modified: stub/arm64-linux.elf-fold.h
modified: stub/powerpc64-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/src/amd64-linux.shlib-init.S
modified: stub/tmp/amd64-linux.elf-entry.bin.dump
modified: stub/tmp/amd64-linux.elf-fold.map
modified: stub/tmp/amd64-linux.shlib-init.bin.dump
modified: stub/tmp/arm64-linux.elf-fold.map
modified: stub/tmp/powerpc64-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
|
2020-05-09 08:05:05 -07:00 |
|
John Reiser
|
a3b2cde58d
|
max_bucket versus symbias
modified: p_lx_elf.cpp
|
2020-04-17 17:09:47 -07:00 |
|
John Reiser
|
30f37d2cc6
|
DT_GNU_HASH check the buckets
https://github.com/upx/upx/issues/365
modified: p_lx_elf.cpp
|
2020-04-17 16:49:54 -07:00 |
|
John Reiser
|
c4d61dd9fe
|
--preserve-build-id for ET_EXEC
https://github.com/upx/upx/issues/371
modified: p_lx_elf.cpp
|
2020-04-17 16:17:29 -07:00 |
|
John Reiser
|
210870f840
|
invert_pt_dynamic() DT_GNU_HASH trims hash array for Rust and Android
https://github.com/upx/upx/issues/369
modified: p_lx_elf.cpp
|
2020-04-15 17:29:03 -07:00 |
|
John Reiser
|
4cb4bd38eb
|
check_pt_dynamic() checks PT_DYNAMIC.p_memsz
https://github.com/upx/upx/issues/368
modified: p_lx_elf.cpp
|
2020-04-15 14:24:05 -07:00 |
|
John Reiser
|
58c6d19f7c
|
unpack() checks PT_DYNAMIC.p_filesz
https://github.com/upx/upx/issues/367
modified: p_lx_elf.cpp
|
2020-04-15 14:12:06 -07:00 |
|
John Reiser
|
c67a5d677c
|
More bounds checking for DT_INIT (etc.) in shlib
https://github.com/upx/upx/issues/364
modified: p_lx_elf.cpp
|
2020-04-13 17:08:49 -07:00 |
|
John Reiser
|
740b4ff865
|
ELF shared lib: PT_DYNAMIC might be below xct_off, such as MIPS
https://github.com/upx/upx/issues/298
modified: p_lx_elf.cpp
|
2020-02-15 15:04:44 -08:00 |
|
John Reiser
|
342b1b7d6c
|
EM_PPC64 forgot get_te16(&...) for ehdri.e_machine
So compression on big-endian host was not correct.
https://github.com/upx/upx/issues/334
modified: p_lx_elf.cpp
|
2020-01-19 18:48:50 -08:00 |
|
John Reiser
|
e2f60adc95
|
Detect 0==DT_SYMTAB in invert_pt_dynamic()
https://github.com/upx/upx/issues/333
modified: p_lx_elf.cpp
|
2020-01-14 18:45:52 -08:00 |
|
John Reiser
|
1bb93d4fce
|
Detect bad e_shstrtab better.
https://github.com/upx/upx/issues/332
modified: p_lx_elf.cpp
|
2020-01-13 17:26:31 -08:00 |
|
John Reiser
|
eb90eab632
|
Detect bogus DT_SYMENT.
https://github.com/upx/upx/issues/331
modified: p_lx_elf.cpp
|
2020-01-13 17:10:02 -08:00 |
|
Markus F.X.J. Oberhumer
|
92f072cf70
|
Silence some compiler warnings.
|
2020-01-08 04:49:27 +01:00 |
|
Markus F.X.J. Oberhumer
|
d1174385ef
|
Welcome 2020.
|
2020-01-08 04:13:28 +01:00 |
|
John Reiser
|
cb5f590e10
|
More hacking Android shlib.
https://github.com/upx/upx/issues/318
modified: p_elf_enum.h
modified: p_lx_elf.cpp
|
2019-12-12 20:23:33 -08:00 |
|
John Reiser
|
5ed9c66ed9
|
Hack Android shared libraries on arm64.
https://github.com/upx/upx/issues/318
modified: p_lx_elf.cpp
|
2019-12-12 17:05:50 -08:00 |
|
John Reiser
|
b8f52d14f4
|
user_init_va on AARCH64
https://github.com/upx/upx/issues/318 (work-in-progress)
modified: p_elf_enum.h
modified: p_lx_elf.cpp
|
2019-12-04 14:26:46 -08:00 |
|
John Reiser
|
5d295c24f0
|
DT_NEEDED can be duplicated
modified: p_lx_elf.cpp
|
2019-11-26 19:33:27 -08:00 |
|
John Reiser
|
8be9da8280
|
Avoid bogus values in PT_DYNAMIC segment.
Detect duplicate DT_*.
Detect out-of-bounds hashtab and gashtab.
Detect missing DT_REL, DT_RELA.
Detect out-of-bounds d_val.
https://github.com/upx/upx/issues/317
modified: p_lx_elf.cpp
|
2019-11-23 20:06:14 -08:00 |
|
John Reiser
|
23570097cf
|
MSVC barfs on {unsigned == long int) [because sizeof() is the same!]
https://github.com/upx/upx/issues/283
modified: p_lx_elf.cpp
|
2019-07-14 13:39:09 -07:00 |
|
John Reiser
|
593a69ce25
|
PT_LOAD[0] with ElfXX.Ehdr only
https://github.com/upx/upx/issues/283
modified: p_lx_elf.cpp
|
2019-07-14 13:08:56 -07:00 |
|
John Reiser
|
49766388bc
|
Fix compression and de-compression of Android shared libraries
Handle relocation (and DT_INIT_ARRAY[0]==NULL) when !DT_INIT.
Warn about missing --android-shlib if (ET_DYN && !DF_1_PIE && Arm*).
modified: p_lx_elf.cpp
modified: p_lx_elf.h
https://github.com/upx/upx/issues/265
https://github.com/upx/upx/issues/262
https://github.com/upx/upx/issues/259
https://github.com/upx/upx/issues/243
https://github.com/upx/upx/issues/229
https://github.com/upx/upx/issues/220
|
2019-04-14 19:59:08 -07:00 |
|
John Reiser
|
f23267bddd
|
Fix rotate+lop of PT_INTERP in shared library
Found while working on https://github.com/upx/upx/issues/262
but probably does not help that bug.
modified: p_lx_elf.cpp
|
2019-04-01 21:35:53 -07:00 |
|
John Reiser
|
d4e2d7e8a8
|
arm64 (aarch64) and PAGE_SIZE > 4KiB
Future: use prctl(PR_SET_MM, PR_SET_MM_START_BRK, addr)
https://github.com/upx/upx/issues/254
modified: p_lx_elf.cpp
modified: stub/src/amd64-linux.elf-main.c
|
2019-03-01 20:31:41 -08:00 |
|
Markus F.X.J. Oberhumer
|
3667fa4e44
|
Welcome 2019.
|
2019-02-15 11:04:09 +01:00 |
|
John Reiser
|
d1c80154f6
|
SHT_NOTE with ~SHF_ALLOC; as for 'gold' linker version
https://github.com/upx/upx/issues/243
modified: p_lx_elf.cpp
|
2019-02-12 21:13:24 -08:00 |
|
John Reiser
|
3c2bfc742e
|
g++ -Wsign-compare is not as picky as MSVC warning C4018: '<': signed/unsigned mismatch
https://github.com/upx/upx/issues/247
modified: p_lx_elf.cpp
|
2019-02-09 08:04:58 -08:00 |
|
John Reiser
|
d60fef753f
|
check_pt_load(); u32_t, u64_t; (off_t) is not unsigned!
https://github.com/upx/upx/issues/247
modified: p_lx_elf.cpp
modified: p_lx_elf.h
|
2019-02-01 19:31:57 -08:00 |
|
John Reiser
|
9719a7dd56
|
MSVC pettiness
https://github.com/upx/upx/issues/238
modified: p_lx_elf.cpp
|
2018-12-26 18:38:30 -08:00 |
|
John Reiser
|
c097233bf3
|
Stronger checks for DT_HASH, DT_GNU_HASH
https://github.com/upx/upx/issues/238
modified: p_lx_elf.cpp
|
2018-12-26 13:00:20 -08:00 |
|
John Reiser
|
69a583281f
|
MemBuffer::subref() for 64-bit offsets; better diagnosis for bad .e_shoff
https://github.com/upx/upx/issues/235 (POC14)
modified: mem.cpp
modified: mem.h
modified: p_lx_elf.cpp
|
2018-12-16 16:00:15 -08:00 |
|
John Reiser
|
8e90c9af2b
|
Corner cases for e_shnum vs e_shstrndx
modified: p_lx_elf.cpp
|
2018-12-16 15:36:51 -08:00 |
|
John Reiser
|
a784284b7f
|
Check user_init_off. Also remove '\n' from error messages.
https://github.com/upx/upx/issues/235 POC11
modified: p_lx_elf.cpp
|
2018-12-16 12:14:22 -08:00 |
|
John Reiser
|
0509edf08d
|
ElfXX_Sym.st_name is always 32 bits
modified: p_lx_elf.cpp
modified: p_lx_elf.h
|
2018-12-16 11:32:58 -08:00 |
|
John Reiser
|
7ca20f424f
|
Typos
modified: p_lx_elf.cpp
|
2018-12-15 21:17:26 -08:00 |
|
John Reiser
|
b74d51c2a8
|
More checking of e_shstrndx
https://github.com/upx/upx/issues/235 POC6
modified: p_lx_elf.cpp
|
2018-12-15 21:12:15 -08:00 |
|