sophit
驱动牛犊
驱动牛犊
  • 注册日期2005-10-21
  • 最后登录2011-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望30点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
40楼#
发布于:2007-11-30 16:11
怎样解除隐藏啊?RemoveHideObj函数里应该怎么编写?CHAR DevicePath[] = "\\\\.\\SFilter";
    DWORD    junk;                            // discard results
    WCHAR    inBuffer[256];
    HANDLE hDevice;

    ZeroMemory(inBuffer, sizeof(inBuffer));
    MultiByteToWideChar(CP_ACP, 0, lpName, strlen(lpName), inBuffer, sizeof(inBuffer));

    hDevice = CreateFile(DevicePath,
                        0,
                        FILE_SHARE_READ | FILE_SHARE_WRITE,
                        NULL,
                        OPEN_EXISTING,
                        0,
                        NULL);
    
    if (INVALID_HANDLE_VALUE == hDevice)
    {
        printf("%s Device Failed Error Code:[%08x]\n", DevicePath, GetLastError());
        return;
    }
    if (CDO_FLAG_FILE & Flag)
    {
        if(!DeviceIoControl(hDevice, CDO_REMOVE_FILE,
                            inBuffer, sizeof(inBuffer),
                            NULL, 0,
                            &junk, NULL))
        {
            printf("DeviceIoControl Error Code:[%08x]\n", GetLastError());
        }
        else
        {
            printf("CDO_REMOVE_FILE %ws\n", inBuffer);
        }
    }
    
    if (CDO_FLAG_DIRECTORY & Flag)
    {
        if(!DeviceIoControl(hDevice, CDO_REMOVE_DIRECTORY,
                            inBuffer, sizeof(inBuffer),
                            NULL, 0,
                            &junk, NULL))
        {
            printf("DeviceIoControl Error Code:[%08x]\n", GetLastError());
        }
        else
        {
            printf("CDO_REMOVE_DIRECTORY %ws\n", inBuffer);
        }
    }
这样行吗
futuregis
驱动牛犊
驱动牛犊
  • 注册日期2005-01-01
  • 最后登录2009-07-08
  • 粉丝0
  • 关注0
  • 积分156分
  • 威望16点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
41楼#
发布于:2007-12-17 15:56
好东西,顶
wenyurs
驱动牛犊
驱动牛犊
  • 注册日期2006-02-15
  • 最后登录2011-02-25
  • 粉丝2
  • 关注0
  • 积分190分
  • 威望128点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
42楼#
发布于:2007-12-25 10:38
本人正在学习文件驱动开发,谢谢楼主
zhouweizhu
驱动牛犊
驱动牛犊
  • 注册日期2007-05-18
  • 最后登录2010-01-18
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望15点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
43楼#
发布于:2008-01-18 19:56
一定要顶
没什么好说的
reebox
驱动牛犊
驱动牛犊
  • 注册日期2007-11-20
  • 最后登录2009-11-10
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望54点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
44楼#
发布于:2008-02-20 11:16
学习
fhqpdcn
驱动牛犊
驱动牛犊
  • 注册日期2007-06-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望86点
  • 贡献值1点
  • 好评度8点
  • 原创分0分
  • 专家分0分
45楼#
发布于:2008-03-18 13:26
谢谢楼主共享。。先学习学习
我是菜鸟
black73908
驱动牛犊
驱动牛犊
  • 注册日期2006-09-20
  • 最后登录2012-05-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
46楼#
发布于:2008-03-27 09:02
第一个隐藏不了
第一个隐藏不了 有BUG
JACK76
reebox
驱动牛犊
驱动牛犊
  • 注册日期2007-11-20
  • 最后登录2009-11-10
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望54点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
47楼#
发布于:2008-03-28 16:17
谢谢,研究下!
zhtjia
驱动牛犊
驱动牛犊
  • 注册日期2007-10-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分187分
  • 威望74点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
48楼#
发布于:2008-04-01 08:13
DirectoryControlComplete proc DeviceObject,pIrp,Context
    pushad
    invoke KeSetEvent,Context,IO_NO_INCREMENT,0
    popad
    mov eax,STATUS_MORE_PROCESSING_REQUIRED
    ret
DirectoryControlComplete endp
 
DispatchDirectoryControl proc DeviceObject,pIrp
    local waitEvent:KEVENT
    pushad
 
    mov edx,pIrp
    mov esi,[edx+60h]    ;CurrentStackLocation
    .if byte ptr[esi+1]!=1 || byte ptr[edx+20h]==KernelMode || dword ptr[esi+0ch]!=3
        jmp _end
    .endif
 
    invoke KeInitializeEvent,addr waitEvent,NotificationEvent,0
 
    mov edx,pIrp    ;IoCopyCurrentIrpStackLocationToNext
    mov esi,[edx+60h]
    mov ecx,7
    lea edi,[esi-sizeof IO_STACK_LOCATION]    ;[esi-24h]
    rep movsd
 
    mov edx,pIrp        ;IoSetCompleteRoutine
    mov esi,[edx+60h]
    sub esi,24h
    mov [esi+1ch],offset DirectoryControlComplete
    lea eax,waitEvent
    mov [esi+20h],eax        ;Context
    mov byte ptr[esi+3h],SL_INVOKE_ON_SUCCESS or SL_INVOKE_ON_ERROR    or \
                SL_INVOKE_ON_CANCEL
 
    mov edx,pIrp
    mov ecx,DeviceObject
    mov ecx,[ecx+28h]    ;DeviceExtension
    mov ecx,(HOOK_EXTENSION ptr[ecx]).FileSystem
    call IofCallDriver
 
    .if eax == STATUS_PENDING
        invoke KeWaitForSingleObject,addr waitEvent,Executive,KernelMode,0,0
    .endif
    mov edx,pIrp
    mov esi,[edx+60h]
;    .if eax != STATUS_SUCCESS || dword ptr[esi+4] == 0
;        jmp _1
;    .endif
;    invoke HandleDirectoryControl,dword ptr[edx+3ch],esi
_1:
    popad
    invoke IoCompleteRequest,pIrp,IO_NO_INCREMENT
    ret
_end:
    popad
    mov edx,pIrp
    inc byte ptr[edx+23h]        ;CurrentLocation
    add dword ptr[edx+60h],24h    ;CurrentStackLocation
    mov ecx,DeviceObject
    mov ecx,[ecx+28h]    ;DeviceExtension
    mov ecx,(HOOK_EXTENSION ptr[ecx]).FileSystem
    call IofCallDriver
    ret
DispatchDirectoryControl endp
 
 
这个是依照你的代码写的,为什么不行呢??
 
驱网无线,快乐无限
elva1
驱动牛犊
驱动牛犊
  • 注册日期2006-03-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望34点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
49楼#
发布于:2008-04-01 11:20
支持楼主的共享精神!
wyhero
驱动牛犊
驱动牛犊
  • 注册日期2008-03-17
  • 最后登录2016-02-02
  • 粉丝0
  • 关注0
  • 积分67分
  • 威望563点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
50楼#
发布于:2008-04-01 12:43
学习一下,谢谢楼主
elva1
驱动牛犊
驱动牛犊
  • 注册日期2006-03-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望34点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
51楼#
发布于:2008-04-01 14:37
在cmd下可以看到隐藏的文件,可以直接dir出来
CyberEagle
驱动牛犊
驱动牛犊
  • 注册日期2008-03-28
  • 最后登录2008-04-06
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
52楼#
发布于:2008-04-06 10:27
非常需要,文件操作我都不懂好好学习。
bluetiger
驱动牛犊
驱动牛犊
  • 注册日期2003-02-22
  • 最后登录2010-09-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望100点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
53楼#
发布于:2008-06-13 17:57
thank you
xumn56
驱动牛犊
驱动牛犊
  • 注册日期2008-04-15
  • 最后登录2008-07-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
54楼#
发布于:2008-06-23 15:03
学习。谢谢
hj212001
驱动牛犊
驱动牛犊
  • 注册日期2008-07-11
  • 最后登录2010-08-04
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望86点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
55楼#
发布于:2008-07-11 15:22
赞一个
xmaker
驱动牛犊
驱动牛犊
  • 注册日期2005-11-13
  • 最后登录2009-03-21
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望29点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
56楼#
发布于:2008-08-09 01:34
这种隐藏方法很好,很不错。可以用来防止文件被感染,应用到安全方面很理想!不用阴得太深,而又能防止目录文件被枚举到。相比其他方法不会造成读取相对路径程序出错。比如说:你隐藏了某个大型游戏,这个游戏还可以正常运行!
但是其他的方法就会造成系统崩溃了(hook ZwQueryDirectoryFile),只能用来隐藏rootkit类的单个执行文件比较合适。
但是,该程序有个严重的BUG,我一直没有找出来,就是某些目录文件可能没法隐藏!!!!!!!(有时,第一个添加隐藏的目录打死都隐不了)

希望作者能解决该漏洞,如果哪位朋友能解决请给我一份解决方法:xmaker@126.com
super_kevin
驱动牛犊
驱动牛犊
  • 注册日期2008-08-03
  • 最后登录2009-05-20
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望22点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
57楼#
发布于:2008-08-09 15:05
引用第6楼rockmanxyj于2007-09-06 17:08发表的  :
学习

混下威望
一切皆有可能!
zrhai
驱动牛犊
驱动牛犊
  • 注册日期2006-09-28
  • 最后登录2011-10-18
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望42点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
58楼#
发布于:2008-08-09 19:05
谢谢,学习了
shoedust
驱动牛犊
驱动牛犊
  • 注册日期2007-01-12
  • 最后登录2009-04-24
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望8点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
59楼#
发布于:2008-08-19 14:28
刚下了,有空研究下
游客

返回顶部