Нексус. Рамез Наам
компайлер – программа, которая преобразовывала считываемый человеком исходный код в считываемый Нексусом двоичный код. Кейд и Ранган должны использовать компайлер, чтобы внедрить свои лазейки.
При каждом запуске компайлера он будет исследовать исходный код ОС Нексус на наличие их новых лазеек. Если их там нет, перед созданием двоичной версии компайлер их добавит. Единственное свидетельство наличия лазеек будет находиться в двоичной версии, которая для людей почти недоступна.
Наконец, они используют тот же самый прием на самом компайлере. Исходный код компайлера не будет содержать никаких логических схем, куда можно включить лазейки. Они будут существовать только в двоичном коде. Каждый раз, когда версия МодОС для рабочих станций будет рекомпилировать компайлер, она будет вводить логическую схему этого приема.
Кейду Ранган показался задумчивым и все еще беспокойным. Он думал о том, что будет, если его поймают. И все же пришел к решению.
[ранган] Ладно. Что за хрень! Давайте это сделаем.
Ранган и Кейд извлекли свои проектные среды и соединили их. Илья к ним тоже подключилась и ментально заглядывала им через плечо. Они продумали план и разделили задачи, превращая смутную идею в конкретный список того, что нужно сделать.
Завершив составление плана, они принялись за работу. Сначала она двигалась быстро. Лазейки они клонировали с предыдущих, меняя только пароли. Код в компайлере был концептуально простым. Но как только они начали кодировать, то столкнулись с ошибками, причем очень серьезными. Приходилось постоянно следить за временем. Минуты шли за минутой. Прошел час. Сбой компайлера задержал их на двадцать минут. Решение оказалось вполне тривиальным – когда удалось его найти. Прошел второй час. В одной из лазеек происходила утечка памяти. Как это могло быть? Они ведь скопировали код с той лазейки, которая уже существовала. Решение они нашли, но на поиски понадобилось уже больше времени. Прошел третий час.
После четырех часов работы лазейки работали, а компайлер Нексуса их добавлял. Ранган выставил затененный флажок, инструктируя компайлер повсюду распространять новый код как якобы не связанные между собой, безобидные схемы в двоичном коде, еще больше затрудняя воспроизведение того, что они сделали. После этого им нужно было изменить компайлер рабочей станции, чтобы добавить код лазейки в компайлер Нексуса. Этим занялся Ранган.
Кейд обратил внимание на второй этап. Он хотел получить возможность использовать лазейку, исключив, чтобы об этом знал тот, кто запускает ОС Нексус. Ему требовалась поддержка для скрытых процессов, и МодОС в определенной форме ею располагала. В теории все было просто, но на практике оставалось немало затруднений.
Он взял большие участки кода МодОС, которые никогда не использовались, и внедрил их в ОС Нексус. Лазейки должны соединить их со скрытой учетной записью суперпользователя. Это даст возможность выполнить большую часть того, чего он хочет. Для этой учетной записи загрузка будет отключена. Да. Но как скрыть использование памяти?
Черт! Он насторожил уши. Они заходили на посадку. Он выглянул из окна. Проклятье! Они находились в международном аэропорту Сан-Франциско,