Microsoft Word - iOSAppReverseEngineering.docx

(Romina) #1

Figure 6-38 [PSListController tableView:cellForRowAtIndexPath:]


Dichotomy increases the efficiency of our investigation, but it brings a new question:


[PSListController tableView:cellForRowAtIndexPath:] branches a lot, where should we choose


as the investigation starting point to avoid missing any branches? Because [PSListController


tableView:cellForRowAtIndexPath:] will definitely execute code in the red block in figure 6-38,


if we start from this block, we can make sure every branch is investigated. Next let’s investigate


the 1st objc_msgSend in this block, if [$r6 detailTextLabel] contains my number, then we should


investigate upwards, otherwise we should investigate downwards. Take a look at the assembly


in the red block, as shown in figure 6-39.


Figure 6-39 loc_2a9f7966


There are 2 objc_msgSends, so we start from the top one, as shown in figure 6-40.

Free download pdf