Microsoft Word - iOSAppReverseEngineering.docx

(Romina) #1

Figure 10- 31 Look for the 10th data source


If the value of R0 is 2, [IMServiceImpl iMessageService] is the 10th data source, otherwise


we have to further check the value of R1. If R1 is 0, then [IMServiceImpl smsService] is the 10th


datasouce, otherwise it should be [IMServiceImpl iMessageService]. The logic can be shown


with the following pseudo code:



  • (BOOL)supportIMessage
    {
    if (R0 == 2 || R1 != 0) return YES;
    return NO;
    }


That is to say, the value of the 10th data source is determined by the combination of R0 and


R1, both of whom assume the responsibility of being the 11th data source, hereafter referred to


as 11th data source A and 11th data source B respectively. At the same time, the above pseudo


code can also be written as the following:



  • (BOOL)supportIMessage
    {
    if (11thDataSourceA == 2 || 11thDataSourceB != 0) return YES;
    return NO;
    }


Get back to figure 10-31 to trace the 11th data source; R0 comes from "UXTB.W R0, R8".

Free download pdf