2012-02-29 1 views
0

Я изучаю частную функцию C++, перехватывая фрагмент кода от mobilesubstrate и вижу, что пример WebCore, похоже, подключается к 2 (возможно) недокументированным частным функциям, искалеченным и похороненным в WebCore. Что меня поражает, так это то, как saurik выводит тип возвращаемого значения, возвращаемого функцией hook hook? Измененная функция не теряет тип возврата из того, что я знаю. Я попытался разобрать файл разделяемой библиотеки платформы WebCore в IDA pro и не смог увидеть его тип возврата. Кто-нибудь знает? Требуется ли полное знание прототипа целевой функции и типа возврата, необходимого для успешного подключения к закрытым функциям в dylibs? Благодаря!Использовать то, что частный тип функции возврата C++ для подключения с помощью mobilesubstrate

#define WebKit "/System/Library/PrivateFrameworks/WebKit.framework/WebKit" 
#define WebCore "/System/Library/PrivateFrameworks/WebCore.framework/WebCore" 
//how to tell its an NSURLRequest* ? 
NSURLRequest* (*X_ZNK7WebCore15ResourceRequest12nsURLRequestEv)(void* something); 

ответ

0

Насколько я знаю, вам не нужно знать точный тип возвращаемого, например, я был в состоянии успешно подключить:

static FILE * close(int arg1), 

хотя близко() возвращает пустое

+0

Hi , спасибо за ответ, но я попытался скомпилировать пример в теме mobilesubstrate на iphonedevwiki для простой настройки mobilesafari и произвел работоспособную настройку. Однако, когда я изменил возвращаемый тип 'NSURLRequest * (* X_ZNK7WebCore15ResourceRequest12nsURLRequestEv) (void * something); 'from void to int, i get' Tweak.xm: 67: ошибка: неверное преобразование из 'int (*) (void *, void *, long unsigned int, void *, const void **)' to 'void * «Из-за MSHake? – gigasai