Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /* Dev By Hoang Skyht 18-06-2024 */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72..
Decoded Output download
$O000O0O00=$OOO000O00($OOO0O0O00,'rb');$O0O00OO00($O000O0O00,0x4a6);$OO00O00O0=$OOO0000O0($OOO00000O($O0O00OO00($O000O0O00,0x17c),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));eval($OO00O00O0);$OO00O00O0=str_replace('__FILE__',"'".$OOO0O0O00."'",$OOO0000O0($OOO00000O($O0O00OO00($O000O0O00,$OO00O0000),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')));fclose($O000O0O00);eval($OO00O00O0);
namespace App\Http\Controllers\Admin\Stat;
use App\Console\Commands\RecordOnlineUser;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\UserRank;
use App\Models\TrafficServerLog;
use App\Models\TrafficUserLog;
use App\Models\User;
use App\Utils\CacheKey;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redis;
class UserController extends Controller
{
public function rank(UserRank $request)
{
$reqSort = $request->get('sort','total');
$reqDate = $request->get('date') ??date('Y-m-d',time());
$timestamp = strtotime($reqDate);
$statistics = TrafficUserLog::select([
TrafficUserLog::FIELD_USER_ID,
TrafficUserLog::FIELD_N,
TrafficUserLog::FIELD_U,
TrafficUserLog::FIELD_D,
DB::raw('(u+d) as total')
])
->where(TrafficServerLog::FIELD_LOG_AT,'=',$timestamp)
->limit(10)
->orderByRaw("CAST($reqSort as UNSIGNED) DESC")
->get();
$statsData = [];
if ($statistics) {
$userIds = $statistics->map(function ($item) {
return $item->getAttribute(TrafficUserLog::FIELD_USER_ID);
})->unique()->values()->all();
$users = User::whereIn(User::FIELD_ID,$userIds)->get();
foreach ($statistics as $stats) {
foreach ($users as $user) {
if ($user->getKey() === $stats->getAttribute(TrafficUserLog::FIELD_USER_ID)) {
$stats[User::FIELD_EMAIL] = $user->getAttribute(User::FIELD_EMAIL);
}
}
}
$statsData = $statistics->toArray();
}
return response([
'data'=>$statsData
]);
}
public function latestHourOnline()
{
$cacheKey = CacheKey::get(CacheKey::STATS_USER_ONLINE,RecordOnlineUser::MAX_COUNT);
$cacheKeyLen = Redis::llen($cacheKey);
$start = max(0,$cacheKeyLen -60);
$end = $cacheKeyLen -1;
$onlineCacheData = (array)Redis::lrange($cacheKey,$start,$end);
$data = collect($onlineCacheData)->map(function ($item,$key) {
$data = json_decode($item,true);
$data['time'] = date("H:i",$data['time']);
return $data;
})->toArray();
return response([
'data'=>$data
]);
}
public function latestDayOnline()
{
$cacheKey = CacheKey::get(CacheKey::STATS_USER_ONLINE,RecordOnlineUser::MAX_COUNT);
$cacheKeyLen = Redis::llen($cacheKey);
$onlineCacheData = $cacheKeyLen >= 288 ?(array)Redis::lrange($cacheKey,$cacheKeyLen -288,-1) : (array)Redis::lrange($cacheKey,0,$cacheKeyLen -1);
$data = collect($onlineCacheData)->map(function ($item,$key) {
$data = json_decode($item,true);
$data['time'] = date("H:i",$data['time']);
return $data;
})->toArray();
return response([
'data'=>$data
]);
}
public function latestWeekOnline()
{
$cacheKey = CacheKey::get(CacheKey::STATS_USER_ONLINE,RecordOnlineUser::MAX_COUNT);
$cacheKeyLen = Redis::llen($cacheKey);
$onlineCacheData = $cacheKeyLen >= 2016 ?(array)Redis::lrange($cacheKey,$cacheKeyLen -2016,-1) : (array)Redis::lrange($cacheKey,0,$cacheKeyLen -1);
$data = collect($onlineCacheData)->map(function ($item,$key) {
$data = json_decode($item,true);
$data['time'] = date("m-d H:i",$data['time']);
return $data;
})->toArray();
return response([
'data'=>$data
]);
}
};
Did this file decode correctly?
Original Code
<?php /* Dev By Hoang Skyht 18-06-2024 */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$O0O000O0O=$O0O000O00.$OOO000000{11};$O0O000O00=$O0O000O00.$OOO000000{3};$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__FILE__;$OO00O0000=0xfcc;eval($OOO0000O0('JE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwT08wMCgkTzAwME8wTzAwLDB4NGE2KTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMHgxN2MpLCdFbnRlcnlvdXdraFJIWUtOV09VVEFhQmJDY0RkRmZHZ0lpSmpMbE1tUHBRcVNzVnZYeFp6MDEyMzQ1Njc4OSsvPScsJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSk7ZXZhbCgkT08wME8wME8wKTs='));return;?>sJ]PgMS][~i\W[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_@A
Function Calls
fopen | 1 |
fread | 3 |
strtr | 2 |
fclose | 1 |
urldecode | 1 |
str_replace | 1 |
base64_decode | 3 |
Stats
MD5 | d922d6e4e0d94f1be5db922437f34fbe |
Eval Count | 3 |
Decode Time | 93 ms |