yujian
驱动牛犊
驱动牛犊
  • 注册日期2001-11-24
  • 最后登录2003-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2680回复:16

关于IFSMgr_InstallFileSystemApiHook钩子的难题

楼主#
更多 发布于:2001-11-29 13:37
小弟在学习WIN98下文件删除保护程序时遇上难题,
我安装了IFSMgr_InstallFileSystemApiHook钩子,
但拦截时无法判断删除操作是哪个程序发出的,
尤其是SHELL32发出的?ir_pid属性我已测试,但
无法与前台程序找到的process ID相对应,请各
位大侠帮助!

最新喜欢:

lgqiang888lgqian...
三人行,必有我师!
cmz2000
驱动牛犊
驱动牛犊
  • 注册日期2001-11-22
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2001-11-29 16:17
兄弟,能否把你的例子给我一份? many thanks.

x2j4@sina.com
yoboo_y
驱动牛犊
驱动牛犊
  • 注册日期2001-11-23
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-11-29 17:57
能不能各我一份?
  yoboo_yb@sohu.com
谢谢!
yb_fly
Nouk
驱动中牛
驱动中牛
  • 注册日期2001-08-22
  • 最后登录2006-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-11-29 20:22
I want too.
thx
sender@ms25.url.com.tw
Taiwan's Driver Developer
yujian
驱动牛犊
驱动牛犊
  • 注册日期2001-11-24
  • 最后登录2003-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-11-30 10:12
请问看过源码的大虾和其它大虾,能帮我解决这个难题吗?
(我的源码绝对没有删减)
三人行,必有我师!
iamaf~1
驱动小牛
驱动小牛
  • 注册日期2001-09-23
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-11-30 10:24
这种源吗有什么好看。


你去看看 filemon是如何 获得进程名的。


也可以自己写个函数获得进程ID,


请问看过源码的大虾和其它大虾,能帮我解决这个难题吗?
(我的源码绝对没有删减)
这个论坛不支持长用户名,害得我iamafraid 只好叫iamaf~1了...
yujian
驱动牛犊
驱动牛犊
  • 注册日期2001-11-24
  • 最后登录2003-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-11-30 11:31
小弟谢谢iamaf~1大哥赐教!!!
三人行,必有我师!
yujian
驱动牛犊
驱动牛犊
  • 注册日期2001-11-24
  • 最后登录2003-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-11-30 11:49
各位大哥,我找遍了各板快都找不到FILEMON的源代码,能email给我吗? pctools@163.net :(
三人行,必有我师!
yangjun
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2001-12-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-11-30 14:44
源代码及分析->软件驱动->一个win9x和winNt.2k的文件监视器程序
yujian
驱动牛犊
驱动牛犊
  • 注册日期2001-11-24
  • 最后登录2003-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-11-30 18:29
十分感谢大家的帮助,我的难题已解决!
三人行,必有我师!
yuqiang
驱动牛犊
驱动牛犊
  • 注册日期2001-09-06
  • 最后登录2001-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2001-12-03 16:49
可以把原代码发给我吗?
我也写了个这样的程序,可是就是老出问题!!!
谁能帮我?程序在附件中!!!
谢谢!!!
发e-mail给我,重要重要!!!
yuqiang0304@163.net
谢谢了!!!
zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2001-12-31 00:01
FileMon取得ProcessName的方法不怎么样,我现在做的project里用到了这个机能。
我的兄弟花了一天的时间才搞定,为了避免大家重复浪费时间,贡献给大家。



it depense on which you want to know.


if you only want to knwo its \"ProcessName\" which shorten to 8 byts .you can
do like following.  (which can be found in FileMon made by SysInternals -
www.sysinternals.com)


    CurProc = VWIN32_GetCurrentProcessHandle();
    ring3proc = (PVOID) SelectorMapFlat( Get_Sys_VM_Handle(),
                                         (DWORD) (*(PDWORD) ((char *)
CurProc + 0x38)) | 0x7, 0 );

    if( ring3proc == (PVOID) -1 ) {
        strcpy( ProcessName, \"???\");
    } else {

        //
        // copy out the process name (max 8 characters)
        //
        name = ((char *)ring3proc) + 0xF2;
        if( name[0] >= \'A\' && name[0] < \'z\' ) {
       memset(ProcessName,0x00,MAXPATHLEN);
            strcpy( ProcessName, name );
       ProcessName[8] = 0x00;

        } else {

            strcpy( ProcessName, \"???\" );

        }
    }




if you want more detail which just like Win32 GetCommandLineA, you can get
it by following way!


   memset(ProcessName, 0x00,MAXPATHLEN);

    //
    // Get the ring0 process pointer.
    //
    CurProc = VWIN32_GetCurrentProcessHandle();
  pProcessBegin = ((UCHAR *)CurProc)  + 0x40;    /* Memory which hold PEDB
Address  */
  pProcessBegin = (UCHAR *) *(DWORD *)pProcessBegin;   /* Find PEDB Pointer
*/
  pProcessBegin += 8;  /*Shift 8 bytes */
  pProcessBegin = (UCHAR *) *(DWORD *)pProcessBegin; /* Get Command Line
Address */

  strncpy(ProcessName, pProcessBegin, MAXPATHLEN -1);


it has been confirmed in win98, win98se and winme .

iamaf~1
驱动小牛
驱动小牛
  • 注册日期2001-09-23
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2001-12-31 19:50

if you want more detail which just like Win32 GetCommandLineA, you can get
it by following way!


   memset(ProcessName, 0x00,MAXPATHLEN);

    //
    // Get the ring0 process pointer.
    //
    CurProc = VWIN32_GetCurrentProcessHandle();
  pProcessBegin = ((UCHAR *)CurProc)  + 0x40;    /* Memory which hold PEDB
Address  */
  pProcessBegin = (UCHAR *) *(DWORD *)pProcessBegin;   /* Find PEDB Pointer
*/
  pProcessBegin += 8;  /*Shift 8 bytes */
  pProcessBegin = (UCHAR *) *(DWORD *)pProcessBegin; /* Get Command Line
Address */

  strncpy(ProcessName, pProcessBegin, MAXPATHLEN -1);


it has been confirmed in win98, win98se and winme .

 




能得到 16bit程序 的进程名吗??

[Edited on 12/31/01 by iamaf~1]
这个论坛不支持长用户名,害得我iamafraid 只好叫iamaf~1了...
zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
13楼#
发布于:2001-12-31 20:55
我记得行(记忆中MDM这样的16位程序也得到过)。不过不能百分之百确定。
近来进行XP升级,手边的机器把win9x给干掉了。
年初到公司确认一下,如果有误一定给大家个说法。


zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
14楼#
发布于:2002-01-05 18:51
对于win16程序没有问题,对于16位console程序取不到.
其实想想就明白, 在16位console里,VWIN32_GetCurrentProcessHandle()不会返回任何有意义的结果.


 :( :(
lxg
lxg
驱动牛犊
驱动牛犊
  • 注册日期2001-12-23
  • 最后登录2005-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-01-08 08:23
可以把原代码发给我吗?
我也写了个这样的程序,可是就是老出问题!!!
谁能帮我?程序在附件中!!!
谢谢!!!
发e-mail给我,重要重要!!!
actionlxg@263.net
谢谢了!!!

freecutelei
驱动牛犊
驱动牛犊
  • 注册日期2003-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-03-22 17:32
楼主怎么搞定的!
游客

返回顶部