@@ -31,33 +31,29 @@ push ebx sub esp, 20 call get_eip -0: add ebx, offset _GLOBAL_OFFSET_TABLE_ mov eax, [ebp+8] mov [esp], eax - mov eax, [ebx+object_getClass@GOT] - call eax + call object_getClass@PLT mov [esp], eax lea eax, [ebx+sel_forwardingTargetForSelector_@GOTOFF] mov [esp+4], eax - mov eax, [ebx+class_respondsToSelector@GOT] - call eax + call class_respondsToSelector@PLT test eax, eax - jz short 1f + jz short 0f mov eax, [ebp+8] mov [esp], eax lea eax, [ebx+sel_forwardingTargetForSelector_@GOTOFF] mov [esp+4], eax - mov eax, [ebx+objc_msg_lookup@GOT] - call eax + call objc_msg_lookup@PLT mov edx, [ebp+8] mov [esp], edx lea edx, [ebx+sel_forwardingTargetForSelector_@GOTOFF] mov [esp+4], edx @@ -64,29 +60,28 @@ mov edx, [ebp+12] mov [esp+8], edx call eax test eax, eax - jz short 1f + jz short 0f cmp eax, [ebp+8] - je short 1f + je short 0f mov [ebp+8], eax mov [esp], eax mov eax, [ebp+12] mov [esp+4], eax - mov eax, [ebx+objc_msg_lookup@GOT] - call eax + call objc_msg_lookup@PLT add esp, 20 pop ebx pop ebp jmp eax -1: - mov eax, [ebx+of_method_not_found@GOT] +0: + lea eax, [ebx+of_method_not_found@GOTOFF] add esp, 20 pop ebx pop ebp @@ -100,33 +95,29 @@ push ebx sub esp, 20 call get_eip -0: add ebx, offset _GLOBAL_OFFSET_TABLE_ mov eax, [ebp+12] mov [esp], eax - mov eax, [ebx+object_getClass@GOT] - call eax + call object_getClass@PLT mov [esp], eax lea eax, [ebx+sel_forwardingTargetForSelector_@GOTOFF] mov [esp+4], eax - mov eax, [ebx+class_respondsToSelector@GOT] - call eax + call class_respondsToSelector@PLT test eax, eax - jz short 1f + jz short 0f mov eax, [ebp+12] mov [esp], eax lea eax, [ebx+sel_forwardingTargetForSelector_@GOTOFF] mov [esp+4], eax - mov eax, [ebx+objc_msg_lookup@GOT] - call eax + call objc_msg_lookup@PLT mov edx, [ebp+12] mov [esp], edx lea edx, [ebx+sel_forwardingTargetForSelector_@GOTOFF] mov [esp+4], edx @@ -133,29 +124,28 @@ mov edx, [ebp+16] mov [esp+8], edx call eax test eax, eax - jz short 1f + jz short 0f cmp eax, [ebp+12] - je short 1f + je short 0f mov [ebp+12], eax mov [esp], eax mov eax, [ebp+16] mov [esp+4], eax - mov eax, [ebx+objc_msg_lookup_stret@GOT] - call eax + call objc_msg_lookup_stret@PLT add esp, 20 pop ebx pop ebp jmp eax -1: - mov eax, [ebx+of_method_not_found_stret@GOT] +0: + lea eax, [ebx+of_method_not_found_stret@GOTOFF] add esp, 20 pop ebx pop ebp @@ -169,17 +159,15 @@ push ebx sub esp, 4 call get_eip -0: add ebx, offset _GLOBAL_OFFSET_TABLE_ lea eax, [ebx+module@GOTOFF] mov [esp], eax - mov eax, [ebx+__objc_exec_class@GOT] - call eax + call __objc_exec_class@PLT add esp, 4 pop ebx pop ebp ret