1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
0xf7fe77e0 <_dl_fixup>: push ebp 0xf7fe77e1 <_dl_fixup+1>: push edi 0xf7fe77e2 <_dl_fixup+2>: mov edi,eax 0xf7fe77e4 <_dl_fixup+4>: push esi 0xf7fe77e5 <_dl_fixup+5>: push ebx 0xf7fe77e6 <_dl_fixup+6>: call 0xf7ff28ed <__x86.get_pc_thunk.si> 0xf7fe77eb <_dl_fixup+11>: add esi,0x15815 0xf7fe77f1 <_dl_fixup+17>: sub esp,0x2c 0xf7fe77f4 <_dl_fixup+20>: mov ecx,DWORD PTR [edi+0x7c] 0xf7fe77f7 <_dl_fixup+23>: mov eax,DWORD PTR [eax+0x34] 0xf7fe77fa <_dl_fixup+26>: mov DWORD PTR [esp+0x8],esi 0xf7fe77fe <_dl_fixup+30>: add edx,DWORD PTR [ecx+0x4] #edx=0x20 .rel.plt=[ecx+0x4] reloc[0x20]=[write.got,r_info(0x607)] 0xf7fe7801 <_dl_fixup+33>: mov eax,DWORD PTR [eax+0x4] #eax=.dynstr 0xf7fe7804 <_dl_fixup+36>: mov ecx,DWORD PTR [edi+0x38] 0xf7fe7807 <_dl_fixup+39>: mov DWORD PTR [esp+0xc],eax 0xf7fe780b <_dl_fixup+43>: mov ebp,edx 0xf7fe780d <_dl_fixup+45>: mov edx,DWORD PTR [edx+0x4] #edx=0x607 取出r_info 0xf7fe7810 <_dl_fixup+48>: mov eax,DWORD PTR [ebp+0x0] 0xf7fe7813 <_dl_fixup+51>: mov esi,edx 0xf7fe7815 <_dl_fixup+53>: shr esi,0x8 #右移r_info,得到index_dynsym(0x6) 0xf7fe7818 <_dl_fixup+56>: mov ebx,esi 0xf7fe781a <_dl_fixup+58>: shl ebx,0x4 #右移index_dynsym得到偏移量 每个dynsym大小为0x10 0xf7fe781d <_dl_fixup+61>: add ebx,DWORD PTR [ecx+0x4] #ebx为得到dynsym[6]保存的dynstr偏移量(0x4c) 0xf7fe7820 <_dl_fixup+64>: mov ecx,DWORD PTR [edi] 0xf7fe7822 <_dl_fixup+66>: add eax,ecx 0xf7fe7824 <_dl_fixup+68>: cmp dl,0x7 #检测是否r_info中的type 0xf7fe7827 <_dl_fixup+71>: mov DWORD PTR [esp+0x1c],ebx 0xf7fe782b <_dl_fixup+75>: jne 0xf7fe796f <_dl_fixup+399> .... 0xf7fe7882 <_dl_fixup+162>: mov eax,DWORD PTR [esp+0xc] #eax=dynstr 0xf7fe7886 <_dl_fixup+166>: add eax,DWORD PTR [ebx] #eax=address("write") ... 0xf7fe789d <_dl_fixup+189>: call 0xf7fe2a60 <_dl_lookup_symbol_x> #解析函数
|
近期评论