-1

winword进程打开一个文件要执行另存为操作,如果文件要保存到另一个目录,我想拒绝另存为操作。我想通过api hook使用C++,怎么办?< /p>

4

1 回答 1

0

这取决于,如果你想挂钩一个外部进程,你需要首先进入这个进程的地址空间,例如(dll 注入)。然后,您需要准确地知道该进程使用哪个 API 函数来执行诸如保存文件之类的任务,以便能够挂钩正确的文件。完成所有这些步骤后,我建议使用detours来挂钩 API 函数。例如:

typedef void savefunc_t(const char *fn); // api function prototype
savefunc_t *original_savefunc;

void savefunc_hook(const char *fn)
{
    if(strstr(fn, "dir"))   // check path and deny if otherwise execute original func
        return;
    original_savefunc(fn);
}

DetourFunction(DesiredFunctionPointer, savefunc_hook);
于 2018-09-05T09:31:36.087 回答