2016-05-04 20 views
1

我使用osxinj項目掛鉤了系統調用open,read,write,lstat等。注入到由蘋果提供的TextEdit應用程序,一切正常。當我使用textedit打開新文件時,opencallback被調用並且消息被記錄在system.log文件中。馬赫注入:在Excel中注入時系統調用未被插入

typedef int (*open_type)(const char *, int, mode_t); 
open_type open_func = 0; 
int opencallback(const char* path, int oflag, mode_t mode) 
{ 
    syslog(LOG_ALERT, "In open..."); 

    int returnVal = open_func(path, oflag, mode); 
    syslog(LOG_ALERT,"Open, ends\n"); 
    return returnVal; 
} 

注入到Excel中,並試圖覆蓋使用下面的代碼開放的系統調用:注射到文字編輯時

void* func_ptr = dlsym(RTLD_NEXT, "open"); 
if (func_ptr) 
{ 
    open_func = (open_type)func_ptr; 
    mach_error_t me = mach_override_ptr(func_ptr, 
          (void*)&opencallback, 
          (void**)&open_func); 
} 

opencallback的調用,但在Microsoft Excel中注入時,它是沒有得到調用。但是在其他系統調用的同一行上寫入的代碼讀取,寫入,lstat在注入Excel時被插入。

任何想法,爲什麼打開時不插入注入到Excel中。

回答

0

最後,我讓我的代碼運行。我張貼答覆希望它可以幫助某人。 我掛鉤__open這是一個開放的別名,它適用於像Excel一樣的i386應用程序。