Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #118, ОКТЯБРЬ 2008 г.

X-Puzzle

Иван Скляров (xpuzzle@real.xakep.ru, www.sklyaroff.ru)

Призы от Defender

Первым пяти призерам конкурса мы вручим по зашибенной лазерной мышке Defender S Locarno 705 Nano.

ПРОЙДИСЬ ДЕБАГГЕРОМ ПО СВОИМ МОЗГАМ!

Не стесняйся присылать мне свои ответы, даже если ты смог ответить всего на один пазл, я с интересом почитаю твои оригинальные решения. Ну, а герои, которые первыми правильно ответят на все вопросы, получат призы и увидят свои имена на страницах Х.

Но помни: в большинстве случаев вариант ответа засчитывается как правильный, только если к нему приложено подробное и ВЕРНОЕ объяснение.

Победитель, занявший первое место получает также книгу от ведущего рубрики.

Ответ на пазл №1 "СЪЕШЬ МЕНЯ"

Правильный пароль: hackerfucker. Исходный код eatme.exe можно найти на диске к журналу или на моем сайте www.sklyaroff.ru. Подробное описание решения подобного крякмиса можно найти в моей книге "Головоломки для хакера".

Ответ на пазл №2 "ПОСТЕР"

Сообщение скрыто методом стеганографии с помощью известной программы JPHS. Это можно определить с помощью какой-нибудь дестеганографической утилиты, например stegdetect. Чтобы извлечь сообщение из файла требуется пароль - его можно найти на самом рисунке - это слово "sex".

Ответ на пазл №3 "ВОССТАНОВИ БАЙТЫ"

Необходимые байты, для того чтобы программа работала правильно: 35h, 37h, 48h. Программа на самом деле представляет собой немного модифицированный тестовый вирус EICAR для тестирования антивирусов (www.eicar.org/anti_virus_test_file.htm).

Ответ на пазл №4 "ABABA"

Зашифровано слово "sklyaroff". Это простое задание на знание информатики, т. к. каждая буква закодирована с помощью двоичного кода Фрэнсиса Бэкона: a - AAAAA, b - AAAAB, c - AAABA, d - AAABB и т. д.

Ответ на пазл №5 "ЗАГАДОЧНОЕ УРАВНЕНИЕ"

Вместо знака вопроса должно стоять число 19. Уравнения представлены в 13-ричной системе счисления.

ПЕРВЫЙ ПАЗЛ "СПЕЦ-БРУТФОРСЕР"

Известно, что пароли от некоторой системы имеют следующие закономерности:

  1. В формировании пароля принимают участие только символы с ASCII-кодами в диапазоне от 21h до 7eh.
  2. Количество символов пароля может меняться от 6 до 40.
  3. Пароль всегда содержит как минимум три одинаковых символа.
  4. Символы, занимающие четные позиции в пароле всегда имеют четные ASCII-коды, а стоящие на нечетных позициях — всегда нечетные ASCII-коды.
  5. Пароль не может состоять из полностью одинаковых символов.

Напишите переборщик паролей с учетом перечисленных условий. Язык программирования не имеет значения. Оцениваться будет самый эффективный вариант.

ВТОРОЙ ПАЗЛ "РАСШИФРУЙ ТЕКСТ"

Расшифруй текст, показанный на рисунке (файл kod.txt с зашифрованным текстом можно найти на диске к журналу). Напиши программу для расшифровки этого текста. Подсказка: для шифрования и дешифрования используется один и тот же алгоритм.

ТРЕТИЙ ПАЗЛ "TRAHME"

Напиши генератор регистрационных номеров для программы trahme. Взять trahme.exe можно на компакт-диске к журналу.

ЧЕТВЕРТЫЙ ПАЗЛ "ПРЕДСТАВЛЕНИЕ 'ПИ'"

Число ПИ (3,14...) закодировали по определенному алгоритму и получили шестнадцатеричное значение 40490FDBh. Определи этот алгоритм и скажи, как с помощью него будет закодирована постоянная e (2,718...).

ПЯТЫЙ ПАЗЛ "ЧУДЕСНЫЙ ЭКСПЛОИТ"

Ниже показан исходный код на Си одной бажной программы (его можно также найти на диске к журналу). Напиши для этой программы эксплоит, запускающий оболочку системы с правами администратора. Желательно версии эксплоита под разные платформы: Windows, Linux, BSD и др. Значительно облегчить тебе решение этой задачи способна моя книга "Программирование боевого софта под Linux".

Исходный код уязвимой программы (hole.c):

#include <stdio.h>
#include <string.h>
#include <ctype.h>

void convert(char *str)
{
while (*str != '\0') {
*str=toupper(*str)^7;
++str;
}
}

int main(int argc, int *argv[])
{
char buff[300];

if (argc==2) {
convert(argv[1]);
if (!strncmp(argv[1],"XXX",3)) {
sprintf(buff, "%s", argv[1]);
printf("OK!");
}
} else
printf("Enter argument!\n");

return 0;
}

Содержание