2012-02-29 59 views
0

我正在檢查從mobilesubstrate私人c + +函數掛鉤代碼片段,並看到WebCore示例似乎掛鉤到2(可能)未公開的私人功能,並被埋在WebCore中。讓我感到震驚的是,saurik如何推斷目標鉤子函數返回的返回值的類型?一個破壞的函數不會泄漏我知道的返回類型。我試圖在IDA pro中反彙編WebCore框架共享庫文件,並且看不到它的返回類型。任何想法的人?目標函數原型和返回類型所需的全部知識是否需要成功掛接到dylib中的私有函數?謝謝!使用什麼私人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), 

儘管close()方法返回void

+0

喜,感謝您的回覆,但我試圖編譯iphonedevwiki的mobilesubstrate主題中的示例,以進行簡單的mobilesafari調整併產生可行的調整。然而,當我改變'NSURLRequest *(* X_ZNK7WebCore15ResourceRequest12nsURLRequestEv)(void * something)的返回類型; (void *,void *,long unsigned int,void *,const void **)'to'void *'從void到int,我得到'Tweak.xm:67:error:invalid conversion from' 「是因爲MSHake? – gigasai 2012-03-01 06:57:47

相關問題