1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

More hacking Android shlib.

https://github.com/upx/upx/issues/318
	modified:   p_elf_enum.h
	modified:   p_lx_elf.cpp
This commit is contained in:
John Reiser 2019-12-12 20:23:33 -08:00
parent 5ed9c66ed9
commit cb5f590e10
2 changed files with 9 additions and 0 deletions

View File

@ -243,7 +243,12 @@
R_PPC64_JMP_SLOT = R_PPC_JMP_SLOT, R_PPC64_JMP_SLOT = R_PPC_JMP_SLOT,
R_X86_64_JUMP_SLOT = 7 R_X86_64_JUMP_SLOT = 7
, R_ARM_ABS32 = 2
, R_ARM_GLOB_DAT = 21
, R_AARCH64_ABS64 = 257 , R_AARCH64_ABS64 = 257
, R_AARCH64_GLOB_DAT = 1025
}; };
#endif //} #endif //}

View File

@ -3269,6 +3269,8 @@ void PackLinuxElf32::pack1(OutputFile *fo, Filter & /*ft*/)
r_type, -1 + (sh_size / sh_entsize) - k); r_type, -1 + (sh_size / sh_entsize) - k);
throwCantPack(msg); throwCantPack(msg);
} break; } break;
case R_ARM_ABS32: // FALL THROUGH
case R_ARM_GLOB_DAT: // FALL THROUGH
case R_ARM_RELATIVE: { case R_ARM_RELATIVE: {
if (xct_off <= w) { if (xct_off <= w) {
set_te32(&file_image[d], asl_delta + w); set_te32(&file_image[d], asl_delta + w);
@ -3642,6 +3644,8 @@ void PackLinuxElf64::pack1(OutputFile *fo, Filter & /*ft*/)
r_type, -1 + (unsigned)(sh_size / sh_entsize) - k); r_type, -1 + (unsigned)(sh_size / sh_entsize) - k);
throwCantPack(msg); throwCantPack(msg);
} break; } break;
case R_AARCH64_ABS64: // FALL THROUGH
case R_AARCH64_GLOB_DAT: // FALL THROUGH
case R_AARCH64_RELATIVE: { case R_AARCH64_RELATIVE: {
if (xct_off <= r_addend) { if (xct_off <= r_addend) {
set_te64(&rela->r_addend, asl_delta + r_addend); set_te64(&rela->r_addend, asl_delta + r_addend);