Трояны...

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by W!z@rD, 20 Feb 2006.

  1. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    Всем респект!
    Народ я начинающий кодер(delphi), ну и как все пытаюсь напмсать трояна! =) Так вот помогите! Исходники, статьи, Советы...

    Заранее спасибо...

    А и еще
    как в троях пишут удалённые редакторы реестра...?
    эт каждый ключ(который требует клиент =) ) сканируется и отправляется клиенту?
     
  2. Dronga

    Dronga ВАША реклама ТУТ!!

    Joined:
    1 Jul 2005
    Messages:
    575
    Likes Received:
    239
    Reputations:
    249
  3. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    Редакторы реестра - можно использовать RegEnumValueA/W/ExA/ExW, которую использует например regedit. И экспортирует ее advapi32.dll, а либ для нее в визуал C - advapi32.lib. Она позволяет получить все значения (переменные которые в регедити справа отображаются) у какого-то одного ключа. А ключи можно проенумировать ф-ией RegEnumKeyA/W/ExA/ExW

    Можно сделать по такой схеме - клиент шлет запрос, например
    GETKEY HKLM/Software/Microsoft/Windows NT/Winlogon
    а ему в ответ сервер шлет все значения в ключе Winlogon
    allocatecdroms REG_SZ 0
    allocatedasd REG_SZ 0
    allocatefloppies REG_SZ
    name type value
    ...
    и т д
    клиент строит из этого список

    А если есть подключи они тоже отправляются... На случаи если клиент хочет например изменить ключ (имя ключа) или значение параметра в ключе, можно придумать свои команды, например RNKEY, SETVAL, и т д

    Ф-ие для работы с реестром такие
    (msdn.microsoft.com, никуда не денешься)

    LONG RegEnumValue(
    HKEY hKey,
    DWORD dwIndex,
    LPTSTR lpValueName,
    LPDWORD lpcValueName,
    LPDWORD lpReserved,
    LPDWORD lpType,
    LPBYTE lpData,
    LPDWORD lpcbData
    );

    LONG RegEnumKey(
    HKEY hKey,
    DWORD dwIndex,
    LPTSTR lpName,
    DWORD cchName
    );


    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/regenumvalue.asp
     
  4. F1reF0x

    F1reF0x Elder - Старейшина

    Joined:
    13 Nov 2004
    Messages:
    14
    Likes Received:
    9
    Reputations:
    10
    Если клиент-серверное то вот примерной как надо делать

    Клиент (бэк конект)

    WSAStartup // Иницализируем Winsock
    Socket // Создаём сокет
    Connect // Подключаемся к нашему серверу
    if .. then .. // Если пришло например "R" то перезагрузить компьютер
    WSACleanup // Уничтожаем Winsock

    Сервер

    WSAStartup // Иницализируем Winsock
    Socket // Создаём сокет
    Bind // Вашаем сервер на определёный порт
    Send // Отправляем клиент что либо
    WSACleanup // Выгружаем WinSock

    Winsock. Общий принцип таков.
     
  5. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    Хы... принцип я знаю =) вот только интересуюсь редактором реестра =)
     
  6. drmist

    drmist Member

    Joined:
    8 Oct 2005
    Messages:
    307
    Likes Received:
    94
    Reputations:
    80
    W!z@rD
    Про редактор реестра тебе уже написали.
    можешь посмотреть вот:
    http://www.security-teams.net/index.php?showtopic=3059
    правда на Си - но там перевести как нечего делать.
    Еще есть недописанный RAT - функция download, чтение директорий, вывод списка дисков и кое-что еще. Рееста нет. Тоже на Си. Могу послать мылом, если хочешь.

    Вобще трои на Delphi имхо не рулят.