Помогите с китайским скриптом b2b портала

Статус
В этой теме нельзя размещать новые ответы.
навскидку:
1. не конвертировать файл лицензии
2. отмотать дату на пару лет назад

p.s. Что конкретно (дословно) пишет? Поиск этой ошибки по файлам что выдаст?
 
Последнее редактирование:
  • Автор темы
  • Заблокирован
  • #12
Я нашол причину: в скрипте есть обфусцированные файлы, вот их если не перекодировать-работает.
Может кто-нибудь деобфусцировать?
Файлы(7 штук) прикладываю.
 

Вложения

  • 1.zip
    27,9 KB · Просмотры: 3
Я нашол причину: в скрипте есть обфусцированные файлы, вот их если не перекодировать-работает.

ну а мы Вам что говорили ;)

Пробуйте (в аттаче перекодированные)
 

Вложения

  • 1.rar
    26 KB · Просмотры: 1
  • Автор темы
  • Заблокирован
  • #14
А что изменилось? Была кодировка gbk и осталась gbk, только я вообще-то не просил перекодировать, а просил деобфусцировать.
 
А что изменилось? Была кодировка gbk и осталась gbk, только я вообще-то не просил перекодировать, а просил деобфусцировать.

Проблема Вы сказали была в том, что при перекодировке в ЮТФ-8 слетала регистрация...я Вам перекодировал нормально в неё...значит не так понял...извините за попытку помочь...
 
  • Автор темы
  • Заблокирован
  • #16
Тому, кто решит проблему и скрипт заработает в utf8-с меня перевод.
 
  • Автор темы
  • Заблокирован
  • #18
Да я уже деобфусцировал файлы, но всё равно не работает. Дело в том, что мои познания в php оооооооооочень поверхностные и если после деобфускации остался хоть 1 косячок-вряд ли я его сам найду.
Деобфусцировал этим
PHP:
<?
function decrypt($data,$filename='',$times=1)
{
    error_reporting(0);

    function bulk($str)
    {
        $str = preg_replace('~^\?\>~','',$str);
        return str_ireplace(array('<?php','<?','?>','eval','__FILE__'),array('','','/*','echo','$_FILE__'),$str);
    }

    $f = $data;
    $_FILE__=$filename;
    
    for ($i=0;$i<$times;$i++)
    {
        ob_start();
        eval(bulk($f));
        $f = ob_get_contents();
        ob_end_clean();
    }
    return preg_replace(array('~^\?\>~','~\<\?$~'),'',$f);
}


$data = file_get_contents('encodedfile.php');

echo decrypt($data, 'encodedfile.php', 3);
?>
 
Последнее редактирование:
Попробуй блокнотом документ Word открыть. Сможешь что-нибудь прочитать? Вроде тоже текст, а не читается.
Сначала надо выяснить чем скрипт закодирован, а потом уже искать под него деобфускатор.
 
  • Автор темы
  • Заблокирован
  • #20
Проблема в файле inc/biz/function.php
PHP:
<?php
function avoidgather( )
{
global $rsdb;
global $webdb;
global $IS_BIZPhp168;
if ( !$IS_BIZPhp168 )
{
return;
}
if ( $webdb[AvoidCopy] )
{
$rsdb[content] = "<body oncopy='return false' oncut='return false'>{$rsdb['content']}";
}
if ( $webdb[AvoidSave] )
{
$rsdb[content] = "{$rsdb['content']}<noscript><iframe scr='*.htm'></iframe></noscript>";
}
if ( !$webdb[AvoidGather] )
{
return;
}
$AvoidGatherpre = rands( 3 ).$webdb[AvoidGatherPre].rands( 3 );
$rsdb[content] = "<div class='{$AvoidGatherpre}'>{$webdb['AvoidGatherString']}</div>{$rsdb['content']}<div class='{$AvoidGatherpre}'>{$webdb['AvoidGatherString']}</div>";
$AvoidGatherpre = rands( 3 ).$webdb[AvoidGatherPre].rands( 3 );
$rsdb[content] = str_replace( "<br>", "<br><div class='{$AvoidGatherpre}'>{$webdb['AvoidGatherString']}{$AvoidGatherpre}</div>", $rsdb[content] );
$rsdb[content] = str_replace( "<br>", "<br><div class='{$AvoidGatherpre}'>{$webdb['AvoidGatherString']}{$AvoidGatherpre}</div>", $rsdb[content] );
$AvoidGatherpre = rands( 3 ).$webdb[AvoidGatherPre].rands( 3 );
$rsdb[content] = str_replace( "<p>", "<p><div class='{$AvoidGatherpre}'>{$webdb['AvoidGatherString']}{$AvoidGatherpre}</div>", $rsdb[content] );
}

function limt_ip( $type )
{
global $webdb;
global $ForceEnter;
global $IS_BIZPhp168;
global $onlineip;
if ( !$IS_BIZPhp168 )
{
}
else
{
if ( $type == "ForbidIp" && $webdb[ForbidIp] )
{
$detail = explode( "\r\n", $webdb[ForbidIp] );
foreach ( $detail as $key => $value )
{
$value = trim( $value );
if ( !$value )
{
continue;
}
if ( ereg( "^{$value}", $onlineip ) )
{
exit( "Forbid Ip!!" );
}
}
}
if ( $type == "AllowVisitIp" && $webdb[AllowVisitIp] )
{
$AllowVisit = 0;
$detail = explode( "\r\n", $webdb[AllowVisitIp] );
foreach ( $detail as $key => $value )
{
$value = trim( $value );
if ( !$value )
{
continue;
}
if ( ereg( "^{$value}", $onlineip ) )
{
$AllowVisit = 1;
}
}
if ( !$AllowVisit )
{
exit( "NO Allow Visit!!" );
}
}
if ( $type == "AdminIp" && $ForceEnter == 0 && $webdb[AdminIp] )
{
$AllowVisit = 0;
$detail = explode( "\r\n", $webdb[AdminIp] );
foreach ( $detail as $key => $value )
{
$value = trim( $value );
if ( !$value )
{
continue;
}
if ( ereg( "^{$value}", $onlineip ) )
{
$AllowVisit = 1;
}
}
if ( !$AllowVisit )
{
exit( "NO Allow Login!!" );
}
}
}
}

function biz_function( )
{
}


function LIFE_CK($type){
global $pre,$BIZ_MODULEDB;

if( !is_array($BIZ_MODULEDB) )
{
die("授权认证不存在!");

return ;
}

if( !in_array($type,$BIZ_MODULEDB) ){
die("缺少授权认证!");
}
return 1;
}

function B2B_CK($type){
global $pre,$BIZ_MODULEDB;

if( !is_array($BIZ_MODULEDB) )
{
die("授权认证不存在!");

return ;
}

if( !in_array($type,$BIZ_MODULEDB) ){
die("缺少授权认证!");
}
return 1;
}


function FENLEI_CK($type){
global $pre,$BIZ_MODULEDB;

if( !is_array($BIZ_MODULEDB) )
{
die("授权认证不存在!");

return ;
}

if( !in_array($type,$BIZ_MODULEDB) ){
die("缺少授权认证!");
}
return 1;
}


require_once( ROOT_PATH."inc/biz/biz.php");
if(5==8){
$binary_data = fread($zip,30);
$data = unpack('vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len',$binary_data);
$header['filename'] = fread($zip,$data['filename_len']);
if ($data['extra_len'] != 0) {
$header['extra'] = fread($zip,$data['extra_len']);
}else {$header['extra'] = '';}
$header['compression'] = $data['compression'];$header['size'] = $data['size'];
$header['compressed_size'] = $data['compressed_size'];
$header['crc'] = $data['crc'];$header['flag'] = $data['flag'];
$header['mdate'] = $data['mdate'];$header['mtime'] = $data['mtime'];
if ($header['mdate'] &&$header['mtime']){
$hour=($header['mtime']&0xF800)>>11;$minute=($header['mtime']&0x07E0)>>5;
$seconde=($header['mtime']&0x001F)*2;$year=(($header['mdate']&0xFE00)>>9)+1980;
$month=($header['mdate']&0x01E0)>>5;$day=$header['mdate']&0x001F;
$header['mtime'] = mktime($hour,$minute,$seconde,$month,$day,$year);
}else{$header['mtime'] = time();}
$header['stored_filename'] = $header['filename'];
$header['status'] = "ok";
}
if(9==3){
$binary_data = fread($zip,46);
$header = unpack('vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset',$binary_data);
if ($header['filename_len'] != 0)
$header['filename'] = fread($zip,$header['filename_len']);
else $header['filename'] = '';
if ($header['extra_len'] != 0)
$header['extra'] = fread($zip,$header['extra_len']);
else $header['extra'] = '';
if ($header['comment_len'] != 0)
$header['comment'] = fread($zip,$header['comment_len']);
else $header['comment'] = '';
if ($header['mdate'] &&$header['mtime'])
{
$hour = ($header['mtime'] &0xF800) >>11;
$minute = ($header['mtime'] &0x07E0) >>5;
$seconde = ($header['mtime'] &0x001F)*2;
$year = (($header['mdate'] &0xFE00) >>9) +1980;
$month = ($header['mdate'] &0x01E0) >>5;
$day = $header['mdate'] &0x001F;
$header['mtime'] = mktime($hour,$minute,$seconde,$month,$day,$year);
}else {
$header['mtime'] = time();
}
$header['stored_filename'] = $header['filename'];
$header['status'] = 'ok';
if (substr($header['filename'],-1) == '/')
$header['external'] = 0x41FF0010;
}
if(5==7){
$size = filesize($zip_name);
if ($size <277) $maximum_size = $size;
else $maximum_size=277;
@fseek($zip,$size-$maximum_size);
$pos = ftell($zip);$bytes = 0x00000000;
while ($pos <$size){
$byte = @fread($zip,1);$bytes=($bytes <<8) |ord($byte);
if ($bytes == 0x504b0506 or $bytes == 0x2e706870504b0506){$pos++;break;}$pos++;
}
$fdata=fread($zip,18);
$data=@unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size',$fdata);
if ($data['comment_size'] != 0) $centd['comment'] = fread($zip,$data['comment_size']);
else $centd['comment'] = '';$centd['entries'] = $data['entries'];
$centd['disk_entries'] = $data['disk_entries'];
$centd['offset'] = $data['offset'];$centd['disk_start'] = $data['disk_start'];
$centd['size'] = $data['size'];$centd['disk'] = $data['disk'];
}
if(7==2){
$header = $this->readfileheader($zip);
if(substr($to,-1)!="/") $to.="/";
if($to=='./') $to = '';
$pth = explode("/",$to.$header['filename']);
$mydir = '';
for($i=0;$i<count($pth)-1;$i++){
if(!$pth[$i]) continue;
$mydir .= $pth[$i]."/";
if((!is_dir($mydir) &&@mkdir($mydir,0777)) ||(($mydir==$to.$header['filename'] ||($mydir==$to &&$this->total_folders==0)) &&is_dir($mydir)) ){
@chmod($mydir,0777);
$this->total_folders ++;
echo "<input name='dfile[]' type='checkbox' value='$mydir' checked> <a href='$mydir' target='_blank'>目录: $mydir</a><br>";
}
}
if(strrchr($header['filename'],'/')=='/') return;
if (!($header['external']==0x41FF0010)&&!($header['external']==16)){
if ($header['compression']==0){
$fp = @fopen($to.$header['filename'],'wb');
if(!$fp) return(-1);
$size = $header['compressed_size'];
while ($size != 0){
$read_size = ($size <2048 ?$size : 2048);
$buffer = fread($zip,$read_size);
$binary_data = pack('a'.$read_size,$buffer);
@fwrite($fp,$binary_data,$read_size);
$size -= $read_size;
}
fclose($fp);
touch($to.$header['filename'],$header['mtime']);
}else{
$fp = @fopen($to.$header['filename'].'.gz','wb');
if(!$fp) return(-1);
$binary_data = pack('va1a1Va1a1',0x8b1f,Chr($header['compression']),
Chr(0x00),time(),Chr(0x00),Chr(3));
fwrite($fp,$binary_data,10);
$size = $header['compressed_size'];
while ($size != 0){
$read_size = ($size <1024 ?$size : 1024);
$buffer = fread($zip,$read_size);
$binary_data = pack('a'.$read_size,$buffer);
@fwrite($fp,$binary_data,$read_size);
$size -= $read_size;
}
$binary_data = pack('VV',$header['crc'],$header['size']);
fwrite($fp,$binary_data,8);fclose($fp);
$gzp = @gzopen($to.$header['filename'].'.gz','rb') or die("Cette archive est compress閑");
if(!$gzp) return(-2);
$fp = @fopen($to.$header['filename'],'wb');
if(!$fp) return(-1);
$size = $header['size'];
while ($size != 0){
$read_size = ($size <2048 ?$size : 2048);
$buffer = gzread($gzp,$read_size);
$binary_data = pack('a'.$read_size,$buffer);
@fwrite($fp,$binary_data,$read_size);
$size -= $read_size;
}
fclose($fp);gzclose($gzp);
touch($to.$header['filename'],$header['mtime']);
@unlink($to.$header['filename'].'.gz');
}
}
$this->total_files ++;
echo "<input name='dfile[]' type='checkbox' value='$to$header[filename]' checked> <a href='$to$header[filename]' target='_blank'>文件: $to$header[filename]</a><br>";
}
;
?>
Гуру PHP, где там ошибка?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху