Антивирусное
Случайно узнал почему меня (оказывается) причисляли к вирусописателям в 90-х.
В конце 80-х в Союзе было уже много IBM PC, как отечественных (Искра-1030), так и импортных. При этом наблюдалась "война кодировок". Местами это было очень больно: в одной комнате могли стоять два компа, но данные в условный SuperCalc или DBASE приходилось вбивать заново, так как либо знакогенератор не был загружаемый, либо принтер не прошитый и т.п.
Именно такая проблема была на работе у матери, в результате я написал перекодировщик для всех основных используемых форматов файлов: файловые БД, электронные таблицы, тексты, лексикон, еще что-то. Потом раскопал и добавил перекодировку exe-шников TurboBasic, Clipper, FoxBase и/или еще чего-то актуального в то время. Если не ошибаюсь, то последняя версия сама находила строки в exe и ресурсах TurboVision. Потом я увлекся и сделал какую-то TSR-приблуду, которая садилась на int16 и перекодировала клавиатурный ввод для работы "горячих клавиш" в каких-то программах (фишка в том чтобы по стеку вызова понять нужно ли перекодировать). Аналогично для печати, у кого-то даже возникли «проблемы» с печатью примеров неверной кодировки, так как TSR исправлял кодировку на лету. В целом это были хиты, которые разошлись на дискетах, а я был наивным старшеклассником, ибо совсем не коммерциализировал (но в благодарность мне надарили дискет и пускали даже за «IBM AT»).
Перекодировщик файлов умел обходить иерархию директорий и автоматически перекодировать всё неправильное. TurboC в те времена поддерживал asm {}, поэтому в игре «а слабо на пару байт короче» я сделал обход иерархии директорий именно на asm и int21. Сначала я не раздавал исходники, но потом более-менее облагородил (в тогдашнем своём понимании) и в 1990-1991 несколько раз похвастался как умею экономить байты.
Интернет в 1994 только начинался, поэтому с вирусами был местечковый «статус кво» — они появлялись чуть ли не позже антивирусов, которые их лечили. Но летом 1994 случилась эпидемия. Я тогда работал в ISP (Internet Servce Provider) и к нам с подобными проблемами обращались как клиенты, так и знакомые (фактически доступ в Интернет был окном в технологический мир, а офис ISP местом входа в это окно). Поэтому мне не только принесли эту штуку, но и попросили помочь.
Было две версии вируса и две вспышки, причем обе начались с местного «политеха». Не помню что делал плохого этот вирус, кажется просто заражал рекурсивно до посинения, пока что-то не глючило. Лечилку для первой версии я сделал за вечер. Кроме раздачи на дискетах мы отправили этот микро-антивирус всем клиентам, поэтому через 2-3 дня эпидемия закончилась.
Через какое-то время появилась вторая версия. В ней автор что-то поправил, но главное что она была полиморфная. Если не ошибаюсь, тогда как-раз появился DrWeb с эвристическим детектором полиморфных вирусов — он выдавал предупреждение, но не лечил. Какой полиморфный движок использовал автор и насколько сильно его поменял — я и тогда не знал. Помню что сначала несколько озадачился — довольно трудоёмко, без наработок, «на коленках» декодировать инструкции чтобы вычленить «математику» шифровальщика и используемые константы. Но потом добавил в лечилку тривиальный хак — просто использовал для расшифровки фрагмент кода из зараженного файла. На следующий день эпидемия отступила. После этого стало хорошим тоном проверять файлы DrWeb-ом и не запускать если он выдавал предупреждения. Поэтому писать лечилки больше не потребовалось.
Так вот, меня причислили к потенциальным вирусописателям, так как «перекодировщик файлов» из конца 80-х, этот вирус и лечилка имели то-ли одинаковый, то-ли сильно похожий компактный код обхода дерева каталогов. Не помню чтобы я что-то копипастил из кода вируса, но весьма вероятно что лечилку я начал делать из исходников перекодировщика. Еще есть смутные воспоминания, что во второй полиморфной версии был использован мой код обхода директорий из первой версии лечилки.
Предположительно автором вируса был один из студентов «политеха» (даже подозреваю что мой одноклассник), который баловался и нечаянно выпустил эксперимент из-под контроля — так случилась первая эпидемия. А вторую полиморфную версию, похоже, некто сделал намеренно из спортивного интереса.
