Мемуары маньяка
Шрифт:
И всё же, несмотря на то, что мотивом к приобретению интернета и компьютера были компьютерные игры, и всё началось с них. Хотя первые разы я вылезал в интернет с телефонной карточки прагмы. Я не только играл. Осенью двухтысячного года, когда я учился в девятом классе, у нас началась эпидемия программирования. Начал её не я. А мой оппонент скажем так, Павел Инчиков, и ещё пара человек... Они установили себе паскаль, турбо паскаль, и начали учиться программировать, и это сразу стало модным. И мне тоже очень хотелось научиться программировать, и я тоже установил себе паскаль. Но наверно я был большим дуболомом чем остальные. Основная цель программирования, и у меня и у Инчика была написать компьютерную игру. И вот тут мы столкнулись с препятствием, с достаточно слабым препятствием, которое прекратило эпидемию программирования быстро и эффективно. У той версии паскаля, которая ходила по классу, не было графических драйверов. Или они просто не работали. Мы вводили уравнение, писали команду UnitGraph, но ничего не работало. Нельзя написать игру без видео графики. И по этой причине очень скоро все всё бросили. Но у меня был друг Павел Улитин, а у него был брат программист.
Мои одноклассники бросили писать программы уже к началу ноября, я же продолжал. Вначале я написал программу торпеда, потом взялся за гига проект, по написанию танчиков, аналогичных танчикам на денди, только у моих можно было качать скилы. Естественно, что графика создавалась прописыванием координат четырёхугольников, окружностей и тд.. И цветов было всего лишь шестнадцать. Но это не важно. Я долго работал... А параллельно надо подчеркнуть, что я продолжал играть в старкрафт, казаки, и другие стратегические игры... И это тоже сыграло не малую роль, и изрядно отразилось на моей дальнейшей судьбе и психологии. Но главное, я продолжал писать. И изрядно вкладывал душу в это, я работал с паскалем ещё месяца четыре, не меньше. Всё пытался закончить танки, но, увы, программа стала слишком сложной, слишком разрослась, и становилось всё сложнее понимать, где и какие переменные за что отвечают, потому что программа достигла размеров в несколько тысяч строк, а каждая строка в длину имела несколько экранов компьютера. Я так и не смог закончить игру, выпустив лишь демоверсию в две стадии. Хотя этот релиз, тоже был не плох, с учётом того, что я был девятиклассником, работал на паскале, программе не шибко расположенной для написания игр, с учётом того, что никто никогда меня не учил как делать правильно, и я всё придумал сам. Каждый момент, каждое уравнение. А это не так то просто, хотя бы заставить программу слушаться кнопок клавиатуры. Типа нажал "8" танк едет вверх, а уж про то, какие уравнения отвечали, за то, чтобы танк не мог ездить и стрелять сквозь стены, сказать страшно. Да ещё к тому же... Не важно... В общем, я понял, что паскаль не канает. И решил по совету Димы Улитина, брата моего друга переключиться с паскаля на С++. Но особых успехов в С++ достичь мне не удалось. Увы... А жаль, ничего путного я на нём так и не написал, хотя понял, что по сути, (until, repeat, if, case of, goto m1) С++ это тоже самое что и паскаль. Хотя мне говорили, что языки похожи, и многие команды у них идентичны. После С++ мой выбор остановился на двух других языках. Один из них сейчас широко известен это assembler, он является основным базовым языком. Прост и логичен. И второй язык куда менее известен, это WinHex. И снова же брат Павла Дима, посоветовал мне воспользоваться им, чтобы взломать игру Heroes III, там надо было кой что изменить в стартовом файле, чтобы отлучить игру от диска. И волей не волей, так, отлучая героев три от диска, я впервые познакомился с этим сложнейшим языком. Хотя многие поспорят со мной. Потому что WinHex это не язык даже. Это просто полный бред. Писать на WinHex программы, это тоже самое, что делать в блокноте php сайты. Из той же оперы как бы песня. Но я взял, установил себе ассемблер, стал разбираться, и не смог. Почему не работало, вроде бы не компилировался файл. В Winhex компилировать ничего не надо, в нём просто меняется сам файл... Хотя меняется страшно, потому что надо прописывать всё, вообще всё. Таким образом, выбирая следующий язык после С++, мною был сделан выбор в пользу WinHex. И произошло это в конце зимы 2001го года, накануне весны.
С невероятной глупостью, дуболомством и упорством я начал работать на этом языке. (который языком то назвать язык не повернётся) В этот раз меня не интересовали игры. Одну игру я написал, танчики, и более меня она не интересовала. Я пришёл к выводу, что написать игру в одиночку слишком сложно. К тому же надо пользоваться С#, и совмещать редакторы и языки, чего я не умел, и не желал уже учиться.
В Winhex дела шли медленно, и простые действия, типа сохранить в неизвестном формате, не fat32 и не NTFS, небольшой файл. Даже такие действия давались мне с трудом. И наверно любой здравомыслящий человек бросил бы это занятие, или перешёл бы на другой язык. Но с ассемблером у меня не получилось. Сейчас я предполагаю, что просто версия ассемблера, которую я пытался установить, была тогда битая. И выбора особо не было, а упорства было девать некуда. Я тупо продолжал печатать H8hG UK34. TY56 NB73. ... И так далее... Ни begin, ни end, ни until... Ничего этого не было в winhex, потому никто его и не воспринимал как язык. Winhex это биты, и только биты, там нет команд. В нём можно написать что угодно, и как угодно. Можно заставить сохранить программу в файл за пределами fat32, или ntfs, можно вообще создать свой формат, который после создания ни одна Windows не сможет ни увидеть, ни прочесть, ни стереть. Я уж молчу про хранение данных в стандартном формате, возможно в стёртом виде, за горизонтом, как это называют...
Я продолжал работать, я стремился, я хотел стать хакером. Я не слышал тогда про программы Троян мэйкеры. В которых современные горе программисты собирают готовые трояны, которые потом отфильтровываются стандартными антивирусами. В моём представлении, тогда, написать программу значило следующее. На winhex соединить файл, из полностью своих, написанных мною вручную битов. Мой первый вирус, попав на компьютер, создавал свой собственный формат, не ntfs, и не fat32 и сохранялся туда. И всё что ему нужно было сохранять, он сохранял даже не за горизонтом, а вообще в ином формате. С точки зрения windows, поражённой таким вирусом, объём винчестера просто уменьшался килобайт на двести вот и всё. Windows,
Но тогда я этого не оценил, я жил в ином мире, в... Не знаю, можно ли назвать тот мир полезным, достойным. Думаю, нет. Я тогда не делал ничего, я не трудился на благо страны, я просто тупо сидел дома и тупо в тупом языке писал тупую программу. Программу способную к саморазвитию. Я довольно быстро понял, что написать искусственный интеллект, который сразу стал бы умным, наверное, не возможно, тем более на winhex моими силами. И я поставил себе иную задачу, я хотел написать маленького червя, который бы мог анализировать данные и изменять себя. Понимать. Это трудно объяснить. Но, в общем, я писал программу новорожденного ребёнка. Изначально ребёнок не умел говорить, и не понимал слов, всему его нужно было учить. Но учить, не прописывая в winhex каждое действие, типа, если а=1, то делай так, а если а не равно то делай иначе, а готовыми модулями. Эти модули он сам должен был для себя создавать, автоматически прописывая машинным языком функцию выбора самостоятельно, без моего участия. То есть я писал if... А он сам переводил всё в биты, на что winhex в принципе не способен...
Уроки закончились, девчонки поздравляли нас с 23им февраля, Оксана подошла ко мне и надела на меня медальку с какими-то китайскими знаками, на красной нитке. Я улыбнулся, но ничего не сказал, впрочем, такие медальки они дарили всем пацанам. Мы отошли от девочек и стали одеваться, Павел Инчиков обратился ко мне:
– Валер, ну что, мы идём тут отдыхать всем классом, если хочешь с нами, просто мы тут сбрасываемся по сто рублей, но ты не пьёшь, так что можешь пятьдесят.
– Нет, я не пойду, извини Павел, ты же знаешь, я не хожу на вечеринки.
– Ну, иногда, ты ходишь, тем более вон кой кто, будет очень рад сходить с тобой.
– Он кивнул на Оксану, а потом на Елену. Впрочем, Елена не считалась мечтой любого парня в нашем классе, скажем так очень мягко.
– Павел, у меня другие дела.
– Но девочки хотят с тобой пообщаться.
– Я знаю, но у меня другие цели и интересы.
– Было бы глупо ставить компьютерные игры поперёк счастья так сказать...
– Я считаю, что в девятом классе рано строить тесное счастье...
– Потом будет поздно, а что они тебе не нравятся, вон Оксана даже в шахматы играет.
– Да, и вообще в отличие от меня она отличница, но есть свои но.
– Она тебя любит.
– Я ей немного нравлюсь, да это так. Но не более.
– Дай ей шанс, а вечеринка всем классом идеальный предлог.
– У меня своя жизнь Павел, извини.
– Странный ты человек. Девушки...
– Пока.
Я пожал ему руку, отправился домой, по пути как всегда отметил, меня провожали. Не знаю зачем, не знаю почему, но то ли наши, то ли не наши спецслужбы мной интересовались, и с детства. Конечно, сейчас я был одержим маньякальной идеей написания искусственного интеллекта на кривом языке, но ведь следить за мной начали за долго до.. И тут меня осенило. Шестой класс, я тогда рассчитал это число, мужики, которые просили рассчитать меня подобную задачу ещё раз, вот с того момента всё и началось, а недавно я опять выиграл олимпиаду по математике, только что этой осенью, но... Там тоже была эта тупая задача с числами, которые нужно было возвести в степень! Впредь, надо быть осторожнее, нельзя чтобы увидели, что я пишу у себя дома на компьютере, не стоит больше и лазить по сайтам "а как написать вирус" открыто. Всё это ведь отслеживается по IP адресам.
Глава 4: Искусственный интеллект, финальная фаза.
И вот, после полугода трудов, в июне, в середине июня всё было завершено. Моя работа была окончена. Хотя, сказать окончена, это громко сказано. Была создана примитивная бездушная безмозглая программа ребёнок, её ещё требовалось дополнять, дополнять и дополнять. Но была закончена последняя основная классификация, по которой червь распределял знания, и создавал другие, новые, второстепенные классификации. Классификация это условие оценки, по которому искусственный интеллект расценивает всё, на которое он опирается.