首页
社区
课程
招聘
[讨论][求助]遍历共享文件的问题(WNetOpenEnum)
发表于: 2007-7-27 18:56 7326

[讨论][求助]遍历共享文件的问题(WNetOpenEnum)

2007-7-27 18:56
7326
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<Winnetwk.h>
#pragma comment(lib,"Mpr.lib")

int gongxiang(NETRESOURCE netres)
{
       
        NETRESOURCE *pNetres;
        HANDLE hFile;
        DWORD i,a,b,c=100;
       
        i=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,0,&netres,&hFile);
        if(i != NO_ERROR)
        {
                printf("WNetOpenEnum Error is:%d\n",i);
                return 0;
        }
       
        b=sizeof(NETRESOURCE)*4*100000;
        pNetres=(NETRESOURCE *)GlobalAlloc(GPTR, b );
        i=WNetEnumResource(hFile,&a,(void *)pNetres,(DWORD *)&b);
        if(i != NO_ERROR)
        {
                printf("WNetEnumResource Error is:%d\n",i);
                return 0;
        }

        for(i=0;i<a;i++)
        {
                printf("Name is:%s\n",pNetres[i].lpRemoteName);
                if( (pNetres[i].dwUsage & RESOURCEUSAGE_CONTAINER) || (pNetres[i].dwType & RESOURCETYPE_DISK) )
                        gongxiang(pNetres[i]);
        }
        return 0;
}
int main(int argv,char *argc[])
{
        NETRESOURCE netres;
       
        netres.dwScope=RESOURCE_CONNECTED | RESOURCE_GLOBALNET | RESOURCE_REMEMBERED;
        netres.dwType=RESOURCETYPE_ANY | RESOURCETYPE_DISK | RESOURCETYPE_PRINT;
        netres.dwDisplayType=RESOURCEDISPLAYTYPE_DOMAIN | RESOURCEDISPLAYTYPE_SERVER | RESOURCEDISPLAYTYPE_SHARE | RESOURCEDISPLAYTYPE_GENERIC;
        netres.dwUsage=RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER;
        netres.lpLocalName=0;
        netres.lpRemoteName=argc[1];
        netres.lpComment=0;
        netres.lpProvider=0;

        gongxiang(netres);
        return 0;
}

编译出来的文件名为nets.exe,输入nets \\192.168.1.88,这个IP已经共享了C、D、E、F盘,成功是成功了,但是只列出了如下:
Name is:\\192.168.1.88\c
WNetOpenEnum Error is:87
Name is:\\192.168.1.88\d
WNetOpenEnum Error is:87
Name is:\\192.168.1.88\e
WNetOpenEnum Error is:87
Name is:\\192.168.1.88\f
WNetOpenEnum Error is:87

又试了下在cmd下输入了:
nets \\192.168.1.88\c

还是WNetOpenEnum Error is:87,87是参数不正确,但是WNetOpenEnum的参数怎么就不正确了,哪为大哥帮帮忙,小弟十分感谢,调试了好长时间都无法成功,郁闷死了,哎

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 263
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
如何能使用nets \\192.168.1.88\c也可以枚举出c盘下的目录,小弟真的各种参数都换了,但是就是不行,请各位大哥帮帮忙,是我参数哪里错了,实在不知啊,哎
2007-7-27 18:59
0
雪    币: 263
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
怎么没人知道吗?郁闷
2007-7-28 10:36
0
雪    币: 263
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
郁闷,不知道各位写内网传播是怎么写的,我就想指定一个IP和共享盘遍历文件也不可以?麻烦各位帮帮忙,急啊
2007-7-28 17:39
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
用WNetOpenEnum找到的资源,不能再用WNetOpenEnum打开,所以是“参数不正确”。
要再往下列举目录,用FindFirstFile,FindNextFile就可以了
2007-7-31 11:48
0
游客
登录 | 注册 方可回帖
返回
//