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:
parent
5ed9c66ed9
commit
cb5f590e10
|
@ -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 //}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user