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 и пр. Кто продемонстрирует больше всех таких различных способов, тот и выиграл ;). |