Давным-давно по вынужденной необходимости пришлось работать в далёком филиале одной серьезной конторы программистом. Повезло, конечно, работа хорошая, но с нюансами. Одним из нюансов было то, что главный местный начальник очень гордился вверенным ему объектом, а в частности, разработанной местными программистами программы, которая решала различные Нужные и Важные задачи. Настолько гордился, что всерьёз рассчитывал сначала добиться внедрения программы в самой Москве, а потом в качестве главного идеолога и вдохновителя проекта и самому перевестись в управление. Но случилось страшное: в Москве, оказывается, тоже разработали подобную программу, и «спустили» её на внедрение.
Что делать? Внедрять надо, иначе будут санкции, но тогда свою программу придётся пустить под нож — прощайте, мечты о подмосковной даче и тёплом кабинете!
Программистам была поставлена задача написать вирус. В срочном порядке были перелопачены тонны компьютерных журналов (интернета нет), в круглосуточное распоряжение выданы автомобили с водителями, лучший паёк, лучшие компьютеры, любые диски с любым софтом.
И вот вирус написан. Не обнаруживаемый ни одним известным антивирусом, различными анализаторами и прочими подобными приложениями, он немедленно заразил все доступные компьютеры. Функция очень простая: вражеская программа работать не должна! Она и не работала, постоянно вываливая ошибки: то данные некорректны, то операция недопустима, то файл неверного формата. А как вы хотели, когда посреди выполнения кусок кода или данных вдруг исчезает из памяти?..
Впрочем, начальник неожиданно «спалился» на недостачах и был сослан ещё дальше, а на внедрение программы махнули рукой. Я же получил бесценный практический опыт анализа ОС на уязвимости и твёрдую уверенность: причина всех вирусных эпидемий в кривости архитектуры винды. Пока она остаётся прежней, вирусы неизбежны. С тех пор прошло более 10 лет...
История про «ворону» напомнила и мне моё детство. Стояли у нас в школе «Корветы», работали под управлением CP/M. У нас был экспериментальный класс, и основы алгоритмизации нам начали давать ещё в начальной школе.
Классе в четвёртом какими-то серыми путями я заимел-таки свою собственную пятидюймовую дискету для того, чтобы хранить программки. Теперь меня иногда пускали за учительский компьютер, ведь дисковод был только там. Программки мои много места не занимали, и я, естественно, скопировал к себе все игры, что нашёл. Сейчас даже смешно вспоминать, что на дискету в 360 КБ можно было закинуть неплохую пачку игрушек.
Самой любимой игрой у всех были «гоночки» наподобие тех, что стояли в вокзальных игровых автоматах с рулями. Бежит дорога вертикально, скачет чуть влево, чуть вправо, а по бокам домики, деревья и непонятные звёздочки — всё на простой символьной псевдографике. Через какое-то время играть поднадоело, и я стал изучать другой софт. Добрался я и до «диск-эдита». Открыл, полазил, ни черта толком не понял, но в ходе ковыряний нашел шибко знакомые деревца, домики и звездочки — наткнулся на файл гоночек. В результате экспериментов слово «бензин» было заменено на «топляк», «старт» на «гони!», а декорации по бокам трассы кое-где стали содержать слово «заправка».
Как весело было потом смотреть на одноклассников, которые, летя на всех парах, замечали пробегающую справа «заправку» и со всей дурости разбивались о бордюр с надеждой на халяву дозаправиться!
Тут часто авторы пишут о том, насколько они умны; я же напишу о том, насколько был глуп.
На дворе начало девяностых. Я продаю подаренный мне когда-то родителями ЕС1841 и на накопленные деньги покупаю чудо инженерной мысли — 166-й Celeron с двумя планками по 8 метров, видюхой S3 Trio и веником на гиг. Сам я тогда учился в школе, родители перебивались кое-как, чтобы только на еду хватало, но уже в то время мне хотелось полазить в интернете, и спустя год я накопил денег на свой первый диалап-модем. В Минске цены за минуту были заоблачными, поэтому я занимался тем, что сканировал IP-диапазоны и «одалживал» логины и пароли из PWL-файлов других счастливых обладателей интернета.
Всё было хорошо, пока мне не позвонил человек с угрозами и требованием вернуть ему деньги. Оказалось, у одного из провайдеров появился «личный кабинет». В нём можно было узнать не только количество потраченных средств, но и телефон, с которого осуществлялась связь. Денег у меня, да и у родителей не было (их я, конечно, забыл посвятить в свои действия), так что я все его угрозы проигнорировал, сказав, что ничего такого не было. Погрозив мне милицией, товарищ бросил трубку.
Почистив логи, я почти поверил, что меня пронесло, но всё же решил подготовиться к визиту злых дядек из милиции. Смастерил защиту от дурака: кнопка включения замыкалась на корпус так, что с открытой крышкой комп не стартовал.
В тот же день меня обрадовали визитом ребята в форме. Я уже готов был во всем признаться, а в мыслях строил планы, как глупо в колонии будет звучать моя легенда: «А я, пацаны, интернет воровал». Один из этих деятелей решил показать мне на практике, что в логах всё прекрасно видно. Ткнул пальцем в питание — не работает. Ха — комп так и стоял на столе без крышки!
Серое братство начало советоваться, как должны быть включены в материнку светодиоды и кнопки. Что-то поменяли местами и даже имели наглость попросить у меня мануал от материнки, который я (к превеликому сожалению!) не нашёл. Апофеозом было явление моего пьяного отца, который заявил, что компьютер уже год не работает: «Ищите для игр себе другой!»
Милиционеры извинились и ушли. Отец до сих пор ничего не помнит, а я с тех пор решил вести себя хорошо. Всё-таки доверять судьбу микропереключателю — не самая лучшая идея.
После развала «нерушимого» было мне лет 12–13. Известная мне компьютерная техника представляла собой «спектрумы», «байты» и «дельты-с». Из языков я знал лишь вездесущий Бейсик. Но история не об этом.
Появился у нас в городе компьютерный кружок для детей, на который мы с друзьями тут же записались. Итак, первое занятие: нам объясняют, что нажать, чтобы загрузилась игра. Называлась она «Bopoha» (ворона). Предназначение — в лёгкой игровой форме обучить использованию клавиатуры. Из геометрических фигур было составлено подобие вороны с открытым клювом. В открытый клюв летели буквы. Если пользователь не успевал за время полета нажать соответствующую кнопку, то закрашивалась часть вороны: сначала клюв, потом голова, потом шея... На экране появлялась надпись вроде «Я уже наелась на 1/6».
Методом ненаучного тыка я нашёл, как прервать исполнение программы. Листинг был на уже знакомом Бейсике. Что может исправить ребенок в программе? Естественно, надписи. На первую ошибку я вписал безобидное «Опа-на, cникерс», а вот во вторую и последующие вложил все свои тогдашние познания в ненормативной лексике: «Я наелась уже до жопы».
Запускаю программу и начинаю играть. В момент первой ошибки мимо проходит учительница, молодая девушка. Замечает мой «сникерс», понимает, что программу изменили, улыбается и останавливается: ей стало интересно, что же будет дальше. Я же, покрывшись потом, понимаю, что следующее сообщение будет отнюдь не про шоколадные батончики. В общем, расположение клавиш было освоено в экстремальных условиях и кратчайшие сроки.
Девяностые годы. В нашей школе Министерства обороны РФ закупили компьютерный класс (286-е машины), поставили учебные часы, а с преподавателями-то напряг. Папа-программист дома дообъяснял мне материал, и я очень быстро научилась молчать в тряпочку и ловить перлы преподавательского состава.
Контрольная по системам счисления. Быстренько решаю все варианты по своему ряду, сдаю своё и пол-урока валяю дурака. На следующей день получаю свой... трояк. Иду к учительнице доказывать, что мое решение верное. Она передо мной машет своими лекциями из института, которые она «записывала за очень именитым профессором закорючка в закорючку». Делаем проверку тупым делением с остатками — мой ответ верен. Но авторитет «профессора» непоколебим: «Значит, у этого примера два правильных ответа!»
Разбираем код на QBasic из учебника. Задача — перемещение точки из одного конца экрана в другой. «А движется эта точка потому, что вот тут — видите? — оператор DELAY(). „Делай“, то есть!»
В восьмом классе у нас впервые появилась информатика, на которой мы изучали старый добрый QBasic. Во второй половине учебного года, когда мы уже освоили графику, было дано задание нарисовать на экране лабиринт и сделать так, чтобы компьютер мог найти из него выход, пользуясь «правилом правой руки».
Чтобы облегчить нам труды, учитель заготовил для нас несколько строк кода, которые инструктировали компьютер, как двигаться вдоль горизонтальных стен и делать два из восьми возможных поворотов. Мы должны были додуматься сами, как описать движение вдоль вертикальных стен и как реализовать остальные повороты.
Делов-то: скопипастил, позаменял в нужных местах иксы на игреки, и всё в ажуре. Но лень-матушка заставила меня поползать по папкам на жёстком диске и таки обнаружить эту же программу, выполненную кем-то в прошлом году. Там был немного другой лабиринт и дополнительные навороты, но меня интересовали лишь те строки кода, которые описывали необходимые мне движения.
Сидели мы за компами по двое. Партнёр мой разбирался в программировании не лучше, чем в любом другом предмете (то есть весьма посредственно), поэтому обычно всю работу делал я. Так вот, нашёл я эту прогу прошлогоднюю и тотчас же поделился с напарником радостью. Проходивший мимо учитель услышал и заявил, чтобы мы даже не думали сдавать ему прошлогодний код — дескать, он легко отличит его от нашего по стилю. Мой партнёр слегка встревожился. Я подождал, пока учитель отойдет, скопировал нужные строчки кода и подогнал их под свой стиль. Программа была сдана успешно.
Школьная пора — странная пора. «Сжульничать во что бы то ни стало» — вот девиз школьника, даже такого, для которого сделать всё по-честному — пара пустяков. Проверено на себе.
История произошла в 1991 году, когда учился я в средней школе. Времена были еще «докомпьютерные»; из всего класса домашние компы были только у меня да у одноклассника Шурика — конечно, самодельные ZX Spectrum. Никаких других компьютеров ни у кого из друзей-знакомых не было. Даже Dendy (NES) только начинали появляться в залах игровых автоматов, а в личном пользовании ещё не попадались.
Нетрудно догадаться, что свободное время мы проводили за играми, от чего страдала наша успеваемость в школе. Особенно удручающие показатели были по русскому языку. И вот у Шурика созрел хитрый план, как получить пятерку по русскому, чтобы вытянуть оценку за четверть. Он решил подготовить и распечатать свое сочинение на компьютере, чтобы и к почерку, и к орфографии не было претензий.
Сначала, конечно, пришлось сочинить всё на листочке. Потом ценой неимоверных усилий, одним пальцем он два вечера набивал этот текст на «спектруме», потеряв полработы из-за моргнувшего света. Наконец Шурик записал всё на магнитофонную кассету, а дальше пришлось подключать его отца. Тот загрузил текст с кассеты на один из «спектрумов» у себя на работе (он собирал в свободное время комьютеры на продажу), потом с помощью каких-то самодельных доработок перенёс этот текст на большую ЕС ЭВМ, стоявшую в вычислительном центре завода, и уже с неё вывел текст на печать. В общем, на такое банальное по сегодняшним меркам действие ушло едва ли не больше недели.
Итог сей истории и комичен, и грустен. Училка русского принять такое сочинение отказалась: «Это за тебя компьютер придумал!» Переубедить её не удалось — сочинение пришлось переписывать.
В далёком девяносто седьмом работал я инженером-системотехником в одной ну очень крупной страховой фирме. В главном офисе народ был более-менее ничего, обучаемый, но те, кто приезжал из районов — это что-то...
Подходило время сдачи очередного квартального отчета, и народ, не надеясь на дискеты, тупо привозил с собой системные блоки, чтобы не ездить взад-вперед, если дискеты сбойнут. Мы в учебном классе их спокойно подключали к имеющимся мониторам, народ за полдня под чутким руководством главбуха спокойно доделывал и переделывал бумаги, и всё проходило хорошо.
Приезжают две мадамы с очень глубокой глубинки и с ходу заявляют, что у них дискета 3,5" застряла в дисководе и не вынимается никак. Что ж, достаю машину из коробки и смотрю на дисковод. Из дисковода весело выглядывает металлическая шторка, а вокруг неё всё в аккуратных «пяточках», как будто чем-то били. Разбираю дисковод, а там дискета мало того что задом наперёд, так ещё и вверх ногами — просто затолкать невозможно. Спрашиваю, мол, как так?
— А она не лезла, мы её молоточком забили!
Вот и думай, в какую группу определить бухгалтеров — к умным или к сильным?
В уже далекие девяностые случилось мне админствовать в небольшой фирме. Компов немного, работа непыльная, вот только музыки бы послушать... Тут и возникает проблема. Звуковых карт на компьютерах попросту нет — по мнению начальства, «баловство это всё». Зато на сервере имеется чудо враждебной техники — двухскоростной сиди-райтер.
Решение в виде пары болванок CD-RW было найдено быстро. Музыка пишется на диск в формате Audio CD, диск перекладывается в соседний привод — вуаля, можно наслаждаться музыкой через его собственный разъём для наушников! 70 минут как раз хватало, чтобы почистить и записать следующую болванку.