Microsoft Word - iOSAppReverseEngineering.docx

(Romina) #1
(lldb) po [$r0 detailTextLabel]
<UITableViewLabel: 0x15fb5590; frame = (0 0; 0 0); text = ‘+86PhoneNumber’;
userInteractionEnabled = NO; layer = <_UILabelLayer: 0x15fd87e0>>

It’ s worth mentioning that the 1st argument of objc_msgSendSuper2 is not an Objective-C


object. I’m not sure whether it is a bug of LLDB or it is the actual case. Anyway, it doesn’t


influence our analysis, just ignore it for now. If you’re really interested in this detail, you are


welcome to share your research on http://bbs.iosre.com.


Back on track, the output of LLDB indicates that the return value of objc_msgSendSuper2 is


an initialized cell, which contains my number already. Similar to what happened in the last


section, let’s check out the implementation of tableView:cellForRowAtIndexPath: in


PhoneSettingsController’s superclass. First of all let’s figure out who’s the superclass in


PhoneSettingsController.h:


@interface PhoneSettingsController : PhoneSettingsListController
<TPSetPINViewControllerDelegate>
......
@end

PhoneSettingsController inherits from PhoneSettingsListController, so open


PhoneSettingsListController.h to check out if it implements


tableView:cellForRowAtIndexPath:.


@interface PhoneSettingsListController : PSListController
{
}


  • (id)bundle;

  • (void)dealloc;

  • (id)init;

  • (void)pushController:(Class)arg1 specifier:(id)arg2;

  • (id)setCellEnabled:(BOOL)arg1 atIndex:(unsigned int)arg2;

  • (id)setCellLoading:(BOOL)arg1 atIndex:(unsigned int)arg2;

  • (id)setControlEnabled:(BOOL)arg1 atIndex:(unsigned int)arg2;

  • (id)sheetSpecifierWithTitle:(id)arg1 controller:(Class)arg2 detail:(Class)arg3;

  • (void)simRemoved:(id)arg1;

  • (id)specifiers;

  • (void)updateCellStates;

  • (void)viewWillAppear:(BOOL)arg1;


@end

PhoneSettingsListController doesn’t implement tableView:cellForRowAtIndexPath:, so just


proceed to its superclass PSListController. The class PSListController is no longer inside


MobilePhoneSettings.bundle, so let’s search it in all class-dump headers, as shown in figure 6-31.

Free download pdf