因此,我最近迷上了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