Microsoft Word - iOSAppReverseEngineering.docx

(Romina) #1

Figure 10- 27 Inspect cross references


Refresh sending service? This name is very informative. Let’s head directly to


[CKPendingConversation refreshComposeSendingServiceForAddresses:withCompletionBlock:]


as shown in figure 10-28 for more details. In this method, sub_26984530 is obviously the 2nd


argument of refreshStatusForAddresses:withCompletionBlock:, namely the completionBlock, as


shown in figure 10-28.


Figure 10- 28 [CKPendingConversation refreshComposeSendingServiceForAddresses:withCompletionBlock:]

Although sub_26984530 appears in this method, it just acts as an argument of


objc_msgSend, hence is not called directly. Well, who is the direct caller on earth? Actually,


we’ve already mastered the solution of such problems: reinput the address, set a breakpoint at


the beginning of sub_26984530 and then press “return” to trigger the breakpoint.


Process 30928 stopped
* thread #1: tid = 0x78d0, 0x30b36530 ChatKit`__86-[CKPendingConversation
refreshComposeSendingServiceForAddresses:withCompletionBlock:]_block_invoke, queue =
'com.apple.main-thread, stop reason = breakpoint 6.1
frame #0: 0x30b36530 ChatKit`__86-[CKPendingConversation
refreshComposeSendingServiceForAddresses:withCompletionBlock:]_block_invoke
ChatKit`__86-[CKPendingConversation
refreshComposeSendingServiceForAddresses:withCompletionBlock:]_block_invoke:




  • 0x30b36530: push {r4, r5, r6, r7, lr}
    0x30b36532: add r7, sp, #12
    0x30b36534: push.w {r8, r10}
    0x30b36538: sub sp, #4
    (lldb) p/x $lr
    (unsigned int) $38 = 0x30b364bb





LR without offset is 0x30b364bb - 0xa1b2000 = 0x269844BB. Locate it in IDA, as shown in


figure 10-29.

Free download pdf