информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыЗа кого нас держат?Портрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
вот так 17.01.03 01:56  Число просмотров: 957
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
вот такую процедуру юзаю для нахождения всех шар на машине (включая скрытые):
AnsiString __fastcall shareenum(AnsiString host)
{
AnsiString ret="";
if(netapi->ismd)
{
_share_info_1 *BufPtr=(_share_info_1 *)malloc(128*sizeof(_share_info_1));
unsigned short er=0,tr=0;char *hst=0;if(host!="")hst=host.c_str();
DWORD res = netapi->mdNetShareEnum (hst, 1,(char *)BufPtr,128*sizeof(_share_info_1) , &er, &tr);
if(res == ERROR_SUCCESS)
{
for(int i=0;i<er;i++)
{
if(!(BufPtr[i].shi1_type&3))
{ret+=((AnsiString)(char *)&BufPtr[i].shi1_netname[0]+(AnsiString)(char)13);}
}
}else{ret=(AnsiString)(char)1;};
free(BufPtr);
}else
{
wchar_t sname[64];memset(&sname[0],0,128);
MultiByteToWideChar(CP_ACP,MB_USEGLYPHCHARS,host.c_str(),-1,&sname[0],64);
_SHARE_INFO_1 *BufPtr=0;
DWORD er=0,te=0;
wchar_t *sxname=0;if(host!="")sxname=sname;
DWORD res=netapi->ntNetShareEnum(sxname,1,(unsigned char **)&BufPtr,0xffff,&er,&te,0);
if(res==5){servtryconnect(host,"");res=netapi->ntNetShareEnum(sxname,1,(unsigned char **)&BufPtr,0xffff,&er,&te,0);};
if(res == ERROR_SUCCESS)
{
for(int i=0;i<er;i++)
{
if(!(BufPtr[i].shi1_type&3))
{ret+=((AnsiString)BufPtr[i].shi1_netname+(AnsiString)(char)13);}
}
netapi->nvNetApiBufferFree(BufPtr);
}else{ret=(AnsiString)(char)1;};

}

return ret;
}

mdNetShareEnum - это NetShareEnum 9x виндоы искать в svrapi.dll
ntNetShareEnum - это для NTшек -в netapi32.dll
host начинаеться с \\
если под другим юзером-паролем - юзай NetUseAdd
если хошь следовать советам M$-юзай WNet функции

ЗЫ Не ругайте за ламерсий билдер Ж;-)
<programming>
[VC++] Как получит список зашаренных ресурсов 16.01.03 09:44  
Автор: Step <Step Alex> Статус: Member
<"чистая" ссылка>
Народ помогите - где посмотреть, почитать, изучить - как из программы посмотреть список зашаренных ресурсов и пермишены на них.
Идея такова - я уже получил список компов в сети + список пользователей с PDC.... теперь я хочу узнать на какие ресурсы в сети выбранный пользователь имеет права.
Подскажите хотя-бы с чего начать, за что зацепиться....
вот так 17.01.03 01:56  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
вот такую процедуру юзаю для нахождения всех шар на машине (включая скрытые):
AnsiString __fastcall shareenum(AnsiString host)
{
AnsiString ret="";
if(netapi->ismd)
{
_share_info_1 *BufPtr=(_share_info_1 *)malloc(128*sizeof(_share_info_1));
unsigned short er=0,tr=0;char *hst=0;if(host!="")hst=host.c_str();
DWORD res = netapi->mdNetShareEnum (hst, 1,(char *)BufPtr,128*sizeof(_share_info_1) , &er, &tr);
if(res == ERROR_SUCCESS)
{
for(int i=0;i<er;i++)
{
if(!(BufPtr[i].shi1_type&3))
{ret+=((AnsiString)(char *)&BufPtr[i].shi1_netname[0]+(AnsiString)(char)13);}
}
}else{ret=(AnsiString)(char)1;};
free(BufPtr);
}else
{
wchar_t sname[64];memset(&sname[0],0,128);
MultiByteToWideChar(CP_ACP,MB_USEGLYPHCHARS,host.c_str(),-1,&sname[0],64);
_SHARE_INFO_1 *BufPtr=0;
DWORD er=0,te=0;
wchar_t *sxname=0;if(host!="")sxname=sname;
DWORD res=netapi->ntNetShareEnum(sxname,1,(unsigned char **)&BufPtr,0xffff,&er,&te,0);
if(res==5){servtryconnect(host,"");res=netapi->ntNetShareEnum(sxname,1,(unsigned char **)&BufPtr,0xffff,&er,&te,0);};
if(res == ERROR_SUCCESS)
{
for(int i=0;i<er;i++)
{
if(!(BufPtr[i].shi1_type&3))
{ret+=((AnsiString)BufPtr[i].shi1_netname+(AnsiString)(char)13);}
}
netapi->nvNetApiBufferFree(BufPtr);
}else{ret=(AnsiString)(char)1;};

}

return ret;
}

mdNetShareEnum - это NetShareEnum 9x виндоы искать в svrapi.dll
ntNetShareEnum - это для NTшек -в netapi32.dll
host начинаеться с \\
если под другим юзером-паролем - юзай NetUseAdd
если хошь следовать советам M$-юзай WNet функции

ЗЫ Не ругайте за ламерсий билдер Ж;-)
[VC++] Попробуй погоняй функции группы Net... — к примеру, NetShareEnum, NetShareGetInfo 16.01.03 14:09  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Все получилось. Спасиб. (и Килеру тоже). 17.01.03 09:30  
Автор: Step <Step Alex> Статус: Member
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach