как я могу отказаться от «сохранить как» в winword через API-хук - PullRequest
0 голосов
/ 05 сентября 2018

Когда процесс winword открывает файл и хочет выполнить операцию «сохранить как» , Я хочу отказаться от операции «сохранить как», если файл будет сохранен в другой каталог。 я хочу использовать C ++ с помощью API-хука , как я могу?

1 Ответ

0 голосов
/ 05 сентября 2018

Зависит от того, что если вы хотите подключить внешний процесс, вам нужно сначала войти в адресное пространство этого процесса, например ( dll инъекция ). Затем вам нужно точно знать, какую функцию API использует этот процесс для выполнения такой задачи, как сохранение файла, чтобы иметь возможность перехватить правильный файл. После всех этих шагов, я предлагаю использовать обход для перехвата функций 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);
...