- [Duke's Virus Labs #4] - [Page 25] - Немного критики про Duke'а (c) by Tankist/Hell13 В журнале DVL уже стало привычным кого-нибудь критиковать (см. DVL1-07, DVL2-13, DVL2-14, DVL3-21). Автором этих четырех текстов является ни кто иной, как Duke/SMF. Поэтому очередной жертвой стал он сам ("не судите, да не будете судимы..."). Помнится, как-то давно вышел в свет DVL#1, в котором говорилось: "Сразу хочу заметить, что этот номер будет интересен в первую очередь начинающим вирмейкерам". И был там вирус HLLC.Friend.3573 или Friend-1, в котором встречалась строчка exec(st,paramstr(1)+paramstr(2)+paramstr(3)+paramstr(4)+ paramstr(5)+paramstr(6)+paramstr(7)); Это вы чему же молодых учите? Или это деструктивный эффект? Тогда почему об этом ничего не сказано (а даже сказано наоборот)? Обзовем это первым багом и пойдем дальше. Если хотите увидеть еще один недочет, то поставьте writeln(st) после копирайтов и запустите: появится много-много надписей. И, наконец, очень спорный вопрос, что "в одной директории не будет нескольких COM-файлов с одинаковой длиной"... рандомайзу использовать надо! Но вот вышел DVL#2, а вместе с ним HLLC.Friend.5216 или Friend-3. И что мы видим? Баги пофиксены, но о старых ошибках ни слова! И по-прежнему не использован рандомайз и ничего не сказано о том, что перед запуском рекомендуется переименовать исходник в COM... А зачем? Ведь и так работает. Кому какая разница сколько раз запускается EXEшник? Но самое парадоксальное, что там появляется функция function ReadKey : Char; {аналог функции ReadKey модуля Crt} var chrout : char; CheckBreak: boolean; begin Inline( $B4/$07/ { MOV AH,$07 } $CD/$21/ { INT $21 } $88/$86/>CHROUT); { MOV >chrout[bp],AL } if CheckBreak and (chrout = #3) then begin Inline( $CD/$23); { INT $23 } end; ReadKey := chrout; end; Я долго пытался ее понять, но так и не смог. ЛОКАЛЬНАЯ переменная CheckBreak НИКОГДА не обращается в true. Или автор хотел использовать Crt.CheckBreak? :-( В DVL#3 был вирус, лишенный всех описанных багов (их просто некуда было засунуть), но только обидно, что о них никто и словом не обмолвился. Ведь это обучающий журнал, и не стоит других учить своим ошибкам. P.S. Многоуважаемый Duke. Всем свойственно делать ошибки (в том числе и орфографические, которых в журнале достаточно). "Воспоминания о вашем..."- это ведь и к тебе можно отнести. :( P.P.S. А почему ты так не любишь антивирусников? С ними ведь жить интересней.