我想要在打开文件,读取文件,复制文件时读取一些文件信息,进行过滤。钩子类型设置为WH_CALLWNDPROC,设置钩子与所有的进程相关联(全局钩子)这样子设置可否?临时抱佛脚看了一些资料,理解的不是很好。呵呵,大家帮帮忙拉

解决方案 »

  1.   

    你要做的可不是一般的钩子,你钩的是API啊,不一样的,以前研究过,现在忘了。给个我以前的研究结果给你,不过是MASM做的。http://blog.csdn.net/wltg2001/archive/2008/04/23/2317059.aspx
      

  2.   

    恩,我使用的GetProcAddress然后修改开头几个字节的方法,不过一些东东还是很欠缺,哪个仁兄给点资料,比较全的,最好有相关实例,学的更快点。先谢过!
      

  3.   

    用detoursDETOUR_TRAMPOLINE(BOOL WINAPI
      Real_CopyFileW(
      LPCWSTR lpExistingFileName,
      LPCWSTR lpNewFileName,     
      BOOL bFailIfExists         
      ),CopyFileW);
    BOOL WINAPI Replace_CopyFileW(
      LPCWSTR lpExistingFileName, // name of an existing file
      LPCWSTR lpNewFileName,      // name of new file
      BOOL bFailIfExists          // operation if file exists
    )
    {
      BOOL bret=Real_CopyFileW(lpExistingFileName,lpNewFileName,bFailIfExists);
      return bret;}
    void Intercept()
    {
      DetourFunctionWithTrampoline((PBYTE)Real_CopyFileW, (PBYTE)Replace_CopyFileW);}
    void UnIntercept()
    {
      DetourRemove( (PBYTE)Real_CopyFileW,(PBYTE)Replace_CopyFileW);
    }
      

  4.   

    《Windows应用程序捆绑核心编程》中有个封装好的类,也有例子。如果急用就先用它。以后再看原理
      

  5.   

    我要重写ReadFile的api函数,但是只传入一个句柄,我怎么通过这个句柄获得他的文件名啊。GetFileInformationByHandle这个函数里面也没有哦。
      

  6.   

    正在尝试用detours的方法做,试试咯,呵呵,5楼的兄弟,谢谢了,我会去看看的