Перейти к содержанию

- 5 -

— Показывай! — сказал Макс с порога. Вид у него был невыспавшийся и очень недовольный. — Ты бы хоть окно открыл, а то у тебя тут перегретыми мозгами пахнет.
— Можно я доем?
— Какая на фиг еда, ты меня поднял в полпятого, а мы только в два угомонились!
— Избавь меня, пожалуйста, от подробностей своей сексуальной жизни! И я уже извинился, если что.

Мы прошли в комнату, и я продолжил:

— Короче, рассказываю. Я нашел вызовы функции, которая перенаправляет сообщения из очереди TO_CHECK в PROCESS, а потом обратно, от имени пользователя asabitov. Что интересно, все это хитро замаскировано, так сразу не найдешь.
— А разве в программе на С можно спрятать имя вызываемой функции?
— Есть возможность получить адрес функции, используя нестандартную функцию dlsym, и потом уже вызывать функцию по ее адресу, а не по имени.
— Интересно, не знал о таком. Я так понимаю, что и параметры скрыты, раз их поиск не находит?
— Да, все спрятано, чтобы ни по имени очереди, ни по имени пользователя, ни по имени функции не засечь. И sleep нашел пятисекундный, так же спрятанный. И знаешь, что прикольно?
— Что? Не томи уже! — Макс плюхнулся на диван напротив.
— А то, что это было сделано не одним большим изменением, а размазано по нескольким маленьким, притом в них реально какие-то баги исправляются, так что с ходу и не видно, что делается что-то подозрительное. Последнее изменение было за пару недель до транзакции. И все от одного пользователя — от некого kenobi. Ну, ты наконец скажешь, кто этот Оби-Ван?

Макс по своей старой привычке ерошил волосы.

— Это Дима. Горелов.
— Серьезно?
— Куда уж серьезнее.
— А чего у него такое имя?
— У нас так исторически сложилось, что программисты имеют привилегию — мы можем сами выбирать себе логины, кто какой хочет. Поэтому у нас кто digger, кто gendalf, а Дима вот — kenobi.
— А почему у Лехи тогда asabitov?
— Он же не программист, а админ, им не положено.
— Дискриминация какая! А может кто-то подменить имя, когда свои изменения на сервер отсылает?
— Нет, у нас аутентификация при работе с исходниками, а доступы и права только Дима раздает, так что в любом случае надо его ломануть для этого. И это непростая задача — он всегда блокирует комп, когда куда-то отходит, пропуск свой не оставляет.
— Ну тогда, наверно, это он, больше вариантов нет.

Мы оба замолчали. Макс завис, обдумывая ситуацию, ну а я из солидарности. Да и адреналин пошел на спад, усталость начала сказываться.

— Слушай, а как вся эта байда запускается? По времени? — отвис Макс.
— О, это прикольно сделано! И раскопать тоже, кстати, немало времени заняло. Все начинается, когда поступает транзакция с определенным номером карты и из определенного банкомата. Все эти номера тоже собираются на ходу, вот они тут записаны.
— Изящно! — Макс цокнул языком. — По номеру карты я смогу найти транзакцию в карточной системе, чтобы все окончательно подтвердить. После этого у нас все будет. Но что с этим делать?
— Как что? Отдадим ментам, дальше пусть они с Гореловым разбираются. Главное, чтобы Леху побыстрее выпустили.
— Не верю я, что это Дима. Не мог он такое сделать.
— Не мог, но сделал. И Леху подставил. Ты знаешь, когда он добавил имя пользователя asabitov в код? Почти месяц назад! И все это время спокойно смотрел ему в глаза!
— Ну, не думаю, что уж так прям смотрел в глаза — разработчики с админами нечасто пересекаются, особенно рядовые админы с начальниками разработки.
— Я фигурально выражаюсь. Это было вполне осознанное решение — подставить Леху, давно принятое.
— Давай сначала с ним поговорим?
— С Гореловым? И что ты ожидаешь? Что он скажет: «Да, ребята, вы молодцы, меня вычислили, пойду сдаваться»? Что-то я сомневаюсь. А даже если и скажет, что ему помешает тут же поехать в аэропорт и улететь ближайшим рейсом хоть куда? Или просто покинуть пределы нашей объятной родины, до литовской границы восемьдесят километров, через полтора часа полиция его уже не достанет. А пока международный ордер оформят, так он уже свалит куда-нибудь в Аргентину, и кто его там найдет? С украденными миллионами. Там ведь миллионы, я так понял?
— Да, миллионы, около семнадцати.
— Фигасе!
— Слушай, ну и ладно, пусть себе свалит, нам ведь главное, чтобы Леху отпустили, улики ведь железные теперь.
— То есть как это? А преступник уйдет?

Макс молчал. На его лице отражалась внутренняя борьба.

— Ладно, вор должен сидеть в тюрьме, — вздохнул Макс.
— Вот и хорошо. Давай тогда я сейчас запишу тебе номер карты и ID банкомата, ты найдешь эту транзакцию, и я пойду в полицию. Вот, надо еще узнать контакты следака. Через пару часов Даше звякну, сейчас еще рано.
— А мне было не рано звонить? Гад ты бессовестный!
— Ну извини, чувак, я не посмотрел на часы.
— Не посмотрел на часы он, — продолжал ворчать Макс. — Ладно, давай ты пиши номера, я пока кофе сварю. Еды, как я понимаю, не появилось.