Повторная попытка позвонить Алёне Григорьевой не привела к успеху — её коммуникатор по прежнему сбрасывал меня на голосовую почту. Ну и ладно. В конце концов, это ей от меня чего-то надо — а встречаться с ней в Москве, где в отличие от Хельсинки у неё явно были возможности действовать неконвенциональным образом — не особенно то и хотелось.
Устав после двух авиаперелётов и прочей беготни, я бессовестно провалялся в постели часов до трёх.
Не дозвонившись Алёне, я осознал, что никаких конкретных планов ни на сегодня, ни на завтра у меня нет и решил было заняться учётом собственных проблем. Нельзя сказать, что их число существенно уменьшилось — напротив, взаимоотношения со Старшими Товарищами, ухудшившиеся с подачи эльфийского прохвоста, стали новой и совершенно неожиданной головной болью. Можно было бы в конце концов слить ситуацию — Лумиэль мне, при всех наших совместных приключениях не сват и не брат. Но кроме неочевидного морального аспекта такого слива, меня останавливало подписанное мною соглашение о неразглашении коммерческой информации.
Было бы неплохо ознакомиться с его текстом, прежде чем что-то предпринимать — как знать, не нарвусь ли я на штраф или иные, ещё менее приятные санкции, в том числе и неформального свойства.
Наш экземпляр этого договора был засунут Лумиэлем в папку с документами, которую нужно было, кстати, получить.
Я набрал номер московского представительства DHL и, договорившись о том, что курьер прибудет в течении двух часов, уселся за рабочий комп. Можно было бы почитать документацию по Разметке или поэкспериментировать с жезлом, благополучно пережившим мою отлучку в ящике стола — но я вспомнил об оставленном на период отлучки дизассемблере.
IDA в очередной раз благополучно упал, но теперь, по крайней мере, он оставил трассировочную информацию — позволяющую разобраться, что же его сбивает с толку.
Ещё около полутора часов возни — и мне удаётся выкусить модуль самомодифицирующегося кода. Умница-дизассемблер распознал ситуацию и попытался анализировать порождённую в процессе анализа программу. Вот тут то ему и наступали кранты, т. к. объём выходного РНК-кода явно превышал все разумные величины. Столько в человеческую клетку просто не поместится. Некоторое время я сидел, пребывая в полном недоумении и лёгком мандраже — решительно непонятно, что же это такое я установил Кириллу и себе самому. Наконец, решив, что, наверное, что-то не понял в получившемся коде — сделал паузу, сходив на кухню и сделав себе ужин.
Прежде чем вернуться за компьютер и продолжить анализ я некоторое время разглядывал доставленный курьером пакет с документами. В конце концов, решив, что, как минимум, просмотрю текст NDA отложил его в сторону — посмотреть ещё успею, тем более, что обещанного e-mail Лумиэль так и не прислал.
За окном уже давно было темно, когда я, наконец, сообразил, что результирующая РНК генерируется этой программой вариативно — в зависимости от некоторых внешних условий, которые могут воздействовать на порождающий РНК-код. Красивейшее решение, решительно выходящее за пределы моего понимания биологии. То, что я первоначально принял за громадную монолитную программу — было, как теперь я понимал, всего лишь неким списком альтернативных программ второго уровня… который мог бы продолжаться если не до бесконечности, то очень и очень далеко — поскольку внешние условия могли прикладываться к программе первого уровня во множестве вариантов.
Очень хорошо, прямо замечательно. Подобный шедевр явно не вяжется с примитивной “защитой от копирования”, установленной поверх — беглый просмотр внешних полученных листингов подтвердил это ощущение — биопрограмма выглядела как трёхслойный бутерброд — дешевка-защита от копирования сверху, далее шёл достаточно стандартно, но вполне профессионально сделанный загрузчик, который в свою очередь обрамлял совсем уже расчудесное самомодифицирующееся ядро — явно не использовавшее для своей инициализации какие-то общеизвестные стандартные библиотеки.
Итак, хотя я и разобрался в базовой структуре рабочего кода ARX, но само по себе это почти ничего не дало. Однако, теперь у меня появилась возможность отрезать на выбор несколько кусочков — и загрузить их в IDA для сепаратного от основного кода анализа.
Пожалуй, есть шанс, что к тому моменту, когда я проснусь, ситуация с ARX3064i станет более понятной.