因此,我最近迷上了PR_Write在Mozilla中,並能夠將結果(所有連接字面意思)記錄到日誌文件,但有一個問題,我假設掛鉤PR_Write後,我將能夠捕獲HTTPS數據,但是當我登錄到HTTPS服務器時,它不捕獲未加密的POST數據,我嘗試使用本地主機並進行假POST,並且捕獲localhost帖子,因爲它未加密。掛鉤PR_Write是不是要捕獲所有類型的數據?PR_Write掛鉤後
這是PR_Write的原型,我使用和變量:
typedef int (*Custom_Write)(PVOID, LPVOID, INT);
Custom_Write c_write=NULL;
PR_Write definition by Mozilla
和繞行功能,我通過獲取其上存儲的地址調用原始PR_Write在c_write
使用GetProcAddress。下面是它怎麼叫:
// detour function
int detour_pr_write(int fd, LPVOID buf, int bytes)
{
// ... code for virtual protect
int retaddr=c_write(fd, buf, bytes);
// file functions
fwrite(buf, sizeof(char), strlen(buf), fileHandle);
// ... code for virtual protect
return retaddr; // go to original function
}
的記錄和其他的東西,工作正常,但當它歸結爲寫加密的POST數據,它失敗。它最終寫了胡言亂語。
當然 - 它有strlen()。肯定是錯的。 –
我想知道爲什麼hooked調用具有'int bytes'參數?我確定它出於某種原因必須在那裏..... –
PR_Write的定義有這三個參數,在這裏提到https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR /參考/ PR_Write – demogorgon