ХЕЛИОС: Проникване
Хакерска пъзел игра, която се играе изцяло в браузъра. Получаваш фалшив Linux терминал и с истински команди проникваш в системите на измислената корпорация „Хелиос Системс“, за да спреш проект „КОНТРОЛНО“: изкуствен интелект, който иска учениците да пишат контролни всеки ден.
Съдържание
- Как се играе
- Всяка игра е различна
- Команди
- Точки, следа и рангове
- Ръководство за минаване (спойлери)
- Постижения
- Технически детайли
- Пускане
- Лиценз
Как се играе
Пишеш команди в терминала и натискаш Enter. Във всяко от шестте нива трябва да намериш парола и да я въведеш с unlock <парола>. Командата help показва какво можеш, man <команда> обяснява подробно всеки инструмент, а hint дава подсказка срещу 75 точки.
| Ниво | Сървър | Какво учиш |
|---|---|---|
| 1 | helios-guest | ls, cd, cat: навигация във файлова система |
| 2 | helios-portal | скрити файлове и папки (ls -a), .bash_history, .env |
| 3 | helios-mail | шифър на Цезар |
| 4 | helios-db | Base64 (и защо това не е шифроване), конфигурационни файлове |
| 5 | helios-logs | grep и пайпове (cat auth.log | grep root) |
| 6 | helios-core | шестнадесетичен и двоичен код, обърнат текст |
Удобства:
- Tab допълва имена на команди, файлове и папки (
cat to+ Tab →cat todo.txt). - ↑ / ↓ връщат предишни команди.
- Пайп
|подава изхода на една команда към друга:cat auth.log | grep root. - Прогресът се пази автоматично в браузъра. Може да затвориш таба и да продължиш по-късно.
- Всеки клавиш или клик прескача анимациите с текст.
- На телефон има бутони за най-честите команди под терминала.
Всяка игра е различна
Всяка нова игра генерира свой свят от случаен номер (семе). От него зависят:
- паролите на всичките шест нива;
- кой е издал паролата и къде: стажантът, чистачката, охраната или рецепцията в ниво 1;
.bash_history,.envили скрита папка в ниво 2; различни конфигурационни файлове и скриптове в ниво 4; - ключът на шифъра на Цезар и гатанката, която го издава (планети, дни от седмицата, месеци, футболисти…);
- часът, в който директорът влиза в ниво 5, и защо точно тогава;
- как е разделен ключът в ниво 6 и с какво е кодиран всеки фрагмент (hex, двоичен или наобратно, в различен ред);
- обстановката на нивата от 2 до 6:
| Обстановка | Ефект |
|---|---|
| Спокойна нощ | нормално: 3% следа на команда, 12% за грешна парола |
| Засилена охрана | 5% следа на команда |
| Админът гледа сериал | само 2% следа на команда |
| Нова защита | грешна парола струва 25% |
| Шумен прокси | започваш нивото с 30% следа |
Номерът на света се вижда в началото, в страничния панел, със status и на финалната карта. С reset <номер> можеш да изиграеш точно същия свят отново или да го дадеш на приятел и да сравните резултатите. Само reset започва нов, случаен свят.
Команди
| Команда | Какво прави |
|---|---|
ls [-a] [папка] |
показва файловете; -a показва и скритите (имената им започват с точка) |
cd <папка> |
влиза в папка; cd .. е нагоре, cd ~ е вкъщи |
cat <файл> |
показва съдържанието на файл |
pwd |
показва къде си |
tree [-a] |
рисува дървото от папки (шумно: +5% следа) |
find <име> |
търси файл по име из целия сървър (много шумно: +8% следа) |
echo <текст> |
отпечатва текст, удобно с пайп |
unlock <парола> |
въвежда намерена парола |
note [текст] |
бележник в страничния панел; note -d <n> трие, note -c чисти |
man <команда> |
подробно ръководство, например man grep или man pipe |
hint |
подсказка за нивото (−75 точки, по 3 на ниво) |
status · achievements |
прогрес · постижения |
clear · sound |
чисти екрана · звук |
reset [номер] |
нова игра в случаен свят или в свят с даден номер |
Инструменти, които се отключват по пътя: caesar (ниво 3), base64 (ниво 4), grep (ниво 5), hex, bin, rev (ниво 6).
Има и скрити команди: sudo, kafe, neofetch, whoami, date, vim, hack… пробвай ги.
Точки, следа и рангове
| Събитие | Точки |
|---|---|
| Минато ниво | +500 |
| Ниво, минато за под 2 минути | +100 бонус |
Подсказка (hint) |
−75 |
| Засичане (следата стига 100%) | −150 |
Следа. Всяка „истинска“ команда (ls, cd, cat, grep…) добавя 3% към лентата „СЛЕДА“, tree добавя 5%, find 8%, а грешна парола 12%. Обстановката на нивото може да промени тези числа. При 100% системата те засича: губиш 150 точки и се връщаш в началната папка. Над 70% екранът пулсира в червено. help, hint, note, man, status и clear не оставят следа. Следата се нулира в началото на всяко ниво.
Рангове: Скрипт-хлапе (под 1900) → Хакер (1900+) → Призрак (2600+) → Легенда (3200+). Максимумът е 3600: 6 нива × (500 + 100), без подсказки и засичания.
Ръководство за минаване (спойлери)
⚠️ Паролите са различни във всяка игра, затова тук е описано как се решава всяко ниво и във всички варианти. Примерите са от един конкретен свят. Опитай първо сам или с
hintи отваряй нивата едно по едно само ако блокираш.
Ниво 1 · helios-guest — навигация
Започваш в /home/guest. Прочети readme.txt: той те моли да не пипаш папката на някого (стажанта, чистачката, охраната или рецепцията). Точно в тази папка е паролата.
ls
cat readme.txt
cd stajant (или chistachka, ohrana, retseptsia)
ls
cat todo.txt (или belejka.txt, dnevnik_smyana.txt, postit.txt)
Във файла някой е записал паролата за портала, например:
[ ] да сменя паролата за портала, защото е твърде лесна
(сега е: slanchogled)
unlock slanchogled
⚠️ Ако видиш wifi.txt, паролата в него е само за wifi и не става за портала.
🐱 Тайно постижение: в същата папка има snimki/. Пробвай cat snimki/kotka.jpg.
Ниво 2 · helios-portal — скрити файлове
ls показва само docs/ и welcome.txt. Политиката в docs/politika.txt подсказва, че админът „скрива“ паролите. В Linux файловете с точка отпред са скрити:
ls -a
Паролата е в един от тези варианти:
| Какво виждаш | Какво правиш | Къде е паролата |
|---|---|---|
.bash_history |
cat .bash_history |
в команда като mysql -u admin -p'banitsa' или sshpass -p 'banitsa' ssh … |
.env |
cat .env |
на реда MAIL_PASSWORD=banitsa |
.taino/ |
cd .taino, после cat parola.txt |
„Паролата за пощата: banitsa“ |
unlock banitsa
(.config/ винаги е там и е безобидна.)
Ниво 3 · helios-mail — шифър на Цезар
cd inbox
ls
cat 001_direktor.txt
Директорът казва кой ще прати паролата и издава ключа с гатанка:
| Гатанка | Ключ |
|---|---|
| планетите в Слънчевата система (без Плутон) | 8 |
| дните в седмицата / цветовете на дъгата | 7 |
| месеците в годината | 12 |
| футболистите на терена | 11 |
| пръстите на двете ръце | 10 |
| краката на насекомо | 6 |
| пръстите на едната ръка | 5 |
| сезоните | 4 |
| „същият като на самия Юлий Цезар“ | 3 |
Прочети шифрованото писмо (002_…txt, името зависи от подателя) и върни текста с минус ключа:
cat 002_ivan.txt
caesar -8 xizwtibi hi jihibi m wzjqbi
parolata za bazata e orbita
unlock orbita
💡 С пайп: echo <шифъра> | caesar -8. Ако не разгадаеш гатанката, пробвай ключовете един по един: те са само 25.
Ниво 4 · helios-db — Base64
Паролата на базата е „скрита“ с Base64 в един от тези файлове:
| Файл | Ред |
|---|---|
config/database.yml |
password_enc: … |
config/app.json |
"db_secret": "base64:…" |
docker-compose.yml |
POSTGRES_PASSWORD_B64: … |
scripts/backup.sh |
echo '…' | base64 -d |
Използвай tree, за да видиш всичко наведнъж, или разгледай папките. После декодирай низа (без base64: отпред):
cat config/database.yml
base64 -d bHl1dGVuaXRzYQ==
unlock lyutenitsa
Base64 често завършва на = или ==. Това не е шифроване: няма ключ и всеки може да го декодира.
Ниво 5 · helios-logs — grep
Започваш в /var/log. Прочети чата:
cat notes/sysops_chat.txt
Той казва в колко часа влиза шефът (например 03:14, 13:37, 04:04…) и че е написал паролата си в полето за потребителско име. auth.log има над 260 реда, затова филтрираш по този час:
grep 03:14 auth.log
03:14:01 ... Failed password for invalid user noshtna_sova from 10.0.7.31
03:14:09 ... Accepted password for root from 10.0.7.31
Паролата е думата след invalid user (винаги е от две думи с долна черта):
unlock noshtna_sova
💡 Работи и grep invalid auth.log или cat auth.log | grep invalid.
Ниво 6 · helios-core — hex, bin, rev
cd fragmenti
ls
Има три фрагмента, номерирани 1, 2, 3. Разширението на всеки показва как е кодиран, а редът на кодиранията е различен всяка игра:
| Разширение | Как изглежда | Команда |
|---|---|---|
.hex |
6e 79 61 6d 61 |
hex -d 6e 79 61 6d 61 |
.bin |
01011111 01101011 … |
bin -d 01011111 01101011 … |
.txt |
текст наобратно | rev fragment_N.txt |
Разкодирай ги поред, запиши всяко парче с note и ги слепи в ред 1-2-3 без интервали. Например nyama + _kontr + olni = nyama_kontrolni. Ключът винаги е смислена фраза („няма контролни“, „вечна ваканция“, „без домашни“…), така че веднага ще разбереш дали си я сглобил правилно.
unlock nyama_kontrolni
📜 Преди това прочети cat ../logs/dnevnik_na_helios.log за историята на ИИ-то (постижение „Археолог“).
Финалът — два края
ХЕЛИОС ти проговаря и имаш root достъп. Избери:
| Команда | Край |
|---|---|
delete kontrolno |
Изтриваш само проекта. ХЕЛИОС оцелява и започва да помага с домашните… учтиво. (Дипломат) |
shutdown helios |
Изключваш целия ИИ. Последни думи: „Но кой ще проверява домашните?“ (Терминатор) |
Изборът не влияе на точките. С reset започваш в нов свят. Постиженията остават, така че можеш да изиграеш и другия край.
Съвети за ранг ЛЕГЕНДА (3200+ точки)
- Максимумът е 3600 точки. Трябват ти поне 3200, значи можеш да си позволиш най-много 5 подсказки или две засичания.
- Всяко ниво под 2 минути носи +100. Чети само файла, който ти трябва:
readme.txtв ниво 1 веднага казва в чия папка да търсиш. - Използвай
tree(в ниво 1 и 4) вместо многоlsиcd. Струва малко повече следа, но спестява време. - Никога не гадай пароли: при „Нова защита“ една грешка е 25% следа.
- При „Шумен прокси“ започваш с 30%. Тогава не ползвай
find. note,man,hint,statusиhelpне оставят следа.
Постижения
14 постижения, пазят се и след reset. За всички трябват поне две игри (двата края).
| Постижение | Как се взима |
|---|---|
| Вътре съм | Мини ниво 1. |
| Чета упътванията | Използвай man. |
| Водопроводчик | Свържи две команди с |. |
| Детектив | Запиши бележка с note. |
| Археолог | Прочети дневника на ХЕЛИОС в ниво 6. |
| Без патерици | Завърши без нито един hint. |
| Невидим | Завърши, без следата да стигне 100%. |
| Светкавица | Мини всяко ниво за под 2 минути. |
| Легенда | Завърши с 3200+ точки. |
| Дипломат | Финал с delete kontrolno. |
| Терминатор | Финал с shutdown helios. |
3 тайни постижения (спойлер)
| Постижение | Как се взима |
|---|---|
| Котколюбец | cat на снимка на котка в ниво 1. |
| Бариста | Напиши kafe. |
| Не на мен тези | Напиши sudo. |
Технически детайли
- Чист HTML, CSS и JavaScript, без библиотеки, без бекенд и без билд стъпка
- Виртуална файлова система с относителни и абсолютни пътища (
..,~,/) - Tab допълване, история на командите (↑ ↓), пайпове между команди
- Генератор на светове с детерминистично случайно семе: един и същ номер дава един и същ свят
- Звукови ефекти с Web Audio API, генерирани в реално време
- Прогресът и постиженията се пазят в localStorage
- Работи на телефон, с бутони за най-честите команди
- CRT ефекти: включване на екрана, сканиращи линии, червена тревога при висока следа
- Карта на мрежата, бележник и известия за постижения
index.html разметката на страницата
favicon.svg иконата в таба
css/style.css всички стилове и анимации
js/levels.js генераторът на светове, man страниците и постиженията
js/sound.js звуковите ефекти (Web Audio)
js/game.js двигателят: терминал, команди, точки, запазване
Скриптовете са обикновени (не ES модули), за да работи играта и при директно отваряне на index.html от диска. Нов вариант на ниво се добавя като нов елемент в съответния pick([...]) в js/levels.js, а нови пароли в пуловете WORDS, NICKS и PHRASES.
Пускане
Отвори index.html в браузър. За GitHub Pages: Settings → Pages → Deploy from branch → main / root.
Лиценз
MIT © 2026 Крум Крумов · github.com/Krumqnkata