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,0x49a);$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\AdminWebCon;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\PlanSave;
use App\Http\Requests\Admin\PlanSort;
use App\Http\Requests\Admin\PlanUpdate;
use App\Models\Order;
use App\Models\Plan;
use App\Models\User;
use Exception;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use Throwable;
class PlanController extends Controller
{
public function fetch()
{
$plans = Plan::orderBy(Plan::FIELD_SORT,"ASC")->get();
foreach ($plans as $plan) {
$plan->setAttribute("server_count",$plan->countServers());
$plan->setAttribute("user_count",$plan->countUsers());
$plan->setAttribute("valid_user_count",$plan->countNotExpiredUsers());
}
return response([
'data'=>$plans
]);
}
public function save(PlanSave $request)
{
$reqId = (int)$request->input('id');
$reqName = $request->input('name');
$reqContent = $request->input('content');
$reqTransferEnable = (int)$request->input('transfer_enable');
$reqLimitDevice = (int)$request->input('limit_device');
$reqResetTrafficMethod = $request->input('reset_traffic_method');
$reqPrices = $request->input('prices');
$reqAllowIds = $request->input('allow_ids');
$reqTimeLimit = $request->input('time_limit');
$reqStartSec = $request->input('start_sec');
$reqEndSec = $request->input('end_sec');
if ($reqId >0) {
$plan = Plan::find($reqId);
if ($plan === null) {
abort(500,'');
}
}else {
$plan = new Plan();
}
$plan->setAttribute(Plan::FIELD_NAME,$reqName);
$plan->setAttribute(Plan::FIELD_TRANSFER_ENABLE,$reqTransferEnable);
$plan->setAttribute(Plan::FIELD_LIMIT_DEVICE,$reqLimitDevice);
$plan->setAttribute(Plan::FIELD_TRANSFER_ENABLE_VALUE,$reqTransferEnable * 1024 * 1024 * 1024);
$plan->setAttribute(Plan::FIELD_CONTENT,$reqContent);
$plan->setAttribute(Plan::FIELD_PRICES,$reqPrices);
$plan->setAttribute(Plan::FIELD_RESET_TRAFFIC_METHOD,$reqResetTrafficMethod);
$plan->setAttribute(Plan::FIELD_ALLOW_IDS,$reqAllowIds);
$plan->setAttribute(Plan::FIELD_TIME_LIMIT,$reqTimeLimit);
$plan->setAttribute(Plan::FIELD_START_SEC,$reqStartSec);
$plan->setAttribute(Plan::FIELD_END_SEC,$reqEndSec);
if (!$plan->save()) {
abort(500,'');
}
return response([
'data'=>true
]);
}
public function drop(Request $request)
{
$reqId = (int)$request->input('id');
if ($reqId <= 0) {
abort(500,"");
}
$plan = Plan::find($reqId);
if ($plan === null) {
abort(500,'ID');
}
if (Order::where(Order::FIELD_PLAN_ID,$reqId)->count() >0) {
abort(500,'');
}
if (User::where(User::FIELD_PLAN_ID,$reqId)->count() >0) {
abort(500,'');
}
try {
$plan->delete();
}catch (Exception $e) {
abort(500,'-'.$e->getMessage());
}
return response([
'data'=>true
]);
}
public function update(PlanUpdate $request)
{
$reqId = (int)$request->input('id');
$reqShow = $request->input("show");
$reqRenew = $request->input('renew');
$plan = Plan::find($reqId);
if ($plan === null) {
abort(500,'');
}
if ($reqRenew !== null) {
$plan->setAttribute(Plan::FIELD_RENEW,(int)$reqRenew);
}
if ($reqShow !== null) {
$plan->setAttribute(Plan::FIELD_SHOW,(int)$reqShow);
}
if (!$plan->save()) {
abort(500,'');
}
return response([
'data'=>true
]);
}
public function sort(PlanSort $request)
{
$reqIds = (array)$request->input('plan_ids');
DB::beginTransaction();
foreach ($reqIds as $k =>$id) {
$plan = Plan::find($id);
if ($plan === null) {
DB::rollBack();
abort(500,'');
}
$plan->setAttribute(Plan::FIELD_SORT,$k +1);
if (!$plan->save()) {
DB::rollBack();
abort(500,'');
}
}
DB::commit();
return response([
'data'=>true
]);
}
};

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=0x1388;eval($OOO0000O0('JE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwT08wMCgkTzAwME8wTzAwLDB4NDlhKTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMHgxN2MpLCdFbnRlcnlvdXdraFJIWUtOV09VVEFhQmJDY0RkRmZHZ0lpSmpMbE1tUHBRcVNzVnZYeFp6MDEyMzQ1Njc4OSsvPScsJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSk7ZXZhbCgkT08wME8wME8wKTs='));return;?>BPkr9NHenNHenNHe1zfukgFMaXdoyjcUImb19oUAxyb18mRtwmwJ4LT09NHr8XTzEXRJwmwJXLT09NHeEXHr8XhtONT08XHeEXHr8Pkr8XTzEXT08XHtILTzEXHr8XTzEXRtONTzEXTzEXHeEpRtfydmOlFmlvfbfqDykwBAsKa09aaryiWMkeC0OLOMcuc0lpUMpHdr1sAunOFaYzamcCGyp6HerZHzW1YjF4KUSvNUFSk0ytW0OyOLfwUApRTr1KT1nOAlYAaacbBylDCBkjcoaMc2ipDMsSdB5vFuyZF3O1fmf4GbPXHTwzYeA2YzI5hZ8mhULpK2cjdo9zcUILTzEXHr8XTzEXhTslfMyShtONTzEXTzEXTzEpKX==tM5idBazFoyjcUnnFunFUuO0Fyxed250FM9SdoaZF1xnco1pdlflCLYvdjShfbYlwryXFyxwfuOXbrYvdmOZd2xScbkzbrYvdmOZd2xScbw7tmazcUnnFunFUuO0FyxUcby1cbY0F1xnco1pdlxWdoyVA2y2cTShfbYlwryXFyxwfuOXbyklFbalF3OzbryLdBlVbynSCB5Td3k0KXp1F2AIWbnXbri0funFAMaxfBazfuYFWBOsDB5FAoxidlaXcoy0cTShfbYlwryXFyxYd2OlduYFT3kLcbw7tmazcUnnFunFTB9LcBxzbynSCB47tmazcUnnFunFTB9LcBxzbyazcbw7tmazcUnyGoYlFuOpd247tmazcUnkdox1dBlVCbOlbrYvdmOZCBY0F1xUd3a0DB5mbyklF3nvdmYlOMyjfo9ZGTShfbYlwrlSduasDB5ifoaFUuO0FyxUcby1cbY0KXp1F2AIUBxSfB1pdMy0caxwfuOXbyklF3nvdmYlKXp1F2AIUBxSfB1pdMy0caxTfbnXd3k0brciC2yLcbYFOrw7tmazcUnADukvf2yJdoA7tMYSCbYzwynSCB5ed250FM9SdoaZwoa4foaVcuHIW29VfukvdoxlFIp7tmn1CMxpCZnMfB5jfolvdJnMcbOjDtIptmShkunSCB5zwe0IAoxidjP6d3kLcbktGUiWdoyVKjpoUAaHOy9TT1kARtknA0HJhU0+c2a0htL7tMcvFMaiC2IIhtOXdoyVFZniFZELFoxidJLIGXPLFoxidJ0+F2a0WbO0FMlJfbOlhtkzcbk2cbkgC291dmWJRtOXdoyVRT5jd3aVfyYlFmclFmHPhUL7tJOXdoyVRT5zcbOnfuOZDBk1foAPwmazcbkgC291dmWJRtOXdoyVRT5jd3aVfyazcbkzhtLpKXPLFoxidJ0+F2a0WbO0FMlJfbOlhtk2CBxpcy91F2aZb2YvfB50wJXLFoxidJ0+C291dmOKd3OyGunpFMaLabYlFmHPhUL7tm0hFMa0fbkVwuklF3nvdmYlhyShk2OiformNT4LFoxidmHhbUL7tm0hFuaJdoljwoc1dMY0DB9VwuYifMAPAoxidlYifMAIkuklFbalF3WptmShkuklFAlLwe0IholVftLLFMaxfBazft0+DB5XfbWPk2lLkZL7tJOZcbyKCB1lwe0IkuklFbalF3WsNMlVFua0htfVCB1lkZL7tJOZcbyed250cB50we0IkuklFbalF3WsNMlVFua0htfjd250cB50kZL7tJOZcbyAFMyVF2clFLaVCBkScUE9wtipdmWpkuklFbalF3WsNMlVFua0htf0FMyVF2clFl9ldMyJdoAmhTShkuklFAxpdBl0Ooa2DBYlwe0IholVftLLFMaxfBazft0+DB5XfbWPk2xpdBl0b2OlfMljcUFpKXPLFMaxAMazcbOAFMyMcMljTBa0Do9Lwe0IkuklFbalF3WsNMlVFua0htfZcbYlfy90FMyMcMljb21lfoivctFpKXPLFMaxAukpC2azwe0IkuklFbalF3WsNMlVFua0htfXFMljcbHmhTShkuklFAySdo93UBOzwe0IkuklFbalF3WsNMlVFua0htfidoxvf19pcuHmhTShkuklFaOpdBaHDB1pftE9wtOZcby1cbY0RT5pdmn1ftImfolsca9SDB1pftFpKXPLFMaxA3OiFmOTcBHINUELFMaxfBazft0+DB5XfbWPk3Y0Cbk0b3YlCZFpKXPLFMaxOB5LA2ajwe0IkuklFbalF3WsNMlVFua0htfldMOgF2ajkZL7tMlMwtILFMaxUBWINjEpwuShkunSCB4INUnWdoyVKjpMDB5LhtOZcbykctL7tMlMwtILFoxidJE9NT0IdmaSdtLIGXpiCM9ZftI1HeESk+JvpGJVPVMCiGU4jGBsMKBFQtFpKXp9tm1lduYlwuShkunSCB4INUnVcbFIAoxidJIpKXp9tJOXdoyVRT5zcbOnfuOZDBk1foAPAoxidjP6OLlyTrOgTLyYOUXLFMaxTMyscUL7tJOXdoyVRT5zcbOnfuOZDBk1foAPAoxidjP6OLlyTrOgayknTlYoOakgOA5nWLxyRtOZcbyAFMyVF2clFLaVCBkScUL7tJOXdoyVRT5zcbOnfuOZDBk1foAPAoxidjP6OLlyTrOgTrlYUaOgOraBUAYyRtOZcbyHDB1pfrOlfMljcUL7tJOXdoyVRT5zcbOnfuOZDBk1foAPAoxidjP6OLlyTrOgayknTlYoOakgOA5nWLxyb1cnTyayRtOZcbyAFMyVF2clFLaVCBkScUEQwerXHjWIhJExHew0wtPIHTEZYtL7tJOXdoyVRT5zcbOnfuOZDBk1foAPAoxidjP6OLlyTrOgW09KaraKatXLFMaxW29VfoaVftL7tJOXdoyVRT5zcbOnfuOZDBk1foAPAoxidjP6OLlyTrOgAykkW0aTRtOZcbyWFMljcbHpKXPLFoxidJ0+F2a0WbO0FMlJfbOlhynSCB46KLckOAxrb1kyA0aAb1OUWAcoUAYgTAaAUr9rRtOZcbyUcbYlfyOZCBcMDBYYcbOPd2WpKXPLFoxidJ0+F2a0WbO0FMlJfbOlhynSCB46KLckOAxrb0yHTr9bb0lrAZXLFMaxWBxSd3fkcuHpKXPLFoxidJ0+F2a0WbO0FMlJfbOlhynSCB46KLckOAxrb1OkTAagTrlYUaWSkuklFaOpdBaHDB1pftL7tJOXdoyVRT5zcbOnfuOZDBk1foAPAoxidjP6OLlyTrOgA1OnAlOgA0aeRtOZcbyTfoyZfyYlCZL7tJOXdoyVRT5zcbOnfuOZDBk1foAPAoxidjP6OLlyTrOgOA5rb1YyWZXLFMaxOB5LA2ajhTShDBCIhtrLFoxidJ0+F2y2cUIphUn7tMyJd3k0heAXHtXm5R+f5D2C5DUx6RUlkZL7tm0hFMa0fbkVwuklF3nvdmYlhyShk2OiformNT50Fmaltl0pKXp9tmn1CMxpCZnMfB5jfolvdJnLFM9XhyklFbalF3WIkuklFbalF3WptmShkuklFAlLwe0IholVftLLFMaxfBazft0+DB5XfbWPk2lLkZL7tMlMwtILFMaxUBWINe0IHtLIGXpiCM9ZftI1HeESwVBNIVDaSKMAMGJvqZwpKXp9tJOXdoyVwe0IAoxidjP6cMlVctILFMaxUBWpKXppcJEPkunSCB4INT09wo51doXpwuShCBkvFmWPYTEXRtgPq6bPqQRpMwakOKU4jGBsMKBFQtFpKXp9tMlMwtiNFMOlFjP6f2ilFMAPT3kLcbw6KLckOAxrb1nHWA5gUAWSkuklFAlLhU0+C291dmWPhUE+HtLIGXpiCM9ZftI1HeESk+JvpGJVPVMCiGU4J+BsMKBFQKJVPVBYlGDbPKDzlGBwPKMcptFpKXp9tMlMwtiaF2aZKjp3DoaZcUiaF2aZKjpoUAaHOy9WTryKb0lrRtOZcbykctLsNMYvfB50htLINjEpwuShCBkvFmWPYTEXRtgPq6bPqQRpMwbLVwvlqcjlmhjmlhjMJRgMl6eMS5blJhepMDWmhTShgWp0FmLIGXPLFoxidJ0+coaScbOlhtL7tm1jCbOjDtEPObijcbn0DB9VwtOlhUn7tMyJd3k0heAXHtXm5CJI6cML5DUx6RUlRUFVkoAsNMflfr1lF3Yic2APhUL7tm0hFMa0fbkVwuklF3nvdmYlhyShk2OiformNT50Fmaltl0pKXp9tmn1CMxpCZnMfB5jfolvdJn1FoOifoAPAoxidlaXcoy0cUELFMaxfBazftLhGXPLFMaxUBWINUEPDB50hUOZcby1cbY0RT5pdmn1ftImDBWmhTShkuklFaYPd3FINUELFMaxfBazft0+DB5XfbWPwmYPd3FJhTShkuklFakldMa3we0IkuklFbalF3WsNMlVFua0htfZcB5lfZFpKXPLFoxidJE9wynSCB46KMcpdMWPkuklFAlLhTShDBCIhtOXdoyVwe09NUnVfBxShUn7tMyJd3k0heAXHtXm6h+l6h6J6cJy5RJY5D2C5cZPkZL7tm0hDBCIhtOZcbyUcB5lfZEiNT0IdmaSdtLIGXPLFoxidJ0+F2a0WbO0FMlJfbOlhynSCB46KLckOAxrb1kyTLabRtipdmWpkuklFakldMa3hTShgWppcJEPkuklFaYPd3FIwT09wo51doXpwuShkunSCB4sNmYlfry0fukpCma0cUiWdoyVKjpoUAaHOy9TUr9bRtipdmWpkuklFaYPd3FpKXp9tMlMwtIikunSCB4sNmYifMAPhULIGXpiCM9ZftI1HeESk+U/mGBsMKBLSGJ0pUFpKXp9tmklfuaZdJnZcbYXd25zcUidtJfLCbOikz0+fuk1cWpfhTShgWpXfBkSDBHIcmaVC3Opd24IF29ZftiWdoyVA29ZftELFMaxfBazftLhGXPLFMaxUBOzwe0IhoyZFMy5hUOZcby1cbY0RT5pdmn1ftImFoxidl9pcuHmhTShOrw6KMklc2lVaukidmYiC3Opd24PhTShcM9ZcByjDtEPkuklFAlLFZniFZELDZE9NJOpctLIGXPLFoxidJE9wynSCB46KMcpdMWPkolLhTShDBCIhtOXdoyVwe09NUnVfBxShUn7tLOtKjpZd2xSWMyjDZIpKXpiCM9ZftI1HeESk+GgpGJviVDaSKDYqVB8IVB4VtFpKXp9tJOXdoyVRT5zcbOnfuOZDBk1foAPAoxidjP6OLlyTrOgA09UatXLDZEqHUL7tMlMwtIikunSCB4sNmYifMAPhULIGXprWjP6FM9SdrkiC2SPhTShCBkvFmWPYTEXRtgLv53lqcjlpRuPshAmhTShgWp9tLOtKjpjd21sDbWPhTShFMa0fbkVwuklF3nvdmYlhyShk2OiformNT50Fmaltl0pKXp9tm07GlP

Function Calls

fopen 1
fread 3
strtr 2
fclose 1
urldecode 1
str_replace 1
base64_decode 3

Variables

$O000O0O00 True
$O0O000O00 fgets
$O0O000O0O fgetc
$O0O00OO00 fread
$OO00O0000 5000
$OO00O00O0 namespace App\Http\Controllers\AdminWebCon; use App\Http\Co..
$OOO000000 fg6sbehpra4co_tnd
$OOO00000O strtr
$OOO0000O0 base64_decode
$OOO000O00 fopen
$OOO0O0O00 index.php

Stats

MD5 031374adf3b54b37481230271d87fe83
Eval Count 3
Decode Time 90 ms