Когда я открываю рамки IOS AddressBook с IDA, я получаю следующий код:Как я могу получить право выбора в сборке ARM
**__ABPeoplePickerNavigationController_initAsAddressBook_withAddressBook__
var_C= -0xC
PUSH {R7,LR}
MOV R7, SP
SUB SP, SP, #4
MOVW R1, #0x2B06
MOV.W R12, #0
MOVT.W R1, #0xB
STR.W R12, [SP,#0xC+var_C]
ADD R1, PC
LDR R1, [R1]
BLX _objc_msgSend
ADD SP, SP, #4
POP {R7,PC}
; End of function __ABPeoplePickerNavigationController_initAsAddressBook_withAddressBook__**
Как можно узнать, что селектор хранится в R1 перед тем _objc_msgSend () называется.
С некоторой помощью Интернета, я делаю следующие вещи:
После MOVW R1, # 0x2B06 и MOVT.W R1, # 0xB, я получил R1 = 0x000B2B06
After ADD R1, PC, я получил R1 = 0x000B2B06 + PC (A13A) + 4 = 0x000BCC44, где A13A является адрес ADD R1, PC
содержание вблизи этого адреса:
_ _objc_selrefs: 000BCC44 DCD aInitasaddres_0; "initAsAddressBook: withAddressBook: withS" ... __objc_selrefs: 000BCC48 DCD aDefaultstylepr; "defaultStyleProviderForStyle:" __objc_selrefs: 000BCC4C DCD aInitwithnaviga; "initWithNavigationController:" __objc_selrefs: 000BCC50 DCD aSetupinitialst; "SetupInitialStackAndLoadState:"
Таким образом я получил селектор "initAsAddressBook: withAddressBook: тетивы ...",
4.Ы при входе в рабочем процессе, я получил, что "setupInitialStackAndLoadState:" был на самом деле называется.
Есть ли что-то не так с моим методом, чтобы получить селектор?
Метод «initAsAddressBook» имеет смысл вызвать другой селектор «initAsAddressBook». Как вы думаете, почему этот вызов идет на «setupInitialStackAndLoadState»? Как вы «регистрируете рабочий процесс»? –
Я использую MSMessageHook для добавления журнала в начале и в конце каждого метода, включая «initAsAddressBook: withAddressBook: withS ...». Когда приложение запуска, я получил следующий лог: начал: ABPeoplePickerNavigationController_initAsAddressBook_withAddressBook_ начал: ABPeoplePickerNavigationController_setupInitialStackAndLoadState_ ... закончил: ABPeoplePickerNavigationController_initAsAddressBook_withAddressBook_and не начал: ABPeoplePickerNavigationController_initAsAddressBook_withAddressBook_withStyle_ появился в файле журнала! – youmingtaizi