54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
test eax, eax
jz short 0f
ret
0:
call get_eip
1:
add eax, offset _GLOBAL_OFFSET_TABLE_
mov eax, [eax+\not_found@GOT]
jmp eax
.Ltagged_pointer_\name:
movzx edx, dl
shr edx, 1
call get_eip
|
<
|
|
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
test eax, eax
jz short 0f
ret
0:
call get_eip
add eax, offset _GLOBAL_OFFSET_TABLE_
lea eax, [eax+\not_found@GOTOFF]
jmp eax
.Ltagged_pointer_\name:
movzx edx, dl
shr edx, 1
call get_eip
|
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
generate_lookup objc_msg_lookup objc_method_not_found
generate_lookup objc_msg_lookup_stret objc_method_not_found_stret
generate_lookup_super objc_msg_lookup_super objc_msg_lookup
generate_lookup_super objc_msg_lookup_super_stret objc_msg_lookup_stret
ret_nil:
call get_eip
0:
add eax, nil_method-0b
ret
nil_method:
xor eax, eax
ret
get_eip:
mov eax, [esp]
ret
#ifdef OF_LINUX
.section .note.GNU-stack, "", %progbits
#endif
|
<
>
|
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
generate_lookup objc_msg_lookup objc_method_not_found
generate_lookup objc_msg_lookup_stret objc_method_not_found_stret
generate_lookup_super objc_msg_lookup_super objc_msg_lookup
generate_lookup_super objc_msg_lookup_super_stret objc_msg_lookup_stret
ret_nil:
call get_eip
add eax, offset _GLOBAL_OFFSET_TABLE_
lea eax, [eax+nil_method@GOTOFF]
ret
nil_method:
xor eax, eax
ret
get_eip:
mov eax, [esp]
ret
#ifdef OF_LINUX
.section .note.GNU-stack, "", %progbits
#endif
|