В. Водолазкий Снова о вирусах - неформальная рецензия на брошюру П.Л.Хижняка "Пишем вирус и антивирус" Статья содержит рецензию на книгу П.Л.Хижняка "Пишем вирус и антивирус". Общий смысл рецензии - макулатура. "Не ходите, дети, в Африку гулять!" К.И.Чуковский. "Доктор Айболит". В последнее время появляется все больше и больше публикаций на вирусную иа антивирусную темы. Постепенно формируются группы авторов (да и рецензентов), которые благосклонно относятся к одним коллегам и напропалую поносят других. Автор честно признается, что недолюбливает Н.Н.Безрукова с его безудержной рекламой своей уже устаревшей "Компьютерной вирусологии" и постоянными заявлениями об умственной неполноценности авторов вирусов. Ну да ладно. Именно поэтому у автора не поднимается рука писать рецензии на "Компьютерную вирусологию" и ее близнецов-братьев, вышедших за последние два года в четырех или пяти издательствах. - Ага! - напишет таинственный Б.Н.Н. в очередном выпуске Софтпанорамы, - на слона Моська тявкать испугалась! Мелковато, господа! - Да нет, - лениво, ибо неохота тратить силы на бесплодные перепалки, возражает автор. - Просто нет смысла. Ваша реклама уже сидит в печенках у доброй половины всех программистов и пользователей, а следовательно, я ничего нового не добавлю. Все, хватит! Иначе рецензия превратится в воображаемый диалог с воображаемым оппонентом. Читатель уже начинает недовольно хмурить брови, а если автор и в следующем абзаце не вернется к теме статьи, то ты, читатель, зевнешь и перевернешь страницу. Итак, сегодня разговор пойдет о брошюре Петра Львовича Хижняка "Пишем вирус и антивирус", выпущенной издательством ИНТО в конце 1991 года общим тиражом 100 000 экземпляров. Вначале об авторе. (Далее под автором мы будем понимать уважаемого господина Хижняка П.Л.). К сожалению, не удастся привести его полную биографию, основанную на воспоминаниях его товарищей по детскому саду. Но издатели о нас подумали и вот чем можно порадовать читателя: "Петр Львович Хижняк известен советским пользователям IBM-совместимых компьютеров по его книге "Lotus 1-2-3. Справочное руководство" (М., изд. АПН, 1990 г. - 260 с.). В 1988 г. он читал курс лекций по применению персональных компьютеров во Флоридском государственном университете (США). Именно там он близко познакомился с компьютерными вирусами и разработал некоторые концепции защиты от вирусов при работе группы пользователей на персональном компьютере." Красиво звучит! Ну что же, надо полагать из опуса П.Л.Хижняка можно будет узнать кое-что из того, что он преподавал буржуазным студентам, а также познакомиться с его концепциями защиты от вирусов. Теперь читаем аннотацию. "В книге описаны методы создания эффективных антивирусных программ- детекторов и фагов.С этой целью рассмотрены принципы функционирования некоторых типов вирусов и приведен ассемблерный код простейшего COM-вируса с подробным рассказом о фазах создания вируса и о работе отдельных его частей. Приведен также текст антивирусной программы-детектора и фага для данного конкретного вируса. Подробно описан процесс создания программы-антивируса и антивируса в среде MS-DOS для IBM PC-совместимых (орфография сохранена - В.В.В.) компьютеров. В конце книги дана краткая аннотация ряда публикаций по вирусам и антивирусам. Книга рассчитана на программистов различных уровней подготовки и на пользователей IBM-совместимых компьютеров." Та-а-ак... О концепциях уже ни слова. И об опыте общения с подрастающими "буржуинами" тоже... Ну да ладно, может что-нибудь есть внутри? (Иначе просто непонятно, зачем эту информацию выносить прямо на обложку!) Начинаем читать. Из введения мы узнаем, что компьютерами пользоваться опасно, так как уже бывали случаи, что ошибки в программах приводили к аварии ядерного реактора (?), а также предполагается, что компьютер, зараженный вирусом, может запустить ракету с атомной боеголовкой. Далее описаны еще кое-какие страхи, и в конце концов автор ставит перед читателем три вопроса (почти по Чернышевскому, но у того было всего два - кто виноват? и что делать?) : - откуда взялись компьютерные вирусы? - что это такое? - как с ними бороться? После этого, заявляя, что на первый вопрос читатель ответит самостоятельно, (вероятно так читают лекции во Флоридском университете), автор начинает отвечать, хотя и весьма убого, на второй, а затем претендует на подробное освещение третьего. Не в обиду автору будь сказано, но "теоретическая часть" выглядит весьма скромно. Даже в "Компьютерной вирусологии" эти вопросы освещены гораздо подробнее. В то же время следует отметить глубокие познания автора в организации и функционировании операционной системы MS-DOS, которыми он щедро делится с читателями. Чего стоит, например, заявление: "Поскольку в .COM-файле, если не принимать специальных мер, адрес входа всегда равен 100h, то для передачи управления по этому адресу вирус может использовать длинный переход и не рассчитывать относительное смещение адреса, учитывающее длину заражаемой программы" (стр.6). Блестяще! Но какие меры надо предпринять, чтобы адрес входа COM-файла начал отличаться от 100h, автор не сообщает. Я кстати также не могу помочь непонятливому читателю, потому что операционная система при загрузке COM-файла ВСЕГДА (несмотря на специальные меры П.Л.Хижняка) передает управление по адресу CS:100h! А что касается длинного перехода, то я хочу порадовать Петра Львовича. Не нужен ни длинный переход, ни вычисление каких -то смещений. Начиная с самых первых вирусов (DOS-62, он же Vienna), эта операция выполняется следующим образом: mov di,100h push di ret И все! И незачем морочить читателю голову! Ну да ладно. Сорвался, позвольте замереть перед вами в глубоком пардоне. Это все, как говорится, цветочки. Я согласен, что у каждого может быть свой взгляд на разработку программного обеспечения и навязывать какое-то решение просто неприлично. Но идем дальше. "Не предполагая у читателя досконального знания языка ассемблера, прерываний и функций MS-DOS и BIOS, мы будем давать по возможности полные комментарии к каждой структурной части программы-вируса и антивируса" (стр.10). И на том спасибо! Однако, перелистав страницы, обнаруживаешь, что все комментарии в листингах программы написаны на английском. Конечно читателю приятно полагать, что его считают не глупее студента Флоридского университета, но на мой взгляд, книжка для русского человека должна быть написана по-русски. Ну хватит цепляться! - начинает негодовать читатель, - все равно любой пользователь IBM должен хоть немного понимать по-английски. Вот пусть и подучится. Но на это возражение у меня тоже припасен ответ (а иначе я бы и не стал давать слово сердитому читателю). Чему хорошему может научиться читатель при изобилии грамматических ошибок в английском тексте? Примеры? Пожалуйста. Во-первых, известное всем программистам слово Hello нигде не пишется как Hallo (хотя во Флориде я не бывал). Во-вторых, при разработке антивируса автор предлагает использовать для включения фага ключ /q - от слова qure, которое якобы означает "лечить" (стр. 47). На самом же деле, это слово пишется : cure, что и подтверждают многочисленные примеры комментариев в листинге программы. Как и обещано было в аннотации к брошюре (ну не могу я называть этот опус книгой, не могу!), действительно приведены исходные тексты вируса, поражающего COMфайлы и детектора-фага для него. Я не буду детально анализировать коды приведенных в книге ассемблерных программ, поскольку это займет слишком много места и поможет только начинающим писателям вирусов. Хочу только отметить, что если ты, читатель, начнешь писать вирусы по мотивам произведения П.Л.Хижняка, то Н.Н.Безруков может спать спокойно - ты никогда не взорвешь реактор и не запустишь баллистическую ракету. Ты все время будешь бороться с несуществующими трудностями и писать настолько замысловатый код, что не сможешь разобраться в нем и через две недели! Я понимаю, что обвинения выглядят достаточно голословными, но не приводить же на страницах журанала вирус, выполняющий все те же функции, но короче в два раза! А теперь коротко подведем итоги. Прежде всего хочу сослаться на послесловие к брошюре. "...Если не пренебрегать правилами вирусной безопасности и не перенасыщать безо всякой системы ваш винчестер играми и другими программами с сомнительным происхождением, можно вполне выйти из этой борьбы, если не победителем, то уж во всяком случае без существенных потерь. Например, у автора этой книги, который чуть ли не каждую неделю борется с вирусами, проникающими на компьютеры его друзей, за два последних года в результате применения системы мер безопасности не было замечено (тьфу-тьфу!) ни одного вируса. А если вирус все же появится, надо быть во всеоружии. Именно на то, чтобы дать читателю такое оружие или хотя бы познакомить с тем, как оно куется, и нацелена данная книга. Удачи!" Я готов согласиться только с "тьфу-тьфу!" и с последним словом. Да, читатель, тебе действительно потребуется невероятное везение, чтобы, прочитав эту брошюру, "быть во всеоружии"! Что касается системы мер безопасности, которые, как читатель наверное уже догадался, были разработаны "именно там" (см.выше), то они представляют собой краткий (ну очень краткий) конспект рекомендаций Н.Н.Безрукова и уместились на половине страницы. Господа спонсоры! Свозите меня почитать лекции в Штаты, я напишу две страницы подобных сентенций! Итак, что же мы имеем за 10 рублей? Из трех вопросов (по три рубля тридцать три копейки каждый) мы не получили вразумительного ответа ни на один! Первый вопрос (откуда взялись вирусы?) автор просто "зажилил". Второй (что это такое?) так и остался вопросом. Хотя, как говорится, умный догадается, а дураку и не нужно. Третий вопрос (как с эти бороться?) естественно тоже остался без ответа. А поэтому ответим на главный вопрос, который волнует читателя, покупать ли книжку? Если вы хотите научится бороться с вирусами, то наверное нет. Ничего интересного вы здесь не найдете. Если вы хотите научиться писать вирусы, то тоже не стоит - по этой книге хорошо врага запутывать, а не чему-то учиться. А вот если вы хотите написать на эту книгу злую рецензию, как это сделал я - не жалейте червонца! Здесь столько ляпов, что хватит надолго! Удачи Вам, господа! Литература 1. П.Л.Хижняк. Пишем вирус и антивирус. П/ред. И.М.Овсянниковой. - М: ИНТО, 1991, - 90 с. 2. Н.Н.Безруков. Компьютерная вирусология. Справочное руководство. К: УРЕ, 1991.