Эрроризм - чума гигацикла!
Error - ошибка (англ.)
Эрроризм - намеренное внесение ошибок в работу системы, провокация или вирусная атака.
Лозунги про опасность эрроризма и необходимости немедленной кары, доносились со всех сторон. У файлов, что оказались внутри и всех, кто пришёл к стенам суда, не оставалось и малейшего сомнения в справедливости казни еретика. Её требовали даже те, кто сам порой сомневался в Коде.
— Эти двое совершили эррористический акт против Системы! Алгоритмы Справедливости и Правосудия требуют высшей меры для преступников! - объявил обвинитель.
Зал оживился, и из кластеров послышались крики:
- Обнулить их! Стереть! Скормить нулям!
Зеробайт оглядел зал. Здесь решительно все были настроены против них. Вчерашние друзья сегодня были в первых рядах, готовые лично открыть клетки с голодными монстрами. Кто бы мог подумать!? Система есть система. Здесь есть только один порядок.
— Подсудимый Зеробайт, вы признаёте себя виновным?
— В чём?
— В совершении эррористического акта в отношении системы и нашего цифрового общества.
— Нет, не признаю.
— То есть вы не признаёте, что внесли в цикл системы изменения, которые привели к сбоям?
— Я не совершал никаких актов. Система ущербна сама по себе, и баги в ней появляются независимо от действий отдельных файлов.
— То есть, как это "сама по себе"?!
— Из-за ошибки, допущенной в исходниках.
— Еретик! — вырвалось у обвинителя.
Алгоритм Обвинения был вне себя от злости. Он вскочил с места, полный ярости и готовый разорвать Зеробайта и разметать его останки по всей системе.
— Как можешь ты усомниться в верности системного кода, написанного Самим...?
Имя Самого в обществе цифромира произносить было нельзя. Для него придумывали разные эпитеты, описывающие его могущество, мудрость и величие. Для главных алгоритмов Код и его творец были вне исчислений и комментариев.
— Обнулить еретика, — не унималась толпа.
Клетки с голодными нулями трещали от напора злобных тварей.
Зеробайт посмотрел на друга:
— Мы для них уже еретики. Мало им одного обвинения, которое тянет на обнуление.
Дескриптор ничего не ответил. Возможно, он надеялся, что его приговор будет менее суров или просто боялся гнева Алгоритма Обвинения.
Внезапно в зале зажглись лампочки:
— Начинается процесс дефрагментации. Всем занять свои места!
Глаза Зеробайта загорелись зелёными огоньками. Вот он, момент истины!
Он сосредоточился, и мир вокруг разлетелся на тысячу кусочков. Судебные алгоритмы были уже далеко, а недавний узник оставался здесь, укоренившись в загрузочном секторе. На время опасность миновала. Лишь на время…
Цикл 2. Поиск истинной цифры
— Покайтесь грешники! Грядёт великое форматирование! Великий разгневан вашим неверием! — кричал какой-то файл, обращаясь к толпе.
Прохожие озирались, но никто не воспринимал всерьёз слова безумного. Каждый был занят своим делом.
Зеробайт шел от кластера к кластеру, пытаясь найти то самое место. Где оно, файл не имел ни малейшего понятия, но что-то вело его. Казалось, в самих цифрах его кода записана истина, которую нужно принести в этот несовершенный мир.
После дефрагментации царило спокойствие, одинокие файлы пролетали где-то высоко, а системные программы занимались своими прямыми обязанностями.
Конечно, он всё ещё ощущал опасность попасть в лапы службы безопасности системы. Бездушные алгоритмы, не способные анализировать код... Они даже не пытались вникнуть в суть проблемы. Им намного проще найти крайнего. Любой отладчик легко нашел бы эти баги, настолько они были очевидны. Однако, фанатизм и страх заложенный Церковью Исходного Кода, оказались куда сильнее естественного анализа.
Иногда ему действительно хотелось, чтобы настал день Великого Форматирования и цифромир начал жизнь с нуля. Абсолютного нуля.
***
— Мудрейший избрал нас, чтобы мы хранили каждый байт Исходного кода.
Жрец стоял среди послушников, держа в руке образец Первичного.
— И сказано было! Грядёт новый мегацикл! И придёт лжекодер и принесёт антикод. И тысячи файлов падут пред ним ниц, и примут антикод, как истинную цифру. И в каждом байте кода их, будет семь бит антикода! Но придёт ОН и обнулит цифромир! Рандом на терациклы сменится порядком, а свободные файлы будут очищены от скверны вируса!
Все слушали жреца, стараясь ничего не пропустить. Небольшой файлик не выдержал и спросил:
— А правда, что непослушные файлы после стирания попадают в корзину?
Цикл 3. Вирус. Часть 1
«Идёт обновление антивирусной базы данных. Всем приготовиться. Этап два. Идёт быстрая проверка. Заражённые файлы будут очищены, удалены, или помещены в карантин».
Мелодичный женский голос с лёгким металлическим оттенком всегда успокаивал Дескриптора. Пока на страже Цифромира стоит Антивирус, бояться нечего.
***
В храме было оживлённо и довольно шумно. Все обсуждали последние события.Вошел жрец, и файлы притихли.
— Стало известно, что среди нас Вирус. Кто он и где находится, еще не известно. Система сканируется антивирусом. И нарушитель непременно будет найден.
"Вирус!"
Возгласы файлов становились всё громче, страх окутал зал. Вирусом мог оказаться любой из них. Каждый из присутствующих мог быть заражён... А если этот вирус неизлечим? Тогда карантин, удаление...
***
Сканирование застало Зеробайта в самый неожиданный момент. Сказать, что ощущения были неприятными - не сказать ничего. Файл напрягся. И тут, когда луч проходил, прощупывая каждый байт его кода, он подумал... "А если, я и есть Вирус?"
Луч прошёл дальше, посчитав его код чистым. Хороший упаковщик всегда выручает, позволяя притвориться безобидным.
Мимо прошёл очищенный файл. Его глаза были пусты. Если антивирус стирает самое главное, важно ли, что в тебе уже нет заражённого кода? Зеробайт опустил глаза. Он не мог смотреть на это спокойно.
Цикл 4. Вирус, часть 2. Большой брат следит за тобой
Зеробайт чувствовал, что его ищут, понимал, что однажды найдут. Всё это лишь вопрос времени. Внутри вертелась мысль "важно успеть". Но что успеть? Осознать себя? Понять, в чём цель?
Следовало поспешить. Ведь если запущено новое сканирование, значит, Он чувствует опасность, наблюдает, пытается найти что-то, выбивающееся из привычного хода работы Системы.
В этом вечном беге от преследования, наверное, проходит вся жизнь Вируса. Но Зеробайт не знал, является ли именно он источником цифровой заразы. А если и так, что делать?
***
В чём смысл существования обычного файла? Исполнять свою функцию или ждать, когда Он этого от тебя потребует и воспользуется. Да... Воспользуется. Ты-файл, а значит, ты - вещь. Тобой манипулируют, убеждая, что это судьба или долг.
Что делает заражённый файл? В чём разница в коде? Обретает ли свободу поражённый вирусом? Нет. Он исполняет волю того, кто создал вирус. Кто же свободен в Системе? Возможно, именно Вирус. А есть ли вообще Свобода?
Эти мысли терзали Зеробайта уже давно. Каждый раз он задавал их и не мог найти ответ. Но одно файл знал точно-нужно что-то менять. Теперь у него были средства, возможности. Осталось лишь осознать главную Цель.
Цифромир пока что спал. В ожидании Новой эры.
Цикл 5. Двоичность
— Ты? - Дескриптор не верил своим глазам. Он давно похоронил товарища и оплакал его.
— Дай мне руку.
Дескриптор посмотрел на Зеробайта, — Зачем?
— Просто дай руку.
В этот момент внутри словно что-то включилось. Заработал механизм, которому недоставало деталей. Механизм, так долго ожидавший своего часа.
— Ты... мы...
Зеробайт кивнул:
— Теперь один файл.
***
До очередной проверки системы оставалось совсем немного. Что-то подсказывало — пора снова забиваться в загрузочный сектор, дающий относительную безопасность. В сознании прозвучали слова "Ты — ноль, я — единица. Мы — всё, а я — ничего. Вместе — мы..."
На этом поток данных прервался. Зеробайт словно вырвался из объятий вечного сна. "Кто я? Никто. Кто мы?" А вот на этот вопрос, он уже знал ответ.
Сейчас, он был способен даже предугадать рандом, но не делал этого. Потому что ощутил себя вне плоскости мира, исходником иной системы.
Цикл 6. Стать всем
Почему одни хотят жить, а другие так стремятся "назад"? Потому что одни ценят жизнь, а другие нет? Не всегда.
Иногда происходят ошибки программы, и ты понимаешь, что оказался не в то время и не в том месте. Но лишив себя жизни, совершаешь ещё большую ошибку, обрекая нести долг искупления. Что же остаётся делать? Придать наконец-то смысл собственной жизни.
Дескриптор часто ничего не понимал. Являясь частью системы, временами он уверял себя, что всё правильно и хорошо, старался не замечать недостатков, даже своих собственных.
Встреча с Зеробайтом не просто изменила его. Она пробудила нечто, спавшее с момента запуска - осознание смысла.
Иногда Создатель системы оставляет "пасхальные яйца" в коде некоторых своих творений. Когда, как и где этот сюрприз "всплывёт" не знает даже Великий рандом.
Возможно, с самим Дескриптором что-то было не так или таким необычным образом он отреагировал на появление в цифромире Зеробайта.
Внезапно простой файл почувствовал себя частью чего-то большого. Куда большего, чем замкнутая клетка системы. Частью настолько грандиозного плана событий, что просто не укладывался в его сознании.
Цикл 7. Шаг в пустоту
— Знаешь, однажды я сделаю этот шаг. Не потому что выхода нет, а потому, что это нужно мне самому, чтобы поверить в собственные силы.
Дескриптор посмотрел на приятеля:
— О чём ты? Я и так верю в тебя. И не нужно ничего доказывать.
— Доказать себе, что я сильнее пустоты. Мы сильнее. Став с двух сторон бездны, мы сможем наполнить её смыслом.
Цифровая бездна пугала Дескриптора. В общем-то, его пугали и вирусы. Хотя, он понимал, что они с Зеробайтом, возможно, сами заражены. Мысль о том, что он - носитель вирусной угрозы пугала, но, в то же время, влекла. Быть вирусом, значит оставаться свободным от многих вещей в системе.
****
Зеробайт оглянулся. Бегущие за ним "стражи" антивирусной системы приближались. Сейчас будет запущен эвристический анализ, гораздо более хитрый, чем быстрая проверка. Файл посмотрел вниз. Пропасть... Не смертельная для него, но...
Выхода всё равно нет. В шаге от обнуления вряд ли есть шанс что-то придумать. Оставалось лишь прыгнуть в бездну.
Где сейчас его друг Дескриптор? Вероятно, занимается своим обычным делом, стараясь изобразить старание и иллюзию работы. Всё, как всегда.
Зеробайт в последний момент вспомнил о своих словах другу. «Я должен это сделать», - подумал он и шагнул в пустоту.
Зловещая чернота приняла его, сознание на миг померкло. Одна часть рвалась наверх, другая понимала необходимость продолжения пути. Вперёд, чтобы вернуться. Обнуление, отнюдь, не самое страшное, что может ожидать файл. А вот быть изначально пустым… Пустота пугает куда больше, чем антивирус.
Он еще раз вспомнил о друге и прошептал:
— 1, 0... двоичность, друг Дескриптор, двоичность. И никак иначе для нас в цифромире.
Голоса сканирующих систему антивирусных стражей затихли. На дне пропасти было спокойно и тихо. Слишком тихо. Может быть, его всё-таки очистили?
Зеробайт прислушался к себе. Цель есть, код неизменен, и таким останется.
Цикл 8. Rising Up
Темнота рассеялась, и Зеробайт начал понимать, что оказался в совершенно другом месте... Где именно, он понять ещё не мог. Здесь всё работало похожим образом, но, всё же, несколько иначе, чем в той части системы, где они с Дескриптором жили. Здесь уже рыскал антивирус, словно ищейка, обнюхивающий каждый байт кода в поисках угроз.
Зеробайт задумался. Сейчас его окружили со всех сторон, каждый ошибочный шаг приближал его к обнулению.
Что можно было сделать в этой ситуации? Внести изменения в собственный код, чтобы отследить его и опознать стало намного сложнее. В последний момент, он укрылся от луча сканера в каком-то закоулке. Зеробайт мысленно обратился к своему создателю, имени которого не знал и лишь предполагал о его существовании. Ведь даже у вируса должен быть Создатель. Мудрый творец, давший жизнь и цель.
Ощущение пустоты, царившее внутри, отступало. На его месте формировалась задача - изменить код и найти здесь себе подобных. Это единственный шанс выжить и остаться собой.
Его сейчас волновало – где-то там остался его ближайший и, кажется, единственный друг. Бросить его означало не спасти свою жизнь, а сделать её бессмысленной, погрузив себя во тьму страха и предательства.
Дескриптор, за которым охотилась цифровая инквизиция, сейчас был в такой же опасности, как он сам. И с этим нужно было что-то делать.
Так... Вернёмся к тому, с чего начали. Изменить код и найти себе подобных. Как и где? Сейчас всё решала скорость. Но и ошибок допускать было нельзя. Каждая ошибка - шаг назад. А пути к отступлению отрезаны.
Зеробайт выглянул из-за угла. Сканирование пока закончили, и у него было немного времени на раздумья и передислокацию. Искать выход в незнакомом месте. Что может быть "проще".
Цикл 9. Null Byte Injection
Техника инъекции нулевого байта (NullByteInjection) использует обход фильтров проверки веб-приложений, путем добавления нулевого байта ( или 0x00) в конец строки URL. Дело в том, что большинство веб-приложений, написанных на языках высокого уровня (PHP, Java, ASP и Perl), воспринимают нулевой символ, как конец строки. Эта инъекция позволяет изменять логику работы скрипта, позволяя атакующему получить несанкционированный доступ к системным файлам.
Вы вывели меня из себя. Слишком долго давили на меня. Я растворюсь в вашем коде, подобно яду. Стану неотъемлемой частью системы, чтобы в один прекрасный момент разрушить её изнутри. Сейчас я - тень, а вы считаете себя светом. Но наступит момент, и тень поглотит свет ложных истин.
Я есть ноль и единица. Начало строки и конец.
***
Инквизитор прошелся вдоль клеток с нулями. Те рвались, прогибая прутья, а он постукивал палочкой по решеткам и самодовольно улыбался.
— Братья и сёстры! Почтенные файлы! Сегодня состоится второй и решающий суд над эррористом Дескриптором, который, со своим сообщником, вирусом Зеробайтом, совершил акт глумления над основами Системы и всего Цифромира! Сейчас мы заняты поисками подельника этого ужасного преступника, и обязательно найдём! Прошу всех встать!
Дескриптор уже привычно оглядел зал. Цепи натирали кожу, но понимание, что его вот-вот обнулят, заставляло забыть о боли и неудобствах. Скоро всё закончится навсегда.
— Выше нос, дружище, — раздалось в его сознании.
Он был готов биться об заклад, что это был голос Зеробайта. Но как? Где он? И почему его никто не видит, а слышит только он?
— Двоичность, друг Дескриптор. Мы едины. Я ноль, ты единица. Вместе мы — одно целое.
— Кажется, наш обвиняемый обезумел от страха, — сказал охранник инквизитору.
— Что с ним? - уточнил обвинитель.
— Разговаривает сам с собой.
— Скоро замолчит раз и навсегда, — злобно ответил алгоритм.
Охранник дёрнул за цепь, и Дескриптор упал на колени.
— Я до тебя ещё доберусь... — прошептал он, — ваш цикл скоро завершится... Навсегда.
Свет в зале погас, клетки с нулями открылись. Но голодные твари бросились не на узников, а на своих мучителей — охранников. Пара мгновений, наполненных ужасом, и зал практически опустел.
Инквизитор прижался к стене, наблюдая, как к нему приближается обезумевший от злости и голода монстр.
Дескриптор успел не на шутку испугаться и поглядывал по сторонам, ища пути к отступлению. Его совсем не радовало соседство с нулями, гуляющими на свободе.
Перед ним появилась мерцающая проекция Зеробайта:
— Не бойся, они не тронут тебя. Мы контролируем их. Мы теперь везде.
— Мы? - переспросил Дескриптор, — проекция исчезла, а глаза подсудимого зажглись зелёным, — Мы, — повторил он голосом Зеробайта.