mirror of
https://github.com/radareorg/radare2
synced 2026-08-22 20:23:32 -04:00
Add support for the android-specific ELF relocations ##bin
This commit is contained in:
parent
4f0fef3d1b
commit
b81521065a
6 changed files with 489 additions and 3 deletions
|
|
@ -527,6 +527,9 @@ static void set_default_value_dynamic_info(ELFOBJ *eo) {
|
|||
di->dt_ppc64_glink = R_BIN_ELF_ADDR_MAX;
|
||||
di->dt_aarch64_pac_plt = false;
|
||||
di->dt_crel = R_BIN_ELF_ADDR_MAX;
|
||||
di->dt_android_rel = R_BIN_ELF_ADDR_MAX;
|
||||
di->dt_android_relsz = 0;
|
||||
di->dt_android_is_rela = false;
|
||||
di->dt_bind_now = false;
|
||||
di->dt_flags = R_BIN_ELF_XWORD_MAX;
|
||||
di->dt_flags_1 = R_BIN_ELF_XWORD_MAX;
|
||||
|
|
@ -647,6 +650,18 @@ static void fill_dynamic_entries(ELFOBJ *eo, ut64 loaded_offset, ut64 dyn_size)
|
|||
case DT_CREL:
|
||||
di->dt_crel = d.d_un.d_ptr;
|
||||
break;
|
||||
case DT_ANDROID_REL:
|
||||
di->dt_android_rel = d.d_un.d_ptr;
|
||||
di->dt_android_is_rela = false;
|
||||
break;
|
||||
case DT_ANDROID_RELA:
|
||||
di->dt_android_rel = d.d_un.d_ptr;
|
||||
di->dt_android_is_rela = true;
|
||||
break;
|
||||
case DT_ANDROID_RELSZ:
|
||||
case DT_ANDROID_RELASZ:
|
||||
di->dt_android_relsz = d.d_un.d_val;
|
||||
break;
|
||||
case DT_BIND_NOW:
|
||||
di->dt_bind_now = true;
|
||||
break;
|
||||
|
|
@ -3460,9 +3475,29 @@ static size_t get_num_relocs_mips_got(ELFOBJ *eo) {
|
|||
return di->dt_mips_symtabno - di->dt_mips_gotsym;
|
||||
}
|
||||
|
||||
// the APS2 header stores the total reloc count as its first sleb128 field
|
||||
static size_t get_num_relocs_android(ELFOBJ *eo) {
|
||||
const RBinElfDynamicInfo *di = &eo->dyn_info;
|
||||
if (di->dt_android_rel == R_BIN_ELF_ADDR_MAX || di->dt_android_relsz < 5) {
|
||||
return 0;
|
||||
}
|
||||
ut64 paddr = Elf_(v2p) (eo, di->dt_android_rel);
|
||||
if (paddr == UT64_MAX) {
|
||||
return 0;
|
||||
}
|
||||
ut8 hdr[16] = {0};
|
||||
int n = r_buf_read_at (eo->b, paddr, hdr, sizeof (hdr));
|
||||
if (n < 5 || memcmp (hdr, "APS2", 4)) {
|
||||
return 0;
|
||||
}
|
||||
st64 count = 0;
|
||||
read_sleb128 (hdr + 4, n - 4, &count, NULL);
|
||||
return (count > 0)? (size_t)count: 0;
|
||||
}
|
||||
|
||||
static size_t get_num_relocs_dynamic(ELFOBJ *eo) {
|
||||
const RBinElfDynamicInfo *di = &eo->dyn_info;
|
||||
size_t res = 0;
|
||||
size_t res = get_num_relocs_android (eo);
|
||||
|
||||
if (di->dt_relaent) {
|
||||
res += di->dt_relasz / di->dt_relaent;
|
||||
|
|
@ -3549,6 +3584,109 @@ static size_t get_num_relocs_approx(ELFOBJ *eo) {
|
|||
return total;
|
||||
}
|
||||
|
||||
// Android packed relocations (APS2): a delta+group encoded RELA/REL stream.
|
||||
// See bionic's packed_reloc_iterator for the reference decoder.
|
||||
#define ANDROID_GROUPED_BY_INFO_FLAG 1
|
||||
#define ANDROID_GROUPED_BY_OFFSET_DELTA_FLAG 2
|
||||
#define ANDROID_GROUPED_BY_ADDEND_FLAG 4
|
||||
#define ANDROID_GROUP_HAS_ADDEND_FLAG 8
|
||||
|
||||
static size_t populate_relocs_record_from_android(ELFOBJ *eo, size_t pos, size_t num_relocs) {
|
||||
const RBinElfDynamicInfo *di = &eo->dyn_info;
|
||||
if (di->dt_android_rel == R_BIN_ELF_ADDR_MAX || di->dt_android_relsz < 5) {
|
||||
return pos;
|
||||
}
|
||||
ut64 paddr = Elf_(v2p) (eo, di->dt_android_rel);
|
||||
if (paddr == UT64_MAX) {
|
||||
return pos;
|
||||
}
|
||||
const int size = (int)di->dt_android_relsz;
|
||||
ut8 *buf = malloc (size);
|
||||
if (!buf) {
|
||||
return pos;
|
||||
}
|
||||
if (r_buf_read_at (eo->b, paddr, buf, size) != size || memcmp (buf, "APS2", 4)) {
|
||||
free (buf);
|
||||
return pos;
|
||||
}
|
||||
const bool is_rela = di->dt_android_is_rela;
|
||||
int cur = 4;
|
||||
st64 v = 0;
|
||||
// pop one sleb128 out of the stream, jumping to `done` when it runs dry
|
||||
#define POP(dst) do { \
|
||||
int _rb = 0; \
|
||||
if (cur >= size) { goto done; } \
|
||||
read_sleb128 (buf + cur, size - cur, &v, &_rb); \
|
||||
if (_rb < 1) { goto done; } \
|
||||
cur += _rb; (dst) = v; \
|
||||
} while (0)
|
||||
st64 relocation_count = 0, r_offset = 0, r_addend = 0, idx = 0;
|
||||
POP (relocation_count);
|
||||
POP (r_offset);
|
||||
while (idx < relocation_count) {
|
||||
st64 group_size = 0, group_flags = 0, group_offset_delta = 0, group_info = 0;
|
||||
POP (group_size);
|
||||
POP (group_flags);
|
||||
const bool g_by_offset = group_flags & ANDROID_GROUPED_BY_OFFSET_DELTA_FLAG;
|
||||
const bool g_by_info = group_flags & ANDROID_GROUPED_BY_INFO_FLAG;
|
||||
const bool g_by_addend = group_flags & ANDROID_GROUPED_BY_ADDEND_FLAG;
|
||||
const bool g_has_addend = group_flags & ANDROID_GROUP_HAS_ADDEND_FLAG;
|
||||
if (g_by_offset) {
|
||||
POP (group_offset_delta);
|
||||
}
|
||||
if (g_by_info) {
|
||||
POP (group_info);
|
||||
}
|
||||
if (g_has_addend && g_by_addend) {
|
||||
st64 delta = 0;
|
||||
POP (delta);
|
||||
r_addend += delta;
|
||||
}
|
||||
st64 g;
|
||||
for (g = 0; g < group_size && idx < relocation_count; g++, idx++) {
|
||||
if (pos >= num_relocs) {
|
||||
goto done;
|
||||
}
|
||||
if (g_by_offset) {
|
||||
r_offset += group_offset_delta;
|
||||
} else {
|
||||
st64 delta = 0;
|
||||
POP (delta);
|
||||
r_offset += delta;
|
||||
}
|
||||
st64 info = group_info;
|
||||
if (!g_by_info) {
|
||||
POP (info);
|
||||
}
|
||||
if (g_has_addend) {
|
||||
if (!g_by_addend) {
|
||||
st64 delta = 0;
|
||||
POP (delta);
|
||||
r_addend += delta;
|
||||
}
|
||||
} else {
|
||||
r_addend = 0;
|
||||
}
|
||||
RBinElfReloc *reloc = RVecRBinElfReloc_emplace_back (&eo->g_relocs);
|
||||
memset (reloc, 0, sizeof (*reloc));
|
||||
reloc->mode = is_rela? DT_RELA: DT_REL;
|
||||
reloc->offset = r_offset;
|
||||
reloc->rva = r_offset;
|
||||
reloc->sym = ELF_R_SYM ((Elf_(Xword))info);
|
||||
reloc->type = ELF_R_TYPE ((Elf_(Xword))info);
|
||||
reloc->addend = is_rela? r_addend: 0;
|
||||
int index = (int)RVecRBinElfReloc_length (&eo->g_relocs) - 1;
|
||||
ht_uu_insert (eo->rel_cache, reloc->sym + 1, index + 1);
|
||||
fix_rva_and_offset_exec_file (eo, reloc);
|
||||
pos++;
|
||||
}
|
||||
}
|
||||
done:
|
||||
#undef POP
|
||||
free (buf);
|
||||
return pos;
|
||||
}
|
||||
|
||||
static size_t populate_relocs_record_from_dynamic(ELFOBJ *eo, size_t pos, size_t num_relocs) {
|
||||
const RBinElfDynamicInfo *di = &eo->dyn_info;
|
||||
const size_t size = get_size_rel_mode (di->dt_pltrel);
|
||||
|
|
@ -3693,6 +3831,12 @@ static ut64 get_next_not_analysed_offset(ELFOBJ *eo, size_t section_vaddr, size_
|
|||
&& gvaddr >= di->dt_relr && gvaddr < di->dt_relr + di->dt_relrsz) {
|
||||
return di->dt_relr + di->dt_relrsz - section_vaddr;
|
||||
}
|
||||
// the APS2 packed stream is decoded from the dynamic pass, so a .rela.dyn
|
||||
// section overlapping it must be skipped here or it reparses as raw RELA
|
||||
if (di->dt_android_rel != R_BIN_ELF_ADDR_MAX
|
||||
&& gvaddr >= di->dt_android_rel && gvaddr < di->dt_android_rel + di->dt_android_relsz) {
|
||||
return di->dt_android_rel + di->dt_android_relsz - section_vaddr;
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
|
@ -3821,6 +3965,7 @@ static bool populate_relocs_record(ELFOBJ *eo) {
|
|||
}
|
||||
|
||||
size_t i = 0;
|
||||
i = populate_relocs_record_from_android (eo, i, num_relocs);
|
||||
i = populate_relocs_record_from_dynamic (eo, i, num_relocs);
|
||||
i = populate_relocs_record_from_mips_got (eo, i, num_relocs);
|
||||
i = populate_relocs_record_from_section (eo, i, num_relocs);
|
||||
|
|
|
|||
|
|
@ -112,6 +112,9 @@ typedef struct Elf_(dynamic_info) {
|
|||
Elf_(Xword) dt_mips_symtabno;
|
||||
Elf_(Addr) dt_ppc64_glink; /* PPC64 ELFv1: DT_PPC64_GLINK lazy PLT resolver anchor */
|
||||
Elf_(Addr) dt_crel; // Address of Crel relocs
|
||||
Elf_(Addr) dt_android_rel; // Address of Android packed (APS2) relocs
|
||||
Elf_(Xword) dt_android_relsz; // Size in bytes of the packed reloc stream
|
||||
bool dt_android_is_rela; // true for DT_ANDROID_RELA, false for DT_ANDROID_REL
|
||||
bool dt_bind_now;
|
||||
bool dt_aarch64_pac_plt; /* AArch64 -z pac-plt: 24 byte plt entries */
|
||||
Elf_(Xword) dt_flags;
|
||||
|
|
|
|||
|
|
@ -882,6 +882,11 @@ typedef struct {
|
|||
#define DT_RELR 36
|
||||
#define DT_RELRENT 37
|
||||
#define DT_NUM 38 /* Number used */
|
||||
/* Android packed relocations (APS2 format) */
|
||||
#define DT_ANDROID_REL 0x6000000f
|
||||
#define DT_ANDROID_RELSZ 0x60000010
|
||||
#define DT_ANDROID_RELA 0x60000011
|
||||
#define DT_ANDROID_RELASZ 0x60000012
|
||||
#define DT_LOOS 0x6000000d /* Start of OS-specific */
|
||||
#define DT_HIOS 0x6ffff000 /* End of OS-specific */
|
||||
#define DT_LOPROC 0x70000000 /* Start of processor-specific */
|
||||
|
|
|
|||
|
|
@ -12,6 +12,286 @@ CMDS=ir
|
|||
EXPECT=<<EOF
|
||||
vaddr paddr type ntype name
|
||||
---------------------------------------
|
||||
0x0000d008 0x0000d008 ADD_64 1027 0x000093a8
|
||||
0x0000d010 0x0000d010 ADD_64 1027 0x000093b0
|
||||
0x0000d018 0x0000d018 ADD_64 1027 0x000002cc
|
||||
0x0000d020 0x0000d020 ADD_64 1027 0x0000a2c0
|
||||
0x0000d028 0x0000d028 ADD_64 1027 0x00009d15
|
||||
0x0000d030 0x0000d030 ADD_64 1027 0x000003e4
|
||||
0x0000d038 0x0000d038 ADD_64 1027 0x0000a3f5
|
||||
0x0000d040 0x0000d040 ADD_64 1027 0x000094b0
|
||||
0x0000d048 0x0000d048 ADD_64 1027 0x00000458
|
||||
0x0000d050 0x0000d050 ADD_64 1027 0x0000a599
|
||||
0x0000d058 0x0000d058 ADD_64 1027 0x00008eab
|
||||
0x0000d060 0x0000d060 ADD_64 1027 0x00000468
|
||||
0x0000d068 0x0000d068 ADD_64 1027 0x000098ae
|
||||
0x0000d070 0x0000d070 ADD_64 1027 0x000089a9
|
||||
0x0000d078 0x0000d078 ADD_64 1027 0x0000047c
|
||||
0x0000d080 0x0000d080 ADD_64 1027 0x000094b4
|
||||
0x0000d088 0x0000d088 ADD_64 1027 0x0000acc2
|
||||
0x0000d090 0x0000d090 ADD_64 1027 0x00000498
|
||||
0x0000d098 0x0000d098 ADD_64 1027 0x0000a403
|
||||
0x0000d0a0 0x0000d0a0 ADD_64 1027 0x00008ff8
|
||||
0x0000d0a8 0x0000d0a8 ADD_64 1027 0x00000578
|
||||
0x0000d0b0 0x0000d0b0 ADD_64 1027 0x0000a41b
|
||||
0x0000d0b8 0x0000d0b8 ADD_64 1027 0x0000acc2
|
||||
0x0000d0c0 0x0000d0c0 ADD_64 1027 0x0000060c
|
||||
0x0000d0c8 0x0000d0c8 ADD_64 1027 0x00008660
|
||||
0x0000d0d0 0x0000d0d0 ADD_64 1027 0x00008eab
|
||||
0x0000d0d8 0x0000d0d8 ADD_64 1027 0x000006d8
|
||||
0x0000d0e0 0x0000d0e0 ADD_64 1027 0x000097f3
|
||||
0x0000d0e8 0x0000d0e8 ADD_64 1027 0x00008eab
|
||||
0x0000d0f0 0x0000d0f0 ADD_64 1027 0x000006ec
|
||||
0x0000d0f8 0x0000d0f8 ADD_64 1027 0x00008675
|
||||
0x0000d100 0x0000d100 ADD_64 1027 0x00008810
|
||||
0x0000d108 0x0000d108 ADD_64 1027 0x00000700
|
||||
0x0000d110 0x0000d110 ADD_64 1027 0x000098bf
|
||||
0x0000d118 0x0000d118 ADD_64 1027 0x00008eab
|
||||
0x0000d120 0x0000d120 ADD_64 1027 0x000007dc
|
||||
0x0000d128 0x0000d128 ADD_64 1027 0x00009273
|
||||
0x0000d130 0x0000d130 ADD_64 1027 0x0000abb5
|
||||
0x0000d138 0x0000d138 ADD_64 1027 0x000007f0
|
||||
0x0000d140 0x0000d140 ADD_64 1027 0x00008c68
|
||||
0x0000d148 0x0000d148 ADD_64 1027 0x00008eab
|
||||
0x0000d150 0x0000d150 ADD_64 1027 0x00000808
|
||||
0x0000d158 0x0000d158 ADD_64 1027 0x00008686
|
||||
0x0000d160 0x0000d160 ADD_64 1027 0x0000abb5
|
||||
0x0000d168 0x0000d168 ADD_64 1027 0x0000081c
|
||||
0x0000d170 0x0000d170 ADD_64 1027 0x0000a2ca
|
||||
0x0000d178 0x0000d178 ADD_64 1027 0x000089b0
|
||||
0x0000d180 0x0000d180 ADD_64 1027 0x00000834
|
||||
0x0000d188 0x0000d188 ADD_64 1027 0x00008c7a
|
||||
0x0000d190 0x0000d190 ADD_64 1027 0x0000a2e0
|
||||
0x0000d198 0x0000d198 ADD_64 1027 0x0000090c
|
||||
0x0000d1a0 0x0000d1a0 ADD_64 1027 0x0000aa2b
|
||||
0x0000d1a8 0x0000d1a8 ADD_64 1027 0x0000a742
|
||||
0x0000d1b0 0x0000d1b0 ADD_64 1027 0x00000e54
|
||||
0x0000d1b8 0x0000d1b8 ADD_64 1027 0x000091a2
|
||||
0x0000d1c0 0x0000d1c0 ADD_64 1027 0x000094cb
|
||||
0x0000d1c8 0x0000d1c8 ADD_64 1027 0x0000113c
|
||||
0x0000d1d0 0x0000d1d0 ADD_64 1027 0x00008dbf
|
||||
0x0000d1d8 0x0000d1d8 ADD_64 1027 0x00008eb0
|
||||
0x0000d1e0 0x0000d1e0 ADD_64 1027 0x00001160
|
||||
0x0000d1e8 0x0000d1e8 ADD_64 1027 0x0000a42f
|
||||
0x0000d1f0 0x0000d1f0 ADD_64 1027 0x000098d0
|
||||
0x0000d1f8 0x0000d1f8 ADD_64 1027 0x00001184
|
||||
0x0000d200 0x0000d200 ADD_64 1027 0x0000882a
|
||||
0x0000d208 0x0000d208 ADD_64 1027 0x00009d19
|
||||
0x0000d210 0x0000d210 ADD_64 1027 0x0000119c
|
||||
0x0000d218 0x0000d218 ADD_64 1027 0x0000a43d
|
||||
0x0000d220 0x0000d220 ADD_64 1027 0x0000acc9
|
||||
0x0000d228 0x0000d228 ADD_64 1027 0x000011c4
|
||||
0x0000d230 0x0000d230 ADD_64 1027 0x000094d4
|
||||
0x0000d238 0x0000d238 ADD_64 1027 0x00009e36
|
||||
0x0000d240 0x0000d240 ADD_64 1027 0x00001548
|
||||
0x0000d248 0x0000d248 ADD_64 1027 0x0000a750
|
||||
0x0000d250 0x0000d250 ADD_64 1027 0x0000908c
|
||||
0x0000d258 0x0000d258 ADD_64 1027 0x000016dc
|
||||
0x0000d260 0x0000d260 ADD_64 1027 0x00008eb9
|
||||
0x0000d268 0x0000d268 ADD_64 1027 0x00008695
|
||||
0x0000d270 0x0000d270 ADD_64 1027 0x00001724
|
||||
0x0000d278 0x0000d278 ADD_64 1027 0x00008dd3
|
||||
0x0000d280 0x0000d280 ADD_64 1027 0x00009f72
|
||||
0x0000d288 0x0000d288 ADD_64 1027 0x00001748
|
||||
0x0000d290 0x0000d290 ADD_64 1027 0x0000a75e
|
||||
0x0000d298 0x0000d298 ADD_64 1027 0x00009f72
|
||||
0x0000d2a0 0x0000d2a0 ADD_64 1027 0x00001860
|
||||
0x0000d2a8 0x0000d2a8 ADD_64 1027 0x00009098
|
||||
0x0000d2b0 0x0000d2b0 ADD_64 1027 0x00009f72
|
||||
0x0000d2b8 0x0000d2b8 ADD_64 1027 0x00001924
|
||||
0x0000d2c0 0x0000d2c0 ADD_64 1027 0x0000a1c0
|
||||
0x0000d2c8 0x0000d2c8 ADD_64 1027 0x00009d22
|
||||
0x0000d2d0 0x0000d2d0 ADD_64 1027 0x00001a3c
|
||||
0x0000d2d8 0x0000d2d8 ADD_64 1027 0x00009e53
|
||||
0x0000d2e0 0x0000d2e0 ADD_64 1027 0x00009d22
|
||||
0x0000d2e8 0x0000d2e8 ADD_64 1027 0x00001b6c
|
||||
0x0000d2f0 0x0000d2f0 ADD_64 1027 0x0000a788
|
||||
0x0000d2f8 0x0000d2f8 ADD_64 1027 0x00009b9e
|
||||
0x0000d300 0x0000d300 ADD_64 1027 0x00001c74
|
||||
0x0000d308 0x0000d308 ADD_64 1027 0x0000869e
|
||||
0x0000d310 0x0000d310 ADD_64 1027 0x0000980a
|
||||
0x0000d318 0x0000d318 ADD_64 1027 0x00001c90
|
||||
0x0000d320 0x0000d320 ADD_64 1027 0x0000a5a8
|
||||
0x0000d328 0x0000d328 ADD_64 1027 0x000098d0
|
||||
0x0000d330 0x0000d330 ADD_64 1027 0x00001d34
|
||||
0x0000d338 0x0000d338 ADD_64 1027 0x00009f93
|
||||
0x0000d340 0x0000d340 ADD_64 1027 0x00009d41
|
||||
0x0000d348 0x0000d348 ADD_64 1027 0x00001d4c
|
||||
0x0000d350 0x0000d350 ADD_64 1027 0x0000972d
|
||||
0x0000d358 0x0000d358 ADD_64 1027 0x000089b8
|
||||
0x0000d360 0x0000d360 ADD_64 1027 0x00002520
|
||||
0x0000d368 0x0000d368 ADD_64 1027 0x0000aa42
|
||||
0x0000d370 0x0000d370 ADD_64 1027 0x000098d6
|
||||
0x0000d378 0x0000d378 ADD_64 1027 0x000025c8
|
||||
0x0000d380 0x0000d380 ADD_64 1027 0x0000aa42
|
||||
0x0000d388 0x0000d388 ADD_64 1027 0x00009ba5
|
||||
0x0000d390 0x0000d390 ADD_64 1027 0x00002e34
|
||||
0x0000d398 0x0000d398 ADD_64 1027 0x00008c8b
|
||||
0x0000d3a0 0x0000d3a0 ADD_64 1027 0x000094ed
|
||||
0x0000d3a8 0x0000d3a8 ADD_64 1027 0x00002e94
|
||||
0x0000d3b0 0x0000d3b0 ADD_64 1027 0x00008c8b
|
||||
0x0000d3b8 0x0000d3b8 ADD_64 1027 0x00008ad8
|
||||
0x0000d3c0 0x0000d3c0 ADD_64 1027 0x00003738
|
||||
0x0000d3c8 0x0000d3c8 ADD_64 1027 0x0000900e
|
||||
0x0000d3d0 0x0000d3d0 ADD_64 1027 0x000098f8
|
||||
0x0000d3d8 0x0000d3d8 ADD_64 1027 0x000037a0
|
||||
0x0000d3e0 0x0000d3e0 ADD_64 1027 0x000086b6
|
||||
0x0000d3e8 0x0000d3e8 ADD_64 1027 0x00009d41
|
||||
0x0000d3f0 0x0000d3f0 ADD_64 1027 0x00003e20
|
||||
0x0000d3f8 0x0000d3f8 ADD_64 1027 0x00009913
|
||||
0x0000d400 0x0000d400 ADD_64 1027 0x000098d6
|
||||
0x0000d408 0x0000d408 ADD_64 1027 0x00004584
|
||||
0x0000d410 0x0000d410 ADD_64 1027 0x0000a44f
|
||||
0x0000d418 0x0000d418 ADD_64 1027 0x0000a07c
|
||||
0x0000d420 0x0000d420 ADD_64 1027 0x00004d68
|
||||
0x0000d428 0x0000d428 ADD_64 1027 0x00009d60
|
||||
0x0000d430 0x0000d430 ADD_64 1027 0x00009b9e
|
||||
0x0000d438 0x0000d438 ADD_64 1027 0x00004d80
|
||||
0x0000d440 0x0000d440 ADD_64 1027 0x000091b3
|
||||
0x0000d448 0x0000d448 ADD_64 1027 0x000098d0
|
||||
0x0000d450 0x0000d450 ADD_64 1027 0x00004d9c
|
||||
0x0000d458 0x0000d458 ADD_64 1027 0x0000abbb
|
||||
0x0000d460 0x0000d460 ADD_64 1027 0x00008ed2
|
||||
0x0000d468 0x0000d468 ADD_64 1027 0x00004db4
|
||||
0x0000d470 0x0000d470 ADD_64 1027 0x0000abd3
|
||||
0x0000d478 0x0000d478 ADD_64 1027 0x000089c4
|
||||
0x0000d480 0x0000d480 ADD_64 1027 0x00004de8
|
||||
0x0000d488 0x0000d488 ADD_64 1027 0x0000a927
|
||||
0x0000d490 0x0000d490 ADD_64 1027 0x00009510
|
||||
0x0000d498 0x0000d498 ADD_64 1027 0x00004ec0
|
||||
0x0000d4a0 0x0000d4a0 ADD_64 1027 0x0000a5bc
|
||||
0x0000d4a8 0x0000d4a8 ADD_64 1027 0x0000a1dc
|
||||
0x0000d4b0 0x0000d4b0 ADD_64 1027 0x00004ef0
|
||||
0x0000d4b8 0x0000d4b8 ADD_64 1027 0x0000a1e6
|
||||
0x0000d4c0 0x0000d4c0 ADD_64 1027 0x0000a1f7
|
||||
0x0000d4c8 0x0000d4c8 ADD_64 1027 0x00004fb4
|
||||
0x0000d4d0 0x0000d4d0 ADD_64 1027 0x0000a1e6
|
||||
0x0000d4d8 0x0000d4d8 ADD_64 1027 0x0000a937
|
||||
0x0000d4e0 0x0000d4e0 ADD_64 1027 0x00005050
|
||||
0x0000d4e8 0x0000d4e8 ADD_64 1027 0x0000a1e6
|
||||
0x0000d4f0 0x0000d4f0 ADD_64 1027 0x000089cd
|
||||
0x0000d4f8 0x0000d4f8 ADD_64 1027 0x0000515c
|
||||
0x0000d500 0x0000d500 ADD_64 1027 0x0000a082
|
||||
0x0000d508 0x0000d508 ADD_64 1027 0x00008c9f
|
||||
0x0000d510 0x0000d510 ADD_64 1027 0x000053ec
|
||||
0x0000d518 0x0000d518 ADD_64 1027 0x0000a082
|
||||
0x0000d520 0x0000d520 ADD_64 1027 0x0000a79d
|
||||
0x0000d528 0x0000d528 ADD_64 1027 0x000054fc
|
||||
0x0000d530 0x0000d530 ADD_64 1027 0x0000a2f1
|
||||
0x0000d538 0x0000d538 ADD_64 1027 0x0000a7b0
|
||||
0x0000d540 0x0000d540 ADD_64 1027 0x00005684
|
||||
0x0000d548 0x0000d548 ADD_64 1027 0x0000883b
|
||||
0x0000d550 0x0000d550 ADD_64 1027 0x0000a464
|
||||
0x0000d558 0x0000d558 ADD_64 1027 0x000058ec
|
||||
0x0000d560 0x0000d560 ADD_64 1027 0x00008aea
|
||||
0x0000d568 0x0000d568 ADD_64 1027 0x00008edb
|
||||
0x0000d570 0x0000d570 ADD_64 1027 0x00005920
|
||||
0x0000d578 0x0000d578 ADD_64 1027 0x00009d76
|
||||
0x0000d580 0x0000d580 ADD_64 1027 0x0000a46d
|
||||
0x0000d588 0x0000d588 ADD_64 1027 0x00005954
|
||||
0x0000d590 0x0000d590 ADD_64 1027 0x0000aa56
|
||||
0x0000d598 0x0000d598 ADD_64 1027 0x0000a476
|
||||
0x0000d5a0 0x0000d5a0 ADD_64 1027 0x00005984
|
||||
0x0000d5a8 0x0000d5a8 ADD_64 1027 0x000091d0
|
||||
0x0000d5b0 0x0000d5b0 ADD_64 1027 0x0000a1dc
|
||||
0x0000d5b8 0x0000d5b8 ADD_64 1027 0x000059b4
|
||||
0x0000d5c0 0x0000d5c0 ADD_64 1027 0x0000a47f
|
||||
0x0000d5c8 0x0000d5c8 ADD_64 1027 0x00009fa7
|
||||
0x0000d5d0 0x0000d5d0 ADD_64 1027 0x00005a78
|
||||
0x0000d5d8 0x0000d5d8 ADD_64 1027 0x00009a87
|
||||
0x0000d5e0 0x0000d5e0 ADD_64 1027 0x00008edb
|
||||
0x0000d5e8 0x0000d5e8 ADD_64 1027 0x00005bb0
|
||||
0x0000d5f0 0x0000d5f0 ADD_64 1027 0x000090ba
|
||||
0x0000d5f8 0x0000d5f8 ADD_64 1027 0x00009289
|
||||
0x0000d600 0x0000d600 ADD_64 1027 0x00005be4
|
||||
0x0000d608 0x0000d608 ADD_64 1027 0x0000a301
|
||||
0x0000d610 0x0000d610 ADD_64 1027 0x0000a202
|
||||
0x0000d618 0x0000d618 ADD_64 1027 0x00005d6c
|
||||
0x0000d620 0x0000d620 ADD_64 1027 0x0000abe8
|
||||
0x0000d628 0x0000d628 ADD_64 1027 0x0000a7bc
|
||||
0x0000d630 0x0000d630 ADD_64 1027 0x00005dac
|
||||
0x0000d638 0x0000d638 ADD_64 1027 0x00008ee4
|
||||
0x0000d640 0x0000d640 ADD_64 1027 0x00008df1
|
||||
0x0000d648 0x0000d648 ADD_64 1027 0x00005df0
|
||||
0x0000d650 0x0000d650 ADD_64 1027 0x000090cb
|
||||
0x0000d658 0x0000d658 ADD_64 1027 0x0000a09a
|
||||
0x0000d660 0x0000d660 ADD_64 1027 0x00005e0c
|
||||
0x0000d668 0x0000d668 ADD_64 1027 0x000092b5
|
||||
0x0000d670 0x0000d670 ADD_64 1027 0x0000a0a2
|
||||
0x0000d678 0x0000d678 ADD_64 1027 0x00005e4c
|
||||
0x0000d680 0x0000d680 ADD_64 1027 0x0000ace5
|
||||
0x0000d688 0x0000d688 ADD_64 1027 0x00009748
|
||||
0x0000d690 0x0000d690 ADD_64 1027 0x00006488
|
||||
0x0000d698 0x0000d698 ADD_64 1027 0x00009e6d
|
||||
0x0000d6a0 0x0000d6a0 ADD_64 1027 0x00009518
|
||||
0x0000d6a8 0x0000d6a8 ADD_64 1027 0x000066d4
|
||||
0x0000d6b0 0x0000d6b0 ADD_64 1027 0x0000a20a
|
||||
0x0000d6b8 0x0000d6b8 ADD_64 1027 0x00009518
|
||||
0x0000d6c0 0x0000d6c0 ADD_64 1027 0x000066f4
|
||||
0x0000d6c8 0x0000d6c8 ADD_64 1027 0x00008afb
|
||||
0x0000d6d0 0x0000d6d0 ADD_64 1027 0x000098d0
|
||||
0x0000d6d8 0x0000d6d8 ADD_64 1027 0x00006714
|
||||
0x0000d6e0 0x0000d6e0 ADD_64 1027 0x00009a9a
|
||||
0x0000d6e8 0x0000d6e8 ADD_64 1027 0x000098d0
|
||||
0x0000d6f0 0x0000d6f0 ADD_64 1027 0x0000672c
|
||||
0x0000d6f8 0x0000d6f8 ADD_64 1027 0x00009ab1
|
||||
0x0000d700 0x0000d700 ADD_64 1027 0x00008cb0
|
||||
0x0000d708 0x0000d708 ADD_64 1027 0x00006744
|
||||
0x0000d710 0x0000d710 ADD_64 1027 0x00008efc
|
||||
0x0000d718 0x0000d718 ADD_64 1027 0x000089db
|
||||
0x0000d720 0x0000d720 ADD_64 1027 0x000068d4
|
||||
0x0000d728 0x0000d728 ADD_64 1027 0x00009d87
|
||||
0x0000d730 0x0000d730 ADD_64 1027 0x00008b11
|
||||
0x0000d738 0x0000d738 ADD_64 1027 0x00006a64
|
||||
0x0000d740 0x0000d740 ADD_64 1027 0x000089f5
|
||||
0x0000d748 0x0000d748 ADD_64 1027 0x00009520
|
||||
0x0000d750 0x0000d750 ADD_64 1027 0x00006c08
|
||||
0x0000d758 0x0000d758 ADD_64 1027 0x0000a222
|
||||
0x0000d760 0x0000d760 ADD_64 1027 0x00009020
|
||||
0x0000d768 0x0000d768 ADD_64 1027 0x00006dac
|
||||
0x0000d770 0x0000d770 ADD_64 1027 0x000086ca
|
||||
0x0000d778 0x0000d778 ADD_64 1027 0x0000acfb
|
||||
0x0000d780 0x0000d780 ADD_64 1027 0x00006edc
|
||||
0x0000d788 0x0000d788 ADD_64 1027 0x0000a31a
|
||||
0x0000d790 0x0000d790 ADD_64 1027 0x0000aa67
|
||||
0x0000d798 0x0000d798 ADD_64 1027 0x00006f04
|
||||
0x0000d7a0 0x0000d7a0 ADD_64 1027 0x0000ad06
|
||||
0x0000d7a8 0x0000d7a8 ADD_64 1027 0x00009826
|
||||
0x0000d7b0 0x0000d7b0 ADD_64 1027 0x00006f0c
|
||||
0x0000d7b8 0x0000d7b8 ADD_64 1027 0x000099a0
|
||||
0x0000d7c0 0x0000d7c0 ADD_64 1027 0x000094b0
|
||||
0x0000d7c8 0x0000d7c8 ADD_64 1027 0x00007048
|
||||
0x0000d7d0 0x0000d7d0 ADD_64 1027 0x0000ac00
|
||||
0x0000d7d8 0x0000d7d8 ADD_64 1027 0x00008eab
|
||||
0x0000d7e0 0x0000d7e0 ADD_64 1027 0x00007058
|
||||
0x0000d7e8 0x0000d7e8 ADD_64 1027 0x0000ac12
|
||||
0x0000d7f0 0x0000d7f0 ADD_64 1027 0x0000ac26
|
||||
0x0000d7f8 0x0000d7f8 ADD_64 1027 0x0000706c
|
||||
0x0000d800 0x0000d800 ADD_64 1027 0x0000983d
|
||||
0x0000d808 0x0000d808 ADD_64 1027 0x00008eab
|
||||
0x0000d810 0x0000d810 ADD_64 1027 0x00007094
|
||||
0x0000d818 0x0000d818 ADD_64 1027 0x0000a7c5
|
||||
0x0000d820 0x0000d820 ADD_64 1027 0x00008eab
|
||||
0x0000d828 0x0000d828 ADD_64 1027 0x000070a8
|
||||
0x0000d830 0x0000d830 ADD_64 1027 0x000091e1
|
||||
0x0000d838 0x0000d838 ADD_64 1027 0x000098d0
|
||||
0x0000d840 0x0000d840 ADD_64 1027 0x000070bc
|
||||
0x0000d848 0x0000d848 ADD_64 1027 0x0000a0b1
|
||||
0x0000d850 0x0000d850 ADD_64 1027 0x00009d19
|
||||
0x0000d858 0x0000d858 ADD_64 1027 0x000070d4
|
||||
0x0000d860 0x0000d860 ADD_64 1027 0x0000a491
|
||||
0x0000d868 0x0000d868 ADD_64 1027 0x0000908c
|
||||
0x0000d870 0x0000d870 ADD_64 1027 0x000070fc
|
||||
0x0000d878 0x0000d878 ADD_64 1027 0x0000953c
|
||||
0x0000d880 0x0000d880 ADD_64 1027 0x00008cca
|
||||
0x0000d888 0x0000d888 ADD_64 1027 0x00007144
|
||||
0x0000d890 0x0000d890 ADD_64 1027 0x000093c8
|
||||
0x0000d898 0x0000d898 ADD_64 1027 0x000086db
|
||||
0x0000d8a0 0x0000d8a0 ADD_64 1027 0x00007214
|
||||
0x0000d8a8 0x0000d8a8 ADD_64 1027 0x0000a332
|
||||
0x0000d8b0 0x0000d8b0 ADD_64 1027 0x0000a07c
|
||||
0x0000d8b8 0x0000d8b8 ADD_64 1027 0x000072e8
|
||||
0x0000e000 0x0000e000 ADD_64 1027 0x00000200
|
||||
0x0000e210 0x0000e210 SET_64 1026 __cxa_finalize
|
||||
0x0000e218 0x0000e218 SET_64 1026 __stack_chk_fail
|
||||
0x0000e220 0x0000e220 SET_64 1026 dlopen
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ NAME=aarch64 ET_DYN (regression): reloc count unchanged by ET_REL gating
|
|||
FILE=bins/elf/ls-toybox
|
||||
CMDS=ir~?
|
||||
EXPECT=<<EOF
|
||||
331
|
||||
384
|
||||
EOF
|
||||
RUN
|
||||
|
||||
|
|
|
|||
|
|
@ -69,6 +69,59 @@ vaddr paddr type ntype name
|
|||
0x00078040 0x00078040 SET_64 1027
|
||||
0x00078050 0x00078050 SET_64 1027
|
||||
0x00078188 0x00078188 SET_64 1027
|
||||
0x00078978 0x00078978 ADD_64 257 MD5_Init
|
||||
0x00078980 0x00078980 ADD_64 257 MD5_Update
|
||||
0x00078988 0x00078988 ADD_64 257 MD5_Final
|
||||
0x000789a0 0x000789a0 ADD_64 257 SHA1_Init
|
||||
0x000789a8 0x000789a8 ADD_64 257 SHA1_Update
|
||||
0x000789b0 0x000789b0 ADD_64 257 SHA1_Final
|
||||
0x000789c8 0x000789c8 ADD_64 257 SHA224_Init
|
||||
0x000789d0 0x000789d0 ADD_64 257 SHA224_Update
|
||||
0x000789d8 0x000789d8 ADD_64 257 SHA224_Final
|
||||
0x000789f0 0x000789f0 ADD_64 257 SHA256_Init
|
||||
0x000789f8 0x000789f8 ADD_64 257 SHA256_Update
|
||||
0x00078a00 0x00078a00 ADD_64 257 SHA256_Final
|
||||
0x00078a18 0x00078a18 ADD_64 257 SHA384_Init
|
||||
0x00078a20 0x00078a20 ADD_64 257 SHA384_Update
|
||||
0x00078a28 0x00078a28 ADD_64 257 SHA384_Final
|
||||
0x00078a40 0x00078a40 ADD_64 257 SHA512_Init
|
||||
0x00078a48 0x00078a48 ADD_64 257 SHA512_Update
|
||||
0x00078a50 0x00078a50 ADD_64 257 SHA512_Final
|
||||
0x0007b2d8 0x0007b2d8 SET_64 1025 free
|
||||
0x0007b2e8 0x0007b2e8 SET_64 1025 _ctype_
|
||||
0x0007b2f0 0x0007b2f0 SET_64 1025 strncmp
|
||||
0x0007b300 0x0007b300 SET_64 1025 environ
|
||||
0x0007b308 0x0007b308 SET_64 1025 stderr
|
||||
0x0007b310 0x0007b310 SET_64 1025 stdout
|
||||
0x0007b320 0x0007b320 SET_64 1025 stat
|
||||
0x0007b328 0x0007b328 SET_64 1025 strcmp
|
||||
0x0007b330 0x0007b330 SET_64 1025 strncasecmp
|
||||
0x0007b348 0x0007b348 SET_64 1025 stdin
|
||||
0x0007b368 0x0007b368 SET_64 1025 socket
|
||||
0x0007b370 0x0007b370 SET_64 1025 bind
|
||||
0x0007b378 0x0007b378 SET_64 1025 connect
|
||||
0x0007b398 0x0007b398 SET_64 1025 getxattr
|
||||
0x0007b3a8 0x0007b3a8 SET_64 1025 lgetxattr
|
||||
0x0007b3b0 0x0007b3b0 SET_64 1025 listxattr
|
||||
0x0007b3b8 0x0007b3b8 SET_64 1025 llistxattr
|
||||
0x0007b3c0 0x0007b3c0 SET_64 1025 setxattr
|
||||
0x0007b3c8 0x0007b3c8 SET_64 1025 lsetxattr
|
||||
0x0007b3d0 0x0007b3d0 SET_64 1025 strcasecmp
|
||||
0x0007b3d8 0x0007b3d8 SET_64 1025 localtime_r
|
||||
0x0007b3f8 0x0007b3f8 SET_64 1025 lstat
|
||||
0x0007b400 0x0007b400 SET_64 1025 opterr
|
||||
0x0007b408 0x0007b408 SET_64 1025 optind
|
||||
0x0007b410 0x0007b410 SET_64 1025 getopt_long_only
|
||||
0x0007b418 0x0007b418 SET_64 1025 getopt_long
|
||||
0x0007b420 0x0007b420 SET_64 1025 optarg
|
||||
0x0007b428 0x0007b428 SET_64 1025 optopt
|
||||
0x0007b430 0x0007b430 SET_64 1025 lsetfilecon
|
||||
0x0007b438 0x0007b438 SET_64 1025 setfilecon
|
||||
0x0007b440 0x0007b440 SET_64 1025 gmtime_r
|
||||
0x0007b448 0x0007b448 SET_64 1025 timezone
|
||||
0x0007b450 0x0007b450 SET_64 1025 daylight
|
||||
0x0007b458 0x0007b458 SET_64 1025 lremovexattr
|
||||
0x0007b460 0x0007b460 SET_64 1025 removexattr
|
||||
0x0007b480 0x0007b480 SET_64 1026 __libc_init
|
||||
0x0007b488 0x0007b488 SET_64 1026 __strchr_chk
|
||||
0x0007b490 0x0007b490 SET_64 1026 strtol
|
||||
|
|
@ -418,6 +471,6 @@ CMDS=<<EOF
|
|||
pxq 8 @ 0x0007b480
|
||||
EOF
|
||||
EXPECT=<<EOF
|
||||
0x0007b480 0x0000000000083a09 .:......
|
||||
0x0007b480 0x0000000000083bb1 .;......
|
||||
EOF
|
||||
RUN
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue