StarsunYzL
驱动牛犊
驱动牛犊
  • 注册日期2007-01-08
  • 最后登录2008-08-10
  • 粉丝0
  • 关注0
  • 积分250分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
阅读:3646回复:4

请教关于FSCTL_GET_RETRIEVAL_POINTERS的问题,谢了!

楼主#
更多 发布于:2007-09-07 13:40
先看代码:
#define WINVER 0x0501
#define _WIN32_WINNT 0x0501
#include <iostream>
#include <windows.h>
#include <tchar.h>
#include <Winioctl.h>

int main()
{
    HANDLE hFile;
    DWORD dwRet = 0;
    hFile = CreateFile(_T("C:\\2.txt"), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, 0);
    if (hFile != INVALID_HANDLE_VALUE)
    {
        STARTING_VCN_INPUT_BUFFER InBuf;
        RETRIEVAL_POINTERS_BUFFER OutBuf;
        DWORD dwBytesRet;
        InBuf.StartingVcn.QuadPart = 0;
        ZeroMemory(&OutBuf, sizeof(OutBuf));
        DeviceIoControl(hFile, FSCTL_GET_RETRIEVAL_POINTERS, &InBuf, sizeof(InBuf), &OutBuf, sizeof(OutBuf), &dwBytesRet, NULL);
        dwRet = GetLastError();
        CloseHandle(hFile);
    }
    return dwRet;
}

当2.txt这个文件很小时,DeviceIoControl总是返回ERROR_HANDLE_EOF,但是当我增大2.txt到一定大小时,DeviceIoControl就成功了,而且再减小2.txt到原来的大小DeviceIoControl还是能执行成功,为什么呢???C盘为NTFS格式

最新喜欢:

LeopardLeopar...
时间就像乳沟一样,挤挤总会有的
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-09-07 13:59
NTFS文件系统中,当文件很小时,这个文件会驻留在FILE_RECORD这个结构里,而不会给它分配簇来保存数据
所以使用FSCTL_GET_RETRIEVAL_POINTERS是得不到它的簇列表的
在WINHEX中选中此文件,点位置->簇列表,会告诉你该文件被存在了MFT里

可以通过遍历此文件的属性,找到NTFS_ATTRIBUTE_TYPE_DATA类型的驻留属性来得到该文件的数据
驱动开发者 呵呵
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2007-09-07 14:05
呵呵,楼主在研究那个机器狗病毒吧
驱动开发者 呵呵
StarsunYzL
驱动牛犊
驱动牛犊
  • 注册日期2007-01-08
  • 最后登录2008-08-10
  • 粉丝0
  • 关注0
  • 积分250分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-09-07 14:14
引用第2楼WQXNETQIQI于2007-09-07 14:05发表的  :
呵呵,楼主在研究那个机器狗病毒吧

!!!!!!!!!死咯~~这里也能碰到认识的人???你也在网盟逛????高手!!能否PM你Q给我~
时间就像乳沟一样,挤挤总会有的
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2007-09-07 15:05
- - 我只是最近抓到机器狗那个病毒的样本而已。。。
驱动开发者 呵呵
游客

返回顶部