Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #68, АВГУСТ 2004 г.

X-Puzzle

Иван Скляров

Xakep, номер #068, стр. 068-142-1


(Sklyarov@real.xakep.ru)

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

Не стесняйся присылать мне свои ответы. Даже если ты смог ответить всего на один пазл, я с интересом почитаю твои оригинальные решения. Ну а имена героев, которые первыми правильно ответят на все вопросы, конечно же, будут опубликованы в журнале, чем прославятся на всю Россию (и не только) и навечно войдут в историю Х. Приз за нами не заржавеет ;).

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

ОТВЕТЫ К ПРЕДЫДУЩЕМУ ВЫПУСКУ X-PUZZLE

Ответ на пазл №1 «Заморочка для кодокопателя»

Один из возможных правильных и лучших паролей: [XPUZZLE].

Ответ на пазл №3 «Помоги вспомнить»

Недостающие символы пароля по порядку: 4, X, i. Логика в выборе символов пароля следующая: начиная с символа «/», который в ASCII имеет код 47 (dec), каждый символ отстоит друг от друга на значение простого числа, т.е. 2, 3, 5, 7, 11, 13, 17, 19.

Ответ на пазл №4 «Logo для линуксоида»

1. ProFTPD.

2. Apache.

3. Debian.

4. Sendmail.

5. PostgreSQL.

Ответ на пазл №5 «Просто шифр»

Расшифрованное сообщение: «This is rubric X-Puzzle!».

Логику шифрующего алгоритма можно понять из нижеследующей программы. В ней последовательно к символам предложения применяются операторы «xor 50», «or 3» и «and 200».

#include >stdio.h<

int main () {

char str[]="This is rubric X-Puzzle!";

int i=0;

while (str[i]!='\0') {

printf("%c", str[i++]^50);

if (str[i]=='\0') break;

printf("%c", str[i++]|3);

if (str[i]=='\0') break;

printf("%c", str[i++]&200);

if (str[i]=='\0') break;

}

printf("\n");

return 0;

}

ПЕРВЫЙ ПАЗЛ «ПРОСТО БИТХАК»

Com-программа (154 байта), показанная на рисункеэ, упрямо выдает на экран слово LAMER. Все попытки ламеров заставить ее напечатать на экране слово HACKER не увенчались успехом. Может быть, это получится у тебя? ;) Всего-то нужно подправить один байт. Чтобы тебе не париться и не вводить программу со скриншота вручную, я выложил ее на сайте www.sklyaroff.ru.

ВТОРОЙ ПАЗЛ «ШПИОН CORE»

Задание простое. Необходимо написать программку под *nix, которая сразу бы после своего запуска выпадала в файл core («core dumped»). При этом в core должно оказаться все содержимое файла /etc/passwd системы, на которой программа была запущена.

Язык программирования можно использовать любой (мой вариант будет на Сях). Программа должна одинаково «хорошо» работать как под рутом, так и под обычным пользователем. Решения слать в исходнике.

ТРЕТИЙ ПАЗЛ «ОЛИГОФРЕНИЧЕСКИЙ ШИФР»

Алгоритм зашифровал слово «yes» следующим образом (см. рисунок):

Расшифруй фразу, зашифрованную этим же алгоритмом (см. рисунок):

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

ЧЕТВЕРТЫЙ ПАЗЛ «ПАРОЧКА РЕБУСОВ ДЛЯ ОДАРЕННЫХ»

Ребус #1

Ребус #2

ПЯТЫЙ ПАЗЛ «БЕЗУМНЫЙ RANDOM»

Напиши генератор случайных чисел на любом языке программирования, не используя стандартные функции и библиотеки этого языка, типа rand, srand, randomize, rnd и пр. Кто продемонстрирует больше всех таких различных способов, тот и выиграл ;).

Содержание  Вперед на стр. 068-142-2