|
探测远程Windows主机的NetBIOS信息(2) 会话列表: 探测远程主机的当前会话列表。枚举每个会话的相关信息,包括客户端主机的名称,当前用户的名称,活动时间和空闲时间。这可以帮助我们了解远程主机用户的喜好等等。
二)主要函数与相关数据结构分析 1. 建立空会话 WNetAddConnection2(&nr,username,passWord,0); //nr为NETRESOURCE数据结构的对象; //username为建立空会话的用户名,在此将用户名设置为NULL; //password为登陆密码,在此将密码设置为NULL;
2. 撤消空会话 WNetCancelConnection2(ipc,0,TRUE); //ipc为TCHAR的指针,我们可以这样获得: //swprintf(ipc,_T("\\\\%s\\ipc$"),argv[1]),argv[1]为主机名或地址;
3. 探测主机时间 nStatus=NetRemoteTOD(server,(PBYTE*)&pBuf); //参数server为主机的名称或地址; //pBuf为TIME_OF_DAY_INFO数据结构的指针; //nStatus为NET_API_STATUS成员;
4. 探测操作系统指纹 NetServerGetInfo(server,dwLevel,(PBYTE *)&pBuf); //dwLevel为等级数,我们选择的是101级; //pBuf是SERVER_INFO_101数据结构的指针;
5. 探测共享列表 NetShareEnum(server,dwLevel,(PBYTE *)&pBuf,MAX_PREFERRED_LENGTH,&er,&tr,&resume); //dwLevel的等级数为1级; //pBuf是SHARE_INFO_1数据结构的指针; //MAX_PREFERRED_LENGTH指定返回数据的长度; //er指明返回的实际可以枚举的成员数目; //tr返回所有的成员数目; //resume用于继续进行共享搜索;
6. 探测用户列表 NetQueryDisplayInformation(server,dwLevel,i,100,0xFFFFFFFF,&dwRec,(PVOID *)&pBuf); //dwLevel的等级数为1级; //i为枚举的索引; //dwRec返回获取的信息数目;
|