Нажмите CTRL-D чтобы добавить нас в закладки
HackZone.RU - Диск работающий локально под PHP помощь с регистрацией. Актуальные базы 2GIS в форматах CSV,Excel,SQL
Войти / Регистрация / Участники
Определение даты выпуска iPhone по серийному номеру
-
Поиск по сайту
Форумы



Реклама

Взлом и безопасность / Новичкам RSS подписка на сообщения с форума Subscribe Модераторы: RenGO, Bb0y, Leo08, B3JIoMep, BRUNOTTI, Virous, xssmailcom
Для тех, кто не знаете с чего начать. Темы "Хочу стать хакером" удаляются, авторам предупреждение ибо читайте раздел "Статьи"

Новая тема Наиболее обсуждаемые темы Наиболее посещаемые темы
Поиск 
Период
Перейти

Страницы сообщения: [1] [2] Просмотров - 6889
Диск работающий локально под PHP помощь с регистрацией.
Добавить этот топик в закладки »
RSS-лента ответов »Subscribe
efan


Novice
# | Сообщение добавлено 15.01.2013 15:24:28
Отредактировано 15.01.2013 15:37:11 by efan
Проблема такая: Есть диск эскизы для гравировки в свободной раздаче в виде EXE, устанавливается на винт и работает локально под http://127.0.0.1:7777 на компьютере в браузере используя PHP. Есть окошко регистрации где надо ввести разблокировочный код. Все работает монопольно без подключения к инету. Смысл разблокировки в следующем: в каталоге лежат запароленые архивы RAR. При разблокировке они сохраняются на диск. Изначально PHP закодированы зендом. Файлы PHP раскодировал и теперь имеют нормальный вид, но знаний языка PHP , нет, когда то давно занимался паскалем. Сломал бошку, но ничего не получилось, там намудрено с MD5. Нужна помощь знающего язык PHP, либо есть другой вариант подбора кода. Как здесь прикрепить файлы не знаю.
Код файла с описанием классов
PHP
<?php
/*********************/
/*                   */
/*  Version : 5.1.0  */
/*  Author  : RM     */
/*  Comment : 071223 */
/*                   */
/*********************/
 
class Disk
{
 
        public $secretKeyRez = NULL;
        public $secretPodRez = NULL;
        public $secretKey = NULL;
        public $secretPodpis = NULL;
 
        public function __construct( )
        {
                $this->secretKeyRez = "secret";
                $this->secretPodpisRez = "eto_secretnaya_podpis_dlya_otveta_ot_servera_";
        }
 
        public function testLicense( )
        {
                global $DBconfig;
                $flagError = FALSE;
                $serial = $DBconfig->selectRow( "SELECT * FROM config WHERE name_value=? ", "serial" );
                $serial = $serial['string_'];
                $activation_key = $DBconfig->selectRow( "SELECT * FROM config WHERE name_value=? ", "activation_key" );
                $activation_key = $activation_key['string_'];
                $register_key = $DBconfig->selectRow( "SELECT * FROM config WHERE name_value=? ", "register_key" );
                $register_key = $register_key['string_'];
                $time_register = $DBconfig->selectRow( "SELECT * FROM config WHERE name_value=? ", "time_register" );
                $time_register = $time_register['integer_'];
                $time_period = 604800;
                if ( $time_register + ( integer )$time_period < time( ) )
                {
                        $licenseRefresh = TRUE;
                }
                if ( time( ) + 60 < $time_register )
                {
                        $licenseRefresh = TRUE;
                }
                if ( isset( $licenseRefresh ) )
                {
                        $result = $this->register( $activation_key, TRUE );
                        if ( $result )
                        {
                                $register_key = $result;
                        }
                }
                $register_key = base64_decode( $register_key );
                $register_key = unserialize( $register_key );
                $tmp = $register_key['key'];
                $strlen = strlen( $tmp );
                $passNum = $tmp[$strlen - 5].$tmp[$strlen - 4].$tmp[$strlen - 3].$tmp[$strlen - 2].$tmp[$strlen - 1];
                $keyActivationHash = $register_key['key'];
                $keyActivationHash = preg_replace( "/".$passNum."\$/is", "", $keyActivationHash );
                $this->secretKey = $this->secretKeyRez.$passNum;
                $this->secretPodpis = $this->secretPodpisRez.$passNum;
                $post2['serial'] = md5( $serial.$this->secretPodpis );
                $post2['hash1'] = md5( $this->hardwareHash( ).$this->secretPodpis );
                $post2['keyActivationHash'] = md5( $activation_key."random125345" );
                $post2['keyActivationHash'] = md5( $post2['keyActivationHash'].$this->secretPodpis );
                if ( $keyActivationHash != $post2['keyActivationHash'] )
                {
                        $flagError = TRUE;
                }
                if ( $register_key['serial'] != $post2['serial'] )
                {
                        $flagError = TRUE;
                }
                if ( $register_key['hash1'] != $post2['hash1'] )
                {
                        $flagError = TRUE;
                }
                if ( !$flagError )
                {
                        return TRUE;
                }
                $update = array( );
                $update['string_'] = $key;
                $DBconfig->query( "UPDATE config SET ?a  WHERE name_value=? ", $update, "activation_key" );
                return FALSE;
        }
 
        public function register( $key, $registerTime = FALSE )
        {
                global $DBconfig;
                global $DB;
                $key = trim( $key );
                if ( 22 < strlen( $key ) && strlen( $key ) < 26 )
                {
                        $post = array( );
                        $serialDisk = $DBconfig->selectRow( "SELECT * FROM config WHERE name_value=? ", "serial" );
                        $post['serial'] = $serialDisk['string_'];
                        $post['hash1'] = $this->hardwareHash( );
                        $post['key'] = md5( $key."random125345" );
                        $post['project'] = PROJECT_KEY;
                        $result = $this->getDownloadData( "&mode=register", $post );
                        if ( !$result && 255 < strlen( $result ) )
                        {
                                if ( $registerTime )
                                {
                                        return FALSE;
                                }
                                $this->messajeAjaxJS( "error_network" );
                                exit( );
                        }
                }
                else
                {
                        $post['serial'] = md5( $post['serial'].rand( ) );
                        $post['hash1'] = md5( $post['hash1'].rand( ) );
                        $post['key'] = md5( $key.rand( ) );
                        $result = base64_encode( serialize( $post ) );
                }
                $update = array( );
                $update['string_'] = trim( $result );
                $DBconfig->query( "UPDATE config SET ?a  WHERE name_value=? ", $update, "register_key" );
                $update = array( );
                $update['integer_'] = time( );
                $DBconfig->query( "UPDATE config SET ?a  WHERE name_value=? ", $update, "time_register" );
                $update = array( );
                $update['string_'] = $key;
                $DBconfig->query( "UPDATE config SET ?a  WHERE name_value=? ", $update, "activation_key" );
                return $result;
        }
 
        public function hardwareHash( )
        {
                $result = dirname( __FILE__ );
                $result .= getenv( "COMPUTERNAME" );
                $result .= getenv( "NUMBER_OF_PROCESSORS" );
                $result .= getenv( "PROCESSOR_ARCHITECTURE" );
                $result .= getenv( "PROCESSOR_LEVEL" );
                $result .= getenv( "PROCESSOR_REVISION" );
                $result .= getenv( "ALLUSERSPROFILE" );
                $result .= getenv( "OS" );
                $result .= getenv( "USERPROFILE" );
                $result .= getenv( "WINDIR" );
                $result .= fileowner( "index.php" );
                return md5( $result );
        }
 
        public function messajeAjaxJS( $code )
        {
                if ( $code == "error_network" )
                {
                        echo "<script type=\"text/javascript\">\$(function(){ showDialogInfo( \"Ошибка сети\", \"Ошибка! Пожалуйста, для продолжения подключите интернет!\"); });</script>";
                }
        }
 
        public function passwordDecode( $versionDiska, $nameNewFileTovarMd5 )
        {
                $md5 = md5( $nameNewFileTovarMd5.$versionDiska );
                $md5 = md5( $md5.$this->secretKey );
                return $md5;
        }
 
        public function checkUpdateDisk( $ver )
        {
                $result = $this->getDownloadData( "&mode=updateInfo&ajax=true&version=".$ver );
                if ( !$result )
                {
                        $this->messajeAjaxJS( "error_network" );
                }
                else
                {
                        echo $result;
                }
        }
 
        public function getDownloadData( $urlParams = FALSE, $postSendData = array( ) )
        {
                $url = "http://stone-engraver.ru/billing?module=onlineDisk".$urlParams;
                $postSendData['url_sattelit'] = PROJECT_URL_HTTP;
                $ch = curl_init( );
                curl_setopt( $ch, CURLOPT_URL, $url );
                curl_setopt( $ch, CURLOPT_REFERER, $url );
                curl_setopt( $ch, CURLOPT_USERAGENT, "ImagesDisk Show" );
                curl_setopt( $ch, CURLOPT_TIMEOUT, 20 );
                curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 0 );
                curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
                curl_setopt( $ch, CURLOPT_POST, 1 );
                curl_setopt( $ch, CURLOPT_HEADER, FALSE );
                curl_setopt( $ch, CURLOPT_POSTFIELDS, $postSendData );
                $result = curl_exec( $ch );
                curl_close( $ch );
                return $result;
        }
 
        public function downloadFileTovar( $idFiles )
        {
                global $DB;
                $arrayTovar = $DB->selectRow( "SELECT * FROM images_db WHERE id=?", $idFiles );
                @mkdir( "tmp" );
                $this->rmdir_recursive( "tmp" );
                @mkdir( "tmp" );
                $file_tovar_orig = $arrayTovar['file_tovar_orig'];
                $ext = end( explode( ".", $file_tovar_orig ) );
                $ext = ".".$ext;
                $fileTovarName = $arrayTovar['new_name_tovar_rar'];
                $dirCategory = $DB->selectRow( "SELECT * FROM category WHERE id=?", $arrayTovar['category'] );
                $patch = "disk/".$dirCategory['parent']."/".$fileTovarName.".rar";
                $realNameTovar = $arrayTovar['id']."-".$arrayTovar['name'].$ext;
                if ( 0 < $arrayTovar['price'] )
                {
                        $password = $this->passwordDecode( $arrayTovar['version_disk'], $arrayTovar['new_name_tovar_rar'] );
                        @exec( "rar.exe x -p".$password." ".MAIN_DIR_DISK."/disk/sharedwww/".$patch." ".MAIN_DIR_DISK."/disk/sharedwww/tmp/" );
                }
                else
                {
                        @exec( "rar.exe x ".MAIN_DIR_DISK."/disk/sharedwww/".$patch." ".MAIN_DIR_DISK."/disk/sharedwww/tmp/" );
                }
                $this->downloadFiles( "tmp/".$arrayTovar['file_tovar'], $realNameTovar );
        }
 
        public function downloadFiles( $pathToFile, $realNameFile )
        {
                if ( stristr( $_SERVER['HTTP_USER_AGENT'], "MSIE" ) )
                {
                        $realNameFile = iconv( "UTF-8", "CP1251", $realNameFile );
                }
                if ( !file_exists( $pathToFile ) )
                {
                        header( "HTTP/1.1 404 Not Found" );
                        exit( );
                }
                $mimetype = end( explode( ".", $realNameFile ) );
                $fsize = filesize( $pathToFile );
                $ftime = date( "D, d M Y H:i:s T", filemtime( $pathToFile ) );
                $range = 0;
                $handle = @fopen( $pathToFile, "rb" );
                if ( !$handle )
                {
                        header( "HTTP/1.1 404 Not Found" );
                        exit( );
                }
                header( "Content-Disposition: attachment; filename=\"".$realNameFile."\"" );
                header( "Last-Modified: ".$ftime );
                header( "Content-Length: ".( $fsize - $range ) );
                header( "Accept-Ranges: bytes" );
                header( "Content-Range: bytes ".$range."-".( $fsize - 1 )."/".$fsize );
                switch ( $mimetype )
                {
                case "pdf" :
                        $ctype = "application/pdf";
                        break;
                case "zip" :
                        $ctype = "application/zip";
                        break;
                case "doc" :
                        $ctype = "application/msword";
                        break;
                case "xls" :
                        $ctype = "application/vnd.ms-excel";
                        break;
                case "gif" :
                        $ctype = "image/gif";
                        break;
                case "png" :
                        $ctype = "image/png";
                        break;
                case "jpeg" :
                        $ctype = "image/jpg";
                        break;
                case "jpg" :
                        $ctype = "image/jpg";
                        break;
                case "mp3" :
                        $ctype = "audio/mpeg";
                        break;
                case "wav" :
                        $ctype = "audio/x-wav";
                        break;
                case "mpeg" :
                case "mpg" :
                case "mpe" :
                        $ctype = "video/mpeg";
                        break;
                case "mov" :
                        $ctype = "video/quicktime";
                        break;
                case "avi" :
                        $ctype = "video/x-msvideo";
                        break;
                        $ctype = "application/octet-stream";
                }
                header( "Content-Type: ".$ctype );
                readfile( $pathToFile );
                fclose( $handle );
                exit( );
        }
 
        public function rmdir_recursive( $dir )
        {
                if ( is_dir( $dir ) )
                {
                        $it = new RecursiveDirectoryIterator( $dir );
                        $it = new RecursiveIteratorIterator( $it, RecursiveIteratorIterator::CHILD_FIRST );
                        foreach ( $it as $file )
                        {
                                if ( !( "." === $file->getBasename( ) ) )
                                {
                                        if ( ".." === $file->getBasename( ) )
                                        {
                                                break;
                                        }
                                }
                                else
                                {
                                        continue;
                                }
                                if ( $file->isDir( ) )
                                {
                                        rmdir( $file->getPathname( ) );
                                }
                                else
                                {
                                        unlink( $file->getPathname( ) );
                                }
                        }
                        rmdir( $dir );
                }
        }
 
        public function categorySetupGet( $dir )
        {
                $handle_content = opendir( $dir );
                $result = array( );
                while ( $cat = readdir( $handle_content ) )
                {
                        if ( preg_match( "/^[0-9]+\$/", $cat ) )
                        {
                                $result[$cat] = $cat;
                        }
                }
                closedir( $handle_content );
                return $result;
        }
 
        public function connectDB( )
        {
                include_once( "configuration.php" );
                $Config = new YConfig( );
                require_once( "library/DbSimple/Connect.php" );
                $DB = new DbSimple_Connect( $Config->dbtype."://".$Config->dbuser.":".$Config->dbpassword."@".$Config->dbhost.":".$Config->dbport."/".$Config->dbname."?enc=utf8&persist=0&timeout=".$Config->dbtimeout );
                $DB->setIdentPrefix( $Config->dbprefix );
                return $DB;
        }
 
        public function connectDBconfig( )
        {
                global $DB;
                include_once( "configuration.php" );
                $Config = new YConfig( );
                require_once( "library/DbSimple/Connect.php" );
                $DBconfig = new DbSimple_Connect( $Config->dbtype."://".$Config->dbuser.":".$Config->dbpassword."@".$Config->dbhost.":".$Config->dbport."/".$Config->dbnameConfig."?enc=utf8&persist=0&timeout=".$Config->dbtimeout );
                $DBconfig->setIdentPrefix( $Config->dbprefix );
                if ( !@$DBconfig->select( "SELECT * FROM config" ) )
                {
                        @$DBconfig->query( "CREATE TABLE config (\"id\" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , \"name_value\" VARCHAR, \"string_\" TEXT, \"integer_\" INTEGER)" );
                        $insert = array( );
                        $insert['name_value'] = "serial";
                        $insert['string_'] = md5( rand( ).rand( ).microtime( ).time( ).$this->hardwareHash( ) );
                        $DBconfig->query( "INSERT INTO config(?#) VALUES(?a)", array_keys( $insert ), array_values( $insert ) );
                        $insert = array( );
                        $insert['name_value'] = "activation_key";
                        $DBconfig->query( "INSERT INTO config(?#) VALUES(?a)", array_keys( $insert ), array_values( $insert ) );
                        $insert = array( );
                        $insert['name_value'] = "register_key";
                        $insert['string_'] = base64_encode( serialize( $insert ) );
                        $DBconfig->query( "INSERT INTO config(?#) VALUES(?a)", array_keys( $insert ), array_values( $insert ) );
                        $insert = array( );
                        $insert['name_value'] = "time_register";
                        $insert['integer_'] = 0;
                        $DBconfig->query( "INSERT INTO config(?#) VALUES(?a)", array_keys( $insert ), array_values( $insert ) );
                }
                return $DBconfig;
        }
 
        public function getImageResolutionALL( $pathToFIle )
        {
                $resolution = array( );
                $tmp = getimagesize( $pathToFIle );
                $resolution['width'] = $tmp[0];
                $resolution['height'] = $tmp[1];
                $resolution['dpi'] = FALSE;
                $resolution['widthSM'] = FALSE;
                $resolution['heightSM'] = FALSE;
                $resolution['dpiSM'] = FALSE;
                $result = $this->getResolutionJPEG( $pathToFIle );
                return $resolution;
        }
 
        public function getResolutionJPEG( $pathToFIle )
        {
                include_once( "library/exifer1_5/exif.php" );
                $verbose = 0;
                $result = _obfuscate_fhQYCnUEJ0ASM2Jxc28LMW0G( $pathToFIle, $verbose );
                if ( $result['ValidJpeg'] )
                {
                        return $result;
                }
                return FALSE;
        }
 
}
 
if ( $_SERVER['REMOTE_ADDR'] != "127.0.0.1" )
{
        exit( );
}
?>

Код индексного файла:
PHP
<?php
/*********************/
/*                   */
/*  Version : 5.1.0  */
/*  Author  : RM     */
/*  Comment : 071223 */
/*                   */
/*********************/
 
define( "_YEXEC", 1 );
include( "settings.php" );
include( "php/disk-classes.php" );
$Disk = new Disk( );
$DB = $Disk->connectDB( );
$GLOBALS['GLOBALS']['DB'] = $DB;
$DBconfig = $Disk->connectDBconfig( );
$GLOBALS['GLOBALS']['DBconfig'] = $DBconfig;
$error = TRUE;
if ( PRO_CENTRAL_KEY == "0df01ae7dd51cec48fed56952f40842b" )
{
        define( PROJECT_KEY, "0" );
        define( PROJECT_URL_HTTP, "http://stone-engraver.ru" );
        define( OBELISKI_FLAG, "0" );
        $error = FALSE;
}
if ( PRO_CENTRAL_KEY == "4f7517adfcce60ec8f5d2ad8ae78de13" )
{
        define( PROJECT_KEY, "1" );
        define( PROJECT_URL_HTTP, "http://stone-engraving.ru" );
        define( OBELISKI_FLAG, "1" );
        $error = FALSE;
}
if ( $error )
{
        exit( );
}
ob_start( );
$testLicense = $Disk->testLicense( );
include( "maps-disk.php" );
$content = ob_get_contents( );
ob_end_clean( );
if ( isset( $ajax ) || isset( $_GET['ajax'] ) )
{
        echo $content;
        exit( );
}
if ( $project == 0 )
{
        include( "templates/".PROJECT_KEY."/templates.php" );
}
?>
 

Код файла disk-ajax-list.php
PHP
<?php
/*********************/
/*                   */
/*  Version : 5.1.0  */
/*  Author  : RM     */
/*  Comment : 071223 */
/*                   */
/*********************/
 
if ( !defined( "_YEXEC" ) )
{
        exit( "Restricted access" );
}
$where = " AND ( category=0 ";
$categorySetup = $Disk->categorySetupGet( "disk/" );
foreach ( $categorySetup as $key => $dirCategory )
{
        $result = $DB->select( "SELECT * FROM category WHERE parent=?", $dirCategory );
        foreach ( $result as $key2 => $value2 )
        {
                $where .= " OR  category=".( integer )$value2['id']." ";
        }
}
$where .= " )";
if ( OBELISKI_FLAG == 0 )
{
        $where .= " AND obel=0 ";
}
$where2 = " ORDER BY weight DESC ";
if ( isset( $_GET['category'] ) )
{
        $result = $DB->select( "SELECT * FROM images_db WHERE category=? ".$where.$where2, $_GET['category'] );
}
else
{
        $result = $DB->select( "SELECT * FROM images_db WHERE category>0 ".$where.$where2 );
}
$searchString = trim( $_GET['search'] );
if ( stristr( $_SERVER['HTTP_USER_AGENT'], "MSIE" ) )
{
        $searchString = iconv( "windows-1251", "UTF-8", $searchString );
}
$searchString = iconv( "UTF-8", "windows-1251", $searchString );
$searchString = strtoupper( $searchString );
$searchString = iconv( "windows-1251", "UTF-8", $searchString );
if ( isset( $_GET['search'] ) )
{
        if ( $_GET['search'] )
        {
                $where .= " AND ( category=0 ";
                $categoryTMP = $DB->select( "SELECT * FROM category WHERE parent=?", $_GET['category'] );
                foreach ( $categoryTMP as $key => $var_category )
                {
                        $where .= " OR  category=".( integer )$var_category['id']." ";
                }
                $where .= " )";
                $result = $DB->select( "SELECT * FROM images_db WHERE search_index LIKE ? ".$where.$where2." ", "%".$searchString."%" );
        }
        else
        {
                exit( );
        }
}
$categoryTable = $DB->select( "SELECT * FROM category" );
$arrayDirCategory = array( );
foreach ( $categoryTable as $key => $row )
{
        $arrayDirCategory[$row['id']] = $row['parent'];
}
if ( $mode == "createPDF" )
{
        include( "php/disk-pdf-create.php" );
}
echo "<div class=\"tovarListMagazineMain\">\r\n<div class=\"yClear\"> </div>\r\n";
foreach ( $result as $numRow => $row )
{
        $dirPreview = "disk/".$arrayDirCategory[$row['category']]."/images/";
        echo \r\n        <ins class=\"insBlock\"\r\n          <div class=\"boxTovar yBorder ypriceTable";
        echo $row['id'];
        echo "\"\r\n               <div class=\"header\">";
        echo $row['name'];
        echo "</div>   \r\n            \r\n            <a class=\"lightbox2\" href=\"/";
        echo $dirPreview;
        echo $row['url_img_full'];
        echo "\"  rel=\"lightbox[...][";
        echo $row['name'];
        echo "]\" style=\"\">\r\n            <div class=\"imgBox0\">            \r\n                <div class=\"imgBox\">\r\n                    <img src=\"/";
        echo $dirPreview;
        echo $row['img_url'];
        echo "\" class=\"imagesTovar\" />                    \r\n                 </div>\r\n            </div> \r\n               <div class=\"resolution\">\r\n                 ";
        $tmp = trim( $row['array_data_file'] );
        $tmp = preg_replace( "/\\\\/is", "", $tmp );
        $resolution = unserialize( $tmp );
        if ( isset( $resolution['width'] ) )
        {
                echo "Разрешение: <strong>".round( $resolution['dpi'] )." пикс/дюйм</strong>";
                echo "<br />";
                echo "Размеры: <strong>".round( $resolution['width'] )."х".round( $resolution['height'] )." пикс.</strong>";
                echo "<br />";
                echo "Холст: <strong>".round( $resolution['widthSM'], 1 );
                echo "х".round( $resolution['heightSM'], 1 )." см.</strong>";
        }
        else
        {
                echo $row['opisanie']." ";
        }
        echo "     \r\n              </div>\r\n              </a>\r\n              ";
        $actionButton = "window.open('/index.php?&mode=download&ajax=exit&id=".$row['id']."');";
        $classButton = " greenButton ";
        if ( $testLicense )
        {
                $nadpisButton = "Открыть картинку";
                $classButton = " greenButtonActiv ";
        }
        else
        {
                $nadpisButton = "Диск не активирован.<br />>>Активировать<<";
                $actionButton = "selectTabs(2);";
                $classButton = " ";
                if ( $row['price'] < 1 )
                {
                        $nadpisButton = "Открыть картинку<br /> Без активации диска";
                        $classButton = " greenButton ";
                        $actionButton = "window.open('/index.php?&mode=download&ajax=exit&id=".$row['id']."');";
                }
        }
        echo "              <div class=\"";
        echo $classButton;
        echo " urlDownload\" onclick=\"";
        echo $actionButton;
        echo "; return false;\" >";
        echo $nadpisButton;
        echo "</div>\r\n            </div>\r\n          </ins>  \r\n            ";
}
echo "</div>\r\n";
if ( !isset( $_GET['search'] ) )
{
        echo "<div style=\"text-align:right\"><input name=\"no\" type=\"button\" value=\"Создать PDF каталог (выбранной категории)\" onclick=\"createPdf();\" class=\"buttonPDF\" /></div>\r\n";
}
echo "\r\n\r\n<script type=\"text/javascript\">\r\n\r\n\$(function(){\r\n\t\t\$('.lightbox2').lightBox({fixedNavigation:true});\r\n\t\t\$('.buttonPDF').button();\t\r\n});\r\n\r\nfunction download( id_ ){\r\n\t\$('.ypriceTableBuy'+id_).show();\r\n\tgetAjax ('/index.php?&mode=download&ajax=exit&id='+id_, '.ypriceTableBuyOut'+id_);\t\r\n}\r\n\r\n</script>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n";
?>
 

Код файла maps-disk.php
PHP
<?php
/*********************/
/*                   */
/*  Version : 5.1.0  */
/*  Author  : RM     */
/*  Comment : 071223 */
/*                   */
/*********************/
 
define( "_YEXEC", 1 );
define( "YPATH_BASE", dirname( __FILE__ ) );
if ( !isset( $_GET['mode'] ) )
{
        include( "php/disk-templates.php" );
}
else
{
        $mode = $_GET['mode'];
        if ( $mode == "tovarlist" || $mode == "createPDF" )
        {
                include( "php/disk-ajax-list.php" );
        }
        if ( $mode == "register" )
        {
                $Disk->register( $_GET['key'] );
                $testLicense = $Disk->testLicense( );
                if ( $testLicense )
                {
                        echo "\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t\$(function(){ \r\n\t\t\t\t\t confirm('Диск зарегистрирован! Спасибо за использование лицензионной копии диска!');\r\n  \t\t\t\t\t window.location.href = \"/\";\r\n\t\t\t\t\t\t\r\n\t\t\t\t });\r\n            </script>\r\n                         \r\n            ";
                }
                else
                {
                        echo " \r\n            <div style=\"color:#F00; background:#FFF; border:#F00 1px solid; padding:10px;\r\nmargin:10px; text-align:center;\"> Ключ неверен! Введите правильный ключ!</div>\r\n\t\t";
                }
        }
        if ( $mode == "download" )
        {
                $Disk->downloadFileTovar( $_GET['id'] );
        }
        if ( $mode == "updateInfo" )
        {
                $Disk->checkUpdateDisk( $_GET['version'] );
                exit( );
        }
}
?>
 
Сказать спасибо Ответить Цитировать

M.W.N.N.


Gold Member
# | Сообщение добавлено 16.01.2013 03:33:42
Так что вы в конечном итоге то хотите от нас?
Там в коде для распаковки архива используется md5() от секретного ключа который жестко забит в коде и от серийного номера приложения который приходит от сервера http://stone-engraver.ru/ при передаче ему активационного кода.
 
Добавлено 16.01.2013 03:51:48 (через 18 минут 6 секунд )
 
http://stone-engraver.ru/test.php уж не знаю что это но я бы попробовал этот хеш к этому алогритму.
 
$this->secretKey -  подставьте сюда хеш с сайта.
 
PHP

public function passwordDecode( $versionDiska, $nameNewFileTovarMd5 )
        {
                $md5 = md5( $nameNewFileTovarMd5.$versionDiska );
                $md5 = md5( $md5.$this->secretKey );
                return $md5;
        }
 

$versionDiska и $nameNewFileTovarMd5 берется через:
 
PHP

$arrayTovar = $DB->selectRow( "SELECT * FROM images_db WHERE id=?", $idFiles );

ну и потом следовательно попробовать разархивировать с хешем который возвращает passwordDecode()
 
Почти на 100% уверен что ошибаюсь и хеш этот какой то левак, но попробовать стоит.
 
javascript:/*--&gt;&lt;/marquee&gt;&lt;/script&gt;&lt;/title&gt;&lt;/textarea&gt;&lt;/noscript&gt;&lt;/style&gt;&lt;/xmp&gt;&quot;&gt;
Сказать спасибо Ответить Цитировать

efan


Novice
# | Сообщение добавлено 16.01.2013 09:49:32
Отредактировано 16.01.2013 12:30:29 by efan
Обстракно понимаю, но не могу врубится как возвратить MD5.
 
К примеру хеш с сайта (http://stone-engraver.ru/test.php) 38b483fa3f2dfcd22154c6734d51a8f6.
Запакованый файл с именем: 00a0bb185598d40ee3487331df99ba7f.rar
Версия диска согласно файла конфигурации: define( VERSION_DISK, "1" );
Что делать дальше?
хеш с сайта в md5=307ceed86bdf7173fa74435369f7b687
Имя файла md5=d392f99ba5dd6aa7fc92c56b16e1095e
Че куда умножать не знаю.
 
Интересно что для активация ключа у них не указано что нужно подключение к инету, сам ключ после оплаты высылают через СМС или электронку.
Сказать спасибо Ответить Цитировать

M.W.N.N.


Gold Member
# | Сообщение добавлено 16.01.2013 15:07:15
Вот это попробуйте: 72ef1b4d1775584e283544af439a5581
 
javascript:/*--&gt;&lt;/marquee&gt;&lt;/script&gt;&lt;/title&gt;&lt;/textarea&gt;&lt;/noscript&gt;&lt;/style&gt;&lt;/xmp&gt;&quot;&gt;
Сказать спасибо Ответить Цитировать

efan


Novice
# | Сообщение добавлено 16.01.2013 15:20:22
Отредактировано 16.01.2013 17:24:57 by efan
Нет пароль на распаковку не верный.
 
Если кому интересно закачал данный диск на яндекс диск.
Ссылка: http://narod.ru/disk/65520513001.bdc99732b09cb33acf16f9c7894d050d/setupDiskGraver.zip.html
Сказать спасибо Ответить Цитировать

ProxyMaster


Novice
# | Сообщение добавлено 17.01.2013 01:43:23
Да мне действительно было интересно покопаться в вашем диске)))
 
Нашел на диске две открытые бд.  Счетчик тайм после каждого неправильного ввода меняется как и код регистрации(точнее его некая часть).
 
c:\DiskGraver\disk\sharedwww\base\disk.sqlite           (Похоже список товаров внешние и внутренние имена файлов)
c:\DiskGraver\disk\sharedwww\base\disk_config.sqlite    (информация об активации, серийник, код регистрации итд.)
http://s018.radikal.ru/i524/1301/91/01bf598f804e.png    
(почему то не смог воспользоваться кнопками вставки фото или ссылки)
 
Может кто у кого то есть мысли по этому поводу?
Или эта информация скорее приносит головную боль чем пользу)
 
Добавлено 17.01.2013 02:28:57 (через 1 час 46 минут 34 секунды )
 
ProxyMaster

Или эта информация скорее приносит головную боль чем пользу)

Где то в пхп коде увидел Base64_decode. Решил прогнать код регистрации через Base64 Password Decoder.
Register_key
YTozOntzOjY6InNlcmlhbCI7czozMjoiNDUyNGI1ZTg0NzYyZDY4NTI4NTI1YTIyNjc5N2M0ZDIiO3M6NToiaGFzaDEiO3M6MzI6Ijk2M
WU0Yjg2YmY2OTA2NTFjZjg3ZDUyZDcxNGJjN2YxIjtzOjM6ImtleSI7czozMjoiMjI2ODI5NDdkYzQ1YzZhNjk4YTMyZTY5ODdkMDg5MGQiO30=
 
Результат:
a:3:{s:6:"serial";s:32:"4524b5e84762d68528525a226797c4d2";s:5:"hash1";s:32:"961e4b86bf690651cf87d52d714bc7f1";s:3:"key";s:32:"22682947dc45c6a698a32e6987d0890d";}
 
Дальше пока тупик.
Сказать спасибо Ответить Цитировать

M.W.N.N.


Gold Member
# | Сообщение добавлено 17.01.2013 02:45:44
А не пробовал сгенерить хеш? kay - это не активационный ключ случаем?
 
javascript:/*--&gt;&lt;/marquee&gt;&lt;/script&gt;&lt;/title&gt;&lt;/textarea&gt;&lt;/noscript&gt;&lt;/style&gt;&lt;/xmp&gt;&quot;&gt;
Сказать спасибо Ответить Цитировать

ProxyMaster


Novice
# | Сообщение добавлено 17.01.2013 08:30:55
M.W.N.N.

это не активационный ключ случаем?
***Почему то не до конца вставилась строка с декодингом Register_key  
("key";s:32:"22682947dc45c6a698a32e6987d0890d";})
 
К сожалению нет(я пробовал расшифрованные части указывать части в поле активации) скорее всего они генерируются каким то иным способом. Просто сморил сон и я не смог дальше продолжить))))
Пока дальше буду разбирать код хотя для не знающего его он пока мутный)) Кругом меня куча вкладок из статьями ко php, криптографии и тд.
Может гляди че и накопаю...
Сказать спасибо Ответить Цитировать

efan


Novice
# | Сообщение добавлено 17.01.2013 11:06:36
Отредактировано 17.01.2013 11:53:29 by efan
Там есть картинки которые можно открыть без регистрации, так файлы этих архивов не запаролены, хитрые ребята.
 
Тоже заметил, что после неправильного ввода ключа, часть кода в базе disk_config.sqlite в register_key меняется.
 
Зачем используется функция hardwareHash, которая собирает данные компьтера? Как то связана с генерацией.
Сказать спасибо Ответить Цитировать

ProxyMaster


Novice
# | Сообщение добавлено 19.01.2013 02:00:41
Прошу прощения что долго не отвечал. Да функция hardwareHash генерирует md5 хеш. Я так думаю что это отдельный для каждого пк, уникальный айди как бы.  На данный момент пытаюсь исследовать папу модулей. Это как оказалось обычные *.dll. У меня вызывает надежду найденное (в некоторых довольно часто "password").
 
От идеи добраться до алгоритма генерации пароля я не откажусь видимо, уж больно захватывающе.
Про подбор SN пока можно забыть ну или отложить, я думаю алгоритм генерации пароля спрятан где то в диске).
Я более чем уверен что весь список паролей где то спокойно лежит. Не удивлюсь если в этих библиотеках.
Сказать спасибо Ответить Цитировать

Страницы сообщения: [1] [2]
Только зарегистрированные пользователи могут оставлять сообщения в форуме

Зарегистрироваться *** Авторизоваться

 Последние новости и статьи  Последние сообщения с форумов
  • Самозащита от вируса Petya
  • Google Pixel взломали за 60 секунд
  • В CMS Joomla обнаружена критическая 0-day уязвимость
  • ФБР не смогло взломать протокол шифрования переписки террористов ...
  • Полиция обыскала дом предполагаемого создателя платежной системы ...
  • Google: квантовый ПК будет в 100 млн раз быстрее стандартных чипо...
  • "Лаборатория Касперского" констатирует усиление атак кибергруппир...
  • Microsoft Edge откроет исходные коды ChakraCore
  • Anonymous объявили 11 декабря «днём троллинга» ИГИЛ
  • Миллионы телевизоров, смартфонов и маршрутизаторов оказались уязв...

    Все новости... Все статьи... Прислать новость RSS
  • Интернет / Разное » SOCKS 4/5, HTTPS прокси сервис - proxybuy
  • Разное / Ищу работу » Re: взлом почты на майле
  • Разное / Ищу работу » Re: Взлом емейлов, вконтакте, одноклассники
  • Разное / Ищу работу » Re: Взлом почты mail.ru, yandex.ru, rambler, gmail
  • Разное / Ищу работу » Re: Качественный подбор паролей к почтам. Работаем с 2011 го...
  • Разное / Ищу работу » Re: Взлом ВКонтакте на заказ. Взлом почты на заказ.
  • Программирование / WEB Design » Уроки по JavaScript для начинающих
  • Разное / Ищу работу » Re: Прогон 7ым XRumerоm по форумам, блогам, гостевым. ru и e...
  • Разное / Ищу работу » Re: взлом почты на майле
  • Разное / Предложения работы » Нужен способ заработка, майнинга

    Все форумы... RSS


  • Разместить рекламу
    © HackZone Ltd. 2007-2012. Все права зарегистрированы.
    Перепечатка материалов без согласования и указания источника будет преследоваться по Закону

    О проекте | История проекта | Размещение рекламы | Обратная связь | Правила поведения на портале
    Ya-Cyt службы мониторинга серверов

    #{title}

    #{text}

    x

    #{title}

    #{text}