rogan321
驱动牛犊
驱动牛犊
  • 注册日期2006-06-29
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望105点
  • 贡献值0点
  • 好评度51点
  • 原创分0分
  • 专家分0分
阅读:1265回复:4

關於隱藏文件或文件夾無法隱藏第一個或最後一個的問題

楼主#
更多 发布于:2007-09-23 11:26
各位先進請教一下,
我從這裡拼湊一些代碼來做隱藏的功能,
也實際可行,
但是有個問題,就是都是用:
RtlMoveMemory(DirInfo, (PUCHAR)DirInfo + offset, *lpBufLenth - position - offset);
來做偏移量隱藏文件,..
那麼如果 當offset值 是零的文件,隱藏就會失敗
像頭尾的文件其offset就是零,當要隱藏此文件即會失敗...
關於此問題 ,是如何解決的?
rogan321
驱动牛犊
驱动牛犊
  • 注册日期2006-06-29
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望105点
  • 贡献值0点
  • 好评度51点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-10-02 16:02
znsoft :
問個白痴問題..要怎麼發iocalldriver,發在哪?
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
板凳#
发布于:2007-09-26 13:41
如果只有一项或最后一项,请再次向下发送iocalldriver
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
rogan321
驱动牛犊
驱动牛犊
  • 注册日期2006-06-29
  • 最后登录2010-12-01
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望105点
  • 贡献值0点
  • 好评度51点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-09-26 09:56
    do
    {
        offset = curDirInfo->NextEntryOffset;

        if( Ls_CheckHideObject(Irp,curDirInfo,DeviceObject))
        {

            if ((0 == offset))
            {
                if (lastDirInfo)
                {
                    lastDirInfo->NextEntryOffset = 0;
                    newLenth -= *lpBufLenth - position;
                }
                else
                {

                        curDirInfo->NextEntryOffset = 0;
                        *lpBufLenth = 0;
                                        return TRUE;
                }
            }
            else
            {
                RtlMoveMemory(curDirInfo, (PUCHAR)curDirInfo + offset, *lpBufLenth - position - offset);
                newLenth -= offset;
                position += offset;
            }
        }
        else
        {
            position += offset;
            lastDirInfo = curDirInfo;
            curDirInfo = (PFILE_BOTH_DIR_INFORMATION)((PUCHAR)curDirInfo + offset);
        }
    } while (0 != offset);

如上面的code ,看論壇都是以RtlMoveMemory來做的
那如果offset 是零..就無法隱藏了..
還是樓上的你指的是其他的事情?
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-09-25 10:01
不知道你是怎么做的,我记得好像是在filter driver里面处理DIRECTORY IRP,然后自己把data进行修改,不记得有头尾的问题。要么放出代码看看?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
游客

返回顶部