CopyFile2没有绕道而行

时间:2013-04-08 05:52:42

标签: c++ windows-8 hook detours

我被困住了。出于某种原因,我需要在Windows 8上阻止文件系统的复制功能。 直到Windows 7,ShFileOperation& CopyFile用来做技巧。但是,在Windows 8中,由于我可以通过API监视器进行扫描,因此使用了一个新的API:CopyFile2来完成这项工作。所以我需要绕开CopyFile2。

我尝试使用Detour 2.x& 3.x沿着Windows SDK 6.x,7.x和Win8 SDK。以下是代码段 -

HRESULT (WINAPI *Trampoline_CopyFile2)(PCWSTR pwszExistingFileName, PCWSTR pwszNewFileName, COPYFILE2_EXTENDED_PARAMETERS *pExtendedParameters) = CopyFile2;
HRESULT WINAPI Detour_CopyFile2(PCWSTR pwszExistingFileName, PCWSTR pwszNewFileName, COPYFILE2_EXTENDED_PARAMETERS *pExtendedParameters)
{
    OutputDebugString(L"Inside TrozenCopyFile...");
    return Trampoline_CopyFile2(pwszExistingFileName, pwszNewFileName, pExtendedParameters);
}

//Attaching Detour 
DetourAttach( &(PVOID&)Trampoline_CopyFile2, (PVOID)Detour_CopyFile2);

DetourAttach返回0(成功),但我没有接到对Trampoline功能的调用。 我知道我的dll在Explorer中被加载,因为其他API正在绕道而行 - 我也在ProcessExplorer中检查了它。

microsoft Detour Library是否支持win8 API?如果是的话,我做错了吗?如果不是,我应该将此报告为错误吗?

- 此外,我创建了一个示例应用程序调用CopyFile2。我的Dll正在加载并且DetourAttach返回0.但是,我仍然无法获得Detour_CopyFile2的痕迹

0 个答案:

没有答案