Как починить RockyTap и сделать свою тапалку в телеграм

SmokyD00D

Участник
Дней с нами
671
Розыгрыши
0
Сообщения
12
Репутация
0
Реакции
2
Дисклеймер: данная статья написана исключительно в ознакомительных целях, ни к чему не призывает и ничего не пропагандирует, а автор не несет ответственности за работу скриптов и любое их использование. Цель данной статьи - продемонстрировать, почему зануленный софт часто не работает и почему не стоит доверять в принципе скачанным скриптам.

Не так давно ко мне обратился человек с просьбой помочь запустить скрипт, который продается на каньоне - RockyTap. Откуда он был скачан в данном случае - я не знаю, но не суть. В общем, сам по себе скрипт - обычная тапалка в телеграм.

Идет вместе с документацией, что ускоряет и облегчает установку. Оригинальный код я не видел, но у меня сложилось впечатление, что в архиве он уже немного изменен. Не в смысле "протроянен" (об этом позже), а просто кто-то его уже пробовал модифицировать. Такое мнение у меня сложилось после того, как я увидел файл index.php в папке stat:

Код:
//...

/*
    "totalCoins" => $totalCoins,
    "totalTaps" => $totalTaps,
   // "totalPlayers" => $totalPlayers,
    "totalPlayers" => 80000,
    "daily" => $daily,
    "online" => $online,
    
    */
    
     "totalCoins" => rand(4380000, 23000000),
       "totalTaps" => $totalTaps = rand(5380000, 83000000),
"totalPlayers" => ,
"daily" => $daily = rand(15000, 35000),
 "online" => $online = rand(10000, 15000),

//...


Этот скрипт выводит статистику - сколько игроков всего зарегистрировано, сколько играет сейчас, и т.д. Часть кода, которая более-менее отражает реальные данные, закомментирована (вот почему не стоит верить статистике в приложениях, ха-ха). Мое внимание привлекла строка

Код:
"totalPlayers" => ,


на которую, собственно, ругается даже IDE. Из-за отсутствия значения скрипт не работает. Решается просто, нужно лишь вписать какое-то число:

Код:
"totalPlayers" => 2000,


Например, так.

Смотрим далее. Мое внимание привлек какой-то очень подозрительный скрипт с комментариями на арабском. Стиль написания кода отличается от остальных файлов. Внутри - преобразование дат, однако ничего плохого, вроде бы, он не делает. Хотя сильно я не вникал, не знаю. Однако что-то мне подсказывает, что этот файл не был изначально в приложении, а был добавлен третьей стороной. В зануленные скрипты часто внедряют какие-то вредоносы, так что, может, какая-то задумка и была. Не знаю.
fd.png


На всякий случай, файл переименовываем и меняем расширение на что-то другое - например, pdat.

Немного удивило отсутствие dev-файлов для фронтенда - в архиве поставляется только минифицированная версия, что сильно затруднит доработку визуала и добавление новых функций. Скрипт стоит около $200 - на мой взгляд, там должен быть исходник фронтенда тоже. К тому же, там установлена гугл аналитика, так что пришлось поменять идентификаторы, чтобы статистика никуда не улетала.

После запуска выяснилось, что в базе некоторые значения не могут быть null, хотя в скрипте БД ничего такого я не нашел. Не ломая долго голову, поменял строки в bot/index.php с

Код:
@$last_name = $update->message->from->last_name?:null;

на

Код:
@$last_name = $update->message->from->last_name ?: '';


И еще потом оказалось, что, по какой-то причине, сбоит функция проверки подлинности запроса. Она нужна, чтобы подтвердить, что запрос пришел именно от телеграма, а не откуда-то еще. Саму функцию приводить тут не буду, ее легко найти на StackOverflow.

После этого все заработало.
result.jpg


В целом, скрипт поднимается без особых проблем, просто следуя документации. Нужно установить веб-хук на самого бота, иначе не будет работать.
 
  • Like
Реакции: cheetos99