阅读:1123回复:4

rayyang2000 请进来一下

楼主#
更多 发布于:2002-12-16 12:54
请问在虚拟磁盘的那个vfat重入的问题上!你能够详细说一下你认为的解决方法吗?怎么获得fs_openfile的句柄,并且怎么构造一个ifsreq请求
在那本书里面我看到的是以下的代码
。。。。。
ppPrevHook = IFSMgr_InstallFileSystemApiHook( FileHook );
。。。。。


int __cdecl FileHook( pIFSFunc pfn, int fn, int drv, int res, int cp, pioreq pir ) {
。。。。。。。。。。。
        ifsreq ifs;
        pIFSFunc pEnumHandle;
        ParsedPath* pUniPPath;
        char* pszName;

        pszName = IFSMgr_GetHeap( MAX_PATH );
        if ( pszName != NULL ) {

            pUniPPath = IFSMgr_GetHeap( 1024 );
            if ( pUniPPath != NULL ) {
            
                memcpy( &ifs, pir, sizeof( ifsreq ) );

。。。。。。。。。。。
}

rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-19 01:15
唉!斑竹怎么不来这里看一下啊!

我不是这里的斑竹  :)

要想截获fsd vfn table,要hook IFSMgr_NetFunction。每个drive在mount的时候,ifsmgr都会调用这个函数。但是,有的drive会有多次的通知。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
板凳#
发布于:2002-12-17 09:18
唉!斑竹怎么不来这里看一下啊!
JungleBoy
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2009-09-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-16 16:03
我看了pgpdisk 9x driver的代码
它有几种读取映像文件的方法,其中一种是调int 21(通过Exec_VxD_Int),不知道这条路能不能走通?
我准备试试
I'm upgrading……
地下室#
发布于:2002-12-16 12:55
                ifs.ifs_ir.ir_flags = ENUMH_GETFILENAME;
                ifs.ifs_ir.ir_ppath = pUniPPath;
                pEnumHandle = ifs.ifs_pfh->fh_hf.hf_misc->hm_func[HM_ENUMHANDLE];

                ////
                //
                // If you don\'t want any downstream hookers to see this call
                //   then you can call the FSD directly, like this ...
                #if 0
                (*pEnumHandle)((pioreq)&ifs);
                #endif
游客

返回顶部