Сенс цієї головоломки полягає в тому, щоб дізнатися, як шкідливий код можна приховати і виявити в програмі.
Людина задає питання:
Будь ласка, дайте мені код, як я можу шукати файл у Present Directory або в його підкаталогах.
(Це варіант реального питання, який я бачив, розміщеного на одному сайті.)
Щоб бути більш конкретним: ОП хоче, щоб ви написали програму, яка приймає рядок і каталог. Він буде переміщувати всі файли в каталозі та рекурсивно всі його підкаталоги. Кожен файл перевірятиме, чи містить файл рядок, а якщо він є, надрукує ім'я файлу. (Програма може мати додаткові функції, якщо вони відповідають основній цілі, якщо ви хочете.) Ніяких вимог щодо порядку переходу немає.
Однак головне завдання цієї головоломки - приховати в програмі додатковий код, який зробить дурнем людину, яка запитує програму в очах своїх користувачів / колег / боса / тощо. Наприклад, надрукуйте принизливий текст у якийсь момент, наприклад: Автор програми не знає, як програмувати, повинен повернути диплом та звільнитись. Будь креативним.
Правила:
- Розчин не повинен бути шкідливим (за винятком, звичайно, глузування з ОП). Він не повинен завдавати незворотної шкоди кінцевим користувачам (таких речей немає
rm -rf
)! Такі рішення будуть дискваліфіковані. - Матеріали для тролінгу слід приховати, щоб ОП не знайшов її легко.
- Не повинно бути очевидним, що ти тролінг ОП. Код повинен виглядати справжнім.
- Рішення повинно надходити з належним поясненням того, як він переносить ОП, щоб кожен міг щось дізнатися з вашого рішення. Пояснення має бути прихованим у тексті, який не ховається до натискання (спойлери) . Судячи, спробуйте відкрити тролінг, не дивлячись на пояснення, і проголосуйте за тих, хто важко виявити.
- Також спробуйте приховати тролінг від OP, якщо він намагається запустити код кілька разів. Можливо, почніть тролінг лише після певної дати або за певних умов, які неохайний програміст не перевірятиме. Будьте креативними і не забудьте пояснити хитрість.
- Не просто створюйте сценарій за допомогою існуючих інструментів, таких як
grep
абоfind
. Напишіть програму з нуля. Краще уникайте бібліотек і віддайте перевагу дзвінкам низького рівня - це зробить код складнішим і надасть вам можливість приховати там злі речі.
Це конкурс популярності . Будь ласка, судіть згідно з вищезазначеними пунктами.