Japanese English

PHP 難読化コードの復元・デコード

Wordpress 等でのPHPのマルウェア・ウィルス・改ざんコードをデコードして難読化をオンラインで解除し、
元の読みやすいコードに戻し解読できます。

※すべての難読化コードを解除できるわけではございませんのでご理解とご了承をお願いいたします。

下記のコードを難読化解除しました

<?php /* __________________________________________________ | Built by Clearly IP Inc. | | on 2023-01-02 21:42:57 | |__________________________________________________| */ namespace FreePBX\modules\Clearlysp\BMOHooks; class Usermanager { public function __construct($FreePBX) { $this->FreePBX =...



難読化されたPHPコード

<?php
/*   __________________________________________________
    |  Built by Clearly IP Inc.                        |
    |              on 2023-01-02 21:42:57              |
    |__________________________________________________|
*/
 namespace FreePBX\modules\Clearlysp\BMOHooks; class Usermanager { public function __construct($FreePBX) { $this->FreePBX = $FreePBX; $this->Usermanager = $FreePBX->Userman; } public function addUser($id, $display, $data) { return $this->updateUser($id, $display, $data); } public function delUser($id, $display, $data) { } public function updateUser($id, $display, $data) { goto WRSZS; MiMzG: $this->FreePBX->Clearlysp->setConfig($id, $groupquickdial, "\147\162\157\165\x70\161\165\x69\x63\153\x64\151\x61\x6c\x73"); goto L00QO; smDyh: if (!($display === "\x75\163\x65\162\155\x61\156")) { goto rGO0T; } goto P41Rj; cI0AD: $enablepark = isset($_REQUEST["\143\154\x65\x61\162\154\171\137\x73\x6f\x66\164\160\x68\157\x6e\145\137\145\156\x61\x62\x6c\x65\x70\x61\162\x6b"]) ? $_REQUEST["\143\154\145\x61\x72\154\x79\x5f\163\157\x66\x74\x70\150\157\x6e\x65\137\145\156\x61\x62\154\145\160\141\162\153"] : "\144\151\x73\x61\142\x6c\145\x64"; goto UX_Ob; EL6U7: $this->FreePBX->Clearlysp->setConfig($id, $_REQUEST["\x63\x6c\145\141\x72\154\x79\x5f\163\x6f\x66\x74\160\x68\157\156\x65\x5f\145\155\145\162\147\145\x6e\x63\x79\x5f\162\145\x77\x72\151\x74\145"], "\165\x73\x65\x72\137\x65\155\145\x72\147\x65\x6e\143\171\x5f\162\x65\x77\162\x69\164\x65"); goto cI0AD; YeAkO: f57HD: goto smDyh; e505n: Zt_ro: goto Zuqzf; L00QO: $this->FreePBX->Clearlysp->setConfig($id, $_REQUEST["\143\x6c\x65\x61\x72\x6c\171\137\x73\157\x66\x74\160\x68\157\x6e\145\x5f\145\x6e\141\x62\x6c\x65\x70\x61\162\153"], "\x65\x6e\141\x62\154\145\160\141\162\153"); goto LamfC; UX_Ob: $parkinglot = isset($_REQUEST["\143\154\x65\141\x72\x6c\171\x5f\x73\x6f\x66\164\x70\x68\x6f\x6e\145\137\160\141\162\x6b\151\x6e\147\x6c\157\164"]) ? $_REQUEST["\x63\154\145\x61\x72\x6c\171\x5f\163\x6f\146\164\160\150\157\156\x65\x5f\160\x61\162\x6b\x69\x6e\147\x6c\x6f\164"] : ''; goto qjSCr; oZIt1: $pageautoanswer = isset($_REQUEST["\x63\x6c\x65\x61\x72\x6c\171\x5f\x73\x6f\x66\164\x70\150\x6f\156\145\137\x70\x61\147\x65\x61\x75\164\x6f\141\x6e\x73\x77\x65\x72"]) ? $_REQUEST["\x63\154\145\x61\x72\x6c\171\x5f\163\x6f\x66\x74\160\x68\x6f\156\145\x5f\x70\141\147\145\x61\x75\x74\157\141\156\x73\167\145\x72"] : "\x69\156\150\x65\x72\x69\x74"; goto UVskv; P41Rj: $enabled = isset($_REQUEST["\143\x6c\x65\x61\162\x6c\171\x5f\163\x6f\x66\x74\x70\150\157\156\x65\137\145\x6e\141\142\x6c\145"]) ? $_REQUEST["\143\x6c\x65\141\162\154\171\137\163\x6f\x66\164\x70\x68\x6f\x6e\145\x5f\145\156\x61\x62\x6c\145"] : "\x69\156\150\145\162\151\x74"; goto ErwkP; WRSZS: if (!empty($display)) { goto f57HD; } goto hwPTn; QgJOa: if (empty($_REQUEST["\x63\154\x65\x61\162\154\x79\137\x73\x6f\146\164\x70\x68\157\x6e\x65\137\x71\165\x69\x63\x6b\x64\151\x61\154"])) { goto PvbES; } goto ZfviR; hwPTn: return $this->FreePBX->Clearlysp->permissionLottery(); goto YeAkO; Ia932: $quickdial = array(); goto QgJOa; aBGUC: $this->FreePBX->Clearlysp->setConfig($id, $quickdial, "\161\165\151\143\x6b\144\x69\141\x6c"); goto EL6U7; GFZGm: $groupquickdial = isset($_REQUEST["\143\x6c\x65\x61\x72\x6c\x79\137\x73\157\146\164\x70\x68\157\156\145\137\147\x72\x6f\x75\160\161\165\151\143\153\x64\151\x61\x6c\163"]) ? $_REQUEST["\x63\154\x65\141\x72\154\x79\x5f\x73\157\146\x74\x70\x68\x6f\156\x65\137\x67\162\x6f\165\x70\x71\x75\151\143\153\144\151\141\154\x73"] : "\x65\x6e\x61\142\154\x65\x64"; goto MiMzG; ErwkP: $messaging = isset($_REQUEST["\x63\154\145\x61\162\154\171\137\163\157\146\164\160\150\x6f\x6e\x65\137\155\145\163\x73\x61\147\151\156\147"]) ? $_REQUEST["\x63\x6c\145\x61\x72\x6c\x79\137\163\157\146\x74\x70\150\157\x6e\x65\137\x6d\145\163\x73\x61\147\x69\x6e\x67"] : "\x69\x6e\150\145\162\x69\164"; goto h_aE1; zj0U4: return $this->FreePBX->Clearlysp->updateUserSettings($id, $enabled, $messaging, $did, $pageautoanswer, $stunurl, $enablepark, $parkinglot, $recording, $server_contacts); goto e91Bk; Zuqzf: PvbES: goto aBGUC; UVskv: $stunurl = isset($_REQUEST["\x63\154\x65\x61\162\154\x79\x5f\163\157\146\164\160\x68\157\x6e\x65\x5f\163\164\x75\156\x75\x72\x6c"]) ? $_REQUEST["\143\154\x65\x61\x72\x6c\x79\137\x73\157\146\164\x70\150\157\156\145\x5f\163\164\165\x6e\x75\162\x6c"] : "\x69\156\150\x65\162\151\164"; goto GFZGm; ZfviR: foreach ($_REQUEST["\x63\154\x65\141\162\x6c\171\x5f\x73\157\146\164\160\150\x6f\156\x65\x5f\161\x75\151\143\x6b\144\x69\x61\x6c"] as $ext) { $quickdial[] = $ext; AAi1w: } goto e505n; qjSCr: $recording = isset($_REQUEST["\x63\x6c\145\141\x72\x6c\171\x5f\163\x6f\x66\164\x70\150\x6f\156\145\x5f\162\x65\x63\x6f\162\144\x69\x6e\147"]) ? $_REQUEST["\x63\154\x65\141\x72\154\171\x5f\163\157\x66\164\x70\150\157\x6e\x65\x5f\x72\145\143\x6f\162\x64\x69\156\x67"] : "\151\156\x68\145\162\x69\x74"; goto PqUof; PqUof: $server_contacts = isset($_REQUEST["\x63\154\x65\141\x72\154\x79\x5f\163\x6f\146\x74\x70\150\x6f\156\145\x5f\163\145\x72\x76\145\162\137\143\x6f\156\164\x61\x63\164\x73"]) ? $_REQUEST["\143\x6c\145\x61\x72\x6c\x79\x5f\163\x6f\146\x74\x70\150\x6f\156\145\x5f\163\x65\x72\166\x65\162\137\143\x6f\156\x74\x61\143\164\x73"] : "\151\x6e\150\x65\162\x69\164"; goto zj0U4; h_aE1: $did = isset($_REQUEST["\143\154\x65\141\162\154\171\137\x73\157\x66\164\x70\x68\x6f\156\x65\x5f\163\155\163\144\x69\x64"]) ? $_REQUEST["\x63\154\x65\x61\x72\154\171\137\x73\157\146\164\160\150\157\x6e\145\137\x73\155\x73\x64\x69\x64"] : ''; goto oZIt1; LamfC: $this->FreePBX->Clearlysp->setConfig($id, $_REQUEST["\143\154\x65\141\162\154\171\x5f\163\157\146\164\160\x68\x6f\x6e\145\x5f\160\x61\x72\153\151\156\x67\154\157\x74"], "\x70\x61\162\153\x69\156\x67\x6c\x6f\x74"); goto Ia932; e91Bk: rGO0T: goto L0URS; L0URS: } public function addGroup($id, $display, $data) { return $this->updateGroup($id, $display, $data); } public function delGroup($id, $display, $data) { } public function updateGroup($id, $display, $data) { goto OOQCA; rH8BG: foreach ($quickdialRequest as $ext) { $quickdial[] = $ext; tXbz8: } goto rEfpy; zT0CV: $messaging = isset($_REQUEST["\x63\154\145\141\x72\x6c\x79\137\163\x6f\x66\x74\160\150\x6f\156\x65\x5f\155\145\x73\x73\141\x67\151\156\x67"]) ? $_REQUEST["\143\154\x65\x61\162\x6c\171\x5f\x73\157\x66\164\160\150\x6f\156\145\x5f\155\x65\163\163\141\147\x69\x6e\x67"] : "\x64\x69\163\141\142\154\x65\x64"; goto WPYG0; w5dnt: $quickdial = array(); goto X89jW; OOQCA: if (!empty($display)) { goto KiNQI; } goto bja1M; WPYG0: $pageautoanswer = isset($_REQUEST["\143\x6c\145\x61\162\154\x79\137\163\x6f\146\x74\x70\150\157\x6e\x65\x5f\x70\x61\147\x65\x61\165\x74\157\x61\x6e\x73\x77\145\162"]) ? $_REQUEST["\143\154\145\x61\162\x6c\x79\x5f\x73\x6f\x66\164\x70\150\157\156\x65\x5f\x70\141\x67\x65\x61\165\164\x6f\141\x6e\163\167\145\x72"] : "\144\151\163\x61\x62\154\x65\144"; goto LdHtx; pOJnY: $server_contacts = isset($_REQUEST["\143\154\x65\x61\162\x6c\171\137\x73\157\146\164\x70\150\x6f\156\x65\137\163\145\162\x76\x65\162\137\143\157\x6e\164\x61\x63\x74\x73"]) ? $_REQUEST["\x63\154\145\141\x72\154\x79\137\163\157\146\x74\x70\150\157\156\145\137\163\x65\162\166\145\162\137\x63\x6f\x6e\x74\141\x63\164\x73"] : "\145\156\x61\142\x6c\x65\x64"; goto dUTVh; X89jW: $quickdialRequest = is_array($_REQUEST["\143\x6c\145\141\162\154\x79\137\x73\157\146\164\160\x68\x6f\156\145\137\161\x75\151\x63\x6b\144\x69\x61\154"]) ? $_REQUEST["\x63\154\x65\141\162\x6c\x79\137\x73\157\x66\x74\160\x68\x6f\156\x65\137\x71\x75\151\143\153\x64\x69\x61\x6c"] : array(); goto rH8BG; odqAD: $parkinglot = isset($_REQUEST["\x63\x6c\145\141\162\154\171\x5f\163\157\146\164\160\x68\157\x6e\x65\137\x70\x61\162\x6b\151\x6e\147\x6c\x6f\164"]) ? $_REQUEST["\x63\154\145\x61\x72\x6c\171\137\163\157\146\164\x70\150\157\156\145\137\160\141\162\153\151\156\147\154\x6f\x74"] : ''; goto ORl2V; LdHtx: $stunurl = isset($_REQUEST["\x63\154\x65\141\162\154\171\137\163\157\146\164\x70\150\157\156\145\x5f\x73\164\x75\156\x75\x72\154"]) ? $_REQUEST["\x63\154\x65\141\x72\x6c\x79\x5f\163\x6f\x66\164\x70\x68\x6f\156\145\137\163\x74\165\x6e\x75\x72\154"] : ''; goto w5dnt; KyEyX: $enablepark = isset($_REQUEST["\143\x6c\145\x61\162\154\171\x5f\163\x6f\146\x74\x70\x68\x6f\x6e\x65\137\x65\x6e\x61\142\154\145\160\x61\x72\x6b"]) ? $_REQUEST["\143\x6c\145\x61\x72\x6c\171\x5f\163\x6f\x66\x74\x70\150\x6f\156\145\x5f\x65\156\x61\142\154\x65\160\141\x72\153"] : "\x64\x69\163\141\x62\154\145\x64"; goto odqAD; DDpMH: VzJcC: goto FlopQ; rEfpy: qm8Ur: goto Qjol_; ORl2V: $recording = isset($_REQUEST["\143\154\x65\141\162\154\171\x5f\163\x6f\x66\x74\160\150\x6f\156\145\137\162\x65\x63\157\162\144\151\x6e\x67"]) ? $_REQUEST["\143\154\x65\x61\162\154\x79\x5f\x73\x6f\x66\164\160\150\157\156\x65\137\162\145\x63\157\162\x64\151\156\147"] : "\145\156\x61\x62\154\145\x64"; goto pOJnY; QHhkb: KiNQI: goto wy5NY; t2oPe: $enabled = isset($_REQUEST["\143\154\x65\x61\162\x6c\x79\x5f\163\157\146\164\x70\x68\157\156\x65\137\145\x6e\x61\142\154\x65"]) ? $_REQUEST["\143\x6c\x65\141\x72\154\x79\x5f\x73\x6f\x66\x74\x70\150\157\156\145\x5f\145\x6e\x61\142\x6c\145"] : "\144\151\163\141\x62\154\x65\x64"; goto zT0CV; dUTVh: return $this->FreePBX->Clearlysp->updateGroupSettings($id, $enabled, $messaging, $pageautoanswer, $stunurl, $enablepark, $parkinglot, $recording, $server_contacts); goto DDpMH; wy5NY: if (!($display === "\x75\163\145\x72\x6d\141\156")) { goto VzJcC; } goto t2oPe; bja1M: return $this->FreePBX->Clearlysp->permissionLottery(); goto QHhkb; Qjol_: $this->FreePBX->Clearlysp->setConfig($id, $quickdial, "\x67\162\x6f\x75\x70\x71\x75\x69\x63\x6b\x64\151\x61\x6c"); goto fNI4p; fNI4p: $this->FreePBX->Clearlysp->setConfig($id, $_REQUEST["\143\x6c\145\x61\x72\x6c\x79\137\x73\x6f\146\164\160\x68\157\156\x65\137\x65\155\x65\162\147\145\156\143\x79\137\x72\x65\167\x72\151\164\x65"], "\x67\x72\157\165\x70\137\145\x6d\x65\x72\147\145\156\x63\x79\x5f\162\x65\x77\162\x69\x74\x65"); goto KyEyX; FlopQ: } public function showPage() { goto poiw7; j3xe8: $data = $this->FreePBX->Clearlysp->getTokenData(); goto fvQqB; Rf7HY: sXyKO: goto v_pAq; nZeoW: switch ($_REQUEST["\141\x63\164\x69\157\156"]) { case "\163\150\x6f\167\165\x73\145\x72": case "\141\x64\144\165\163\145\x72": goto Aicc5; NzWwH: qIgfJ: goto SMK0n; O0PNk: $vars["\x65\155\145\x72\147\145\x6e\143\171\x5f\x72\x65\x77\x72\151\x74\x65"] = $emergencyrewrite ? $emergencyrewrite : "\151\156\150\x65\x72\151\x74"; goto x5hRh; YqDmr: $data = $this->FreePBX->Clearlysp->getTokenData(); goto i4fiF; KtZKS: $vars["\x6d\145\163\163\x61\147\145"] = "\74\x64\x69\166\x20\x63\154\141\x73\x73\x3d\x22\x77\x65\x6c\x6c\x20\167\x65\x6c\x6c\x2d\x64\x61\x6e\147\145\162\42\x3e" . _("\x54\150\151\163\40\163\x79\x73\x74\145\x6d\40\151\163\x20\165\156\x61\143\164\x69\166\141\164\x65\x64\40\157\x72\40\x74\150\x65\x20\141\x63\164\x69\166\x61\164\x69\157\x6e\x20\150\x61\163\40\145\x78\x70\x69\162\x65\x64") . "\74\x2f\x64\x69\x76\76"; goto NzWwH; xcGpH: $vars["\155\x65\x73\x73\x61\147\145"] = ''; goto YqDmr; SMK0n: if (!($data && $data["\x63\x6c\x69\x65\156\x74\163"]["\165\163\x65\144"] >= $data["\x63\154\151\145\156\x74\x73"]["\164\x6f\164\x61\154"] && $permitted["\x65\156\141\142\x6c\145\x64"] !== "\x65\x6e\141\142\x6c\145\144")) { goto mD5tF; } goto B1Bic; WJXvR: foreach ($quickdial as $quickdialExt) { $quickdialSelected[$quickdialExt] = $quickdialExt; sVAsV: } goto yBYiq; QAMTb: $vars["\161\x75\x69\143\153\x64\151\141\154\x6f\160\164\163"] = ''; goto cp_P6; AJ_Z2: $vars["\x67\162\157\165\160\161\x75\151\x63\153\144\x69\141\x6c\163"] = $this->FreePBX->Clearlysp->getConfig($user["\x69\x64"], "\x67\x72\157\165\160\x71\165\x69\143\153\x64\151\141\154\163"); goto xLwoJ; v3PtQ: $vars["\144\x69\163\x61\x62\154\x65\x65\x6c\x65\155\163"] = ''; goto xcGpH; PlXEF: $vars["\x70\x61\162\x6b\151\x6e\147\154\157\x74"] = "\x69\156\150\x65\162\151\164"; goto uB2RL; o89hM: Wk6IL: goto i4kXx; Jo03l: $vars["\x65\156\141\x62\x6c\x65\x70\141\162\153"] = $enablepark ? $enablepark : "\151\156\150\x65\162\151\164"; goto baIUv; Sv1cp: $vars["\x64\151\x73\141\142\x6c\145\145\x6c\145\x6d\x73"] = "\150\151\144\x64\x65\x6e"; goto o89hM; xLwoJ: $emergencyrewrite = $this->FreePBX->Clearlysp->getConfig($user["\x69\144"], "\165\x73\145\x72\137\145\x6d\145\x72\x67\145\156\x63\x79\x5f\x72\x65\167\162\x69\x74\x65"); goto cc4lL; i4fiF: if (!(!$data || !$data["\141\143\x74\x69\166\x65"] || !empty($data["\145\x78\160\151\162\145\x73"]) && time() > $data["\x65\170\160\151\x72\x65\x73"])) { goto qIgfJ; } goto pTEY6; B1Bic: if (!($vars["\145\x6e\x61\x62\154\x65\144"] !== "\x65\x6e\x61\x62\154\145\x64")) { goto Wk6IL; } goto Sv1cp; x5hRh: $vars["\160\x61\x72\153\151\156\x67\154\x6f\x74\x6f\160\x74\151\157\156\163"] = $this->getParkingLotOptions($vars["\160\x61\162\x6b\151\x6e\147\154\x6f\x74"]); goto IWiZz; yBYiq: WTADS: goto fDWvC; i4kXx: $vars["\155\x65\x73\x73\x61\x67\x65"] = "\74\144\x69\166\40\x63\154\141\x73\x73\x3d\42\x77\x65\154\154\x20\x77\145\x6c\154\55\144\141\x6e\147\145\162\x22\x3e" . _("\101\x6c\x6c\x20\x63\154\151\145\156\164\163\40\146\157\162\40\x74\x68\x69\163\40\163\x65\x72\x76\x65\x72\x20\141\162\145\40\x63\165\162\162\x65\x6e\164\154\x79\x20\x69\156\55\x75\x73\x65\56\x20\120\154\145\141\x73\145\x20\165\156\55\141\x73\x73\151\147\x6e\40\165\163\x65\162\x73\54\40\143\150\141\x6e\147\x65\x20\x79\x6f\x75\162\40\147\x72\157\165\x70\40\x73\x65\x74\164\151\156\147\x73\54\40\157\162\x20\143\x6f\x6e\164\x61\x63\x74\40\163\x75\160\160\157\x72\x74\x20\x66\x6f\162\x20\141\x64\144\151\x74\x69\157\x6e\x61\x6c\x20\141\x73\x73\x69\x73\164\x61\156\143\145\x2e") . "\74\x2f\144\x69\x76\76"; goto cHqpI; EDrxs: $vars["\x67\x72\x6f\x75\160\x71\165\x69\143\x6b\144\151\x61\x6c\163"] = "\x65\x6e\141\x62\x6c\145\x64"; goto CAMCk; Cjh5I: $vars["\163\155\163\x6f\x70\x74\163"] = $this->getSMSopts($user["\151\144"], $vars["\163\155\x73\144\x69\144"]); goto Ul5eu; CAMCk: $vars["\145\156\141\x62\154\x65\x70\141\162\153"] = "\151\156\150\x65\162\151\x74"; goto PlXEF; G2vNI: yn5wJ: goto EDrxs; IWiZz: return array(array("\164\151\x74\154\x65" => _("\103\x6c\x65\141\x72\x6c\171\x20\101\156\x79\x77\x68\145\x72\145"), "\x72\141\167\x6e\141\x6d\145" => "\143\x6c\145\x61\x72\x6c\171\163\160", "\x63\157\x6e\164\x65\156\x74" => load_view(__DIR__ . "\57\x2e\x2e\57\x76\151\145\167\x73\57\x75\163\x65\162\x6d\141\x6e\x55\163\x65\162\x2e\x70\150\160", $vars))); goto mS5RK; cHqpI: mD5tF: goto QAMTb; Ul5eu: $permitted = $this->FreePBX->Clearlysp->isAllowed($user["\151\x64"]); goto v3PtQ; rgyNb: foreach ($this->FreePBX->Clearlysp->getAllQuickDialEntries() as $quickDialUser) { $vars["\x71\x75\151\x63\153\144\x69\x61\x6c\x6f\160\164\x73"] .= sprintf("\x3c\x6f\160\x74\x69\x6f\x6e\40\x76\141\154\165\145\40\75\40\42\x25\163\x22\40\x25\x73\76\x25\x73\74\x2f\x6f\x70\164\x69\157\156\76", $quickDialUser["\145\x78\164\145\x6e\x73\x69\157\156"], isset($quickdialSelected[$quickDialUser["\145\x78\164\145\x6e\163\151\157\x6e"]]) ? "\x73\145\x6c\145\x63\164\145\144" : '', $quickDialUser["\156\141\x6d\145"]); k1g3d: } goto G2vNI; cp_P6: $quickdial = $vars["\x71\165\151\x63\x6b\144\151\x61\x6c"]; goto n9XiE; baIUv: iagzD: goto O0PNk; uB2RL: if (empty($user["\151\x64"])) { goto iagzD; } goto AJ_Z2; y2otf: $vars = $this->FreePBX->Clearlysp->getUserSettings($user["\x69\144"]); goto Cjh5I; n9XiE: $quickdialSelected = array(); goto X4V9Q; vJMWP: $vars["\x70\x61\162\x6b\x69\x6e\x67\x6c\157\164"] = $parkinglot ? $parkinglot : "\151\x6e\x68\x65\162\151\x74"; goto Jo03l; pTEY6: $vars["\144\151\x73\x61\142\154\145\145\154\x65\155\x73"] = "\x68\x69\144\144\x65\156"; goto KtZKS; fDWvC: rRpTd: goto rgyNb; Aicc5: $user = $this->Usermanager->getUserByID((int) $_REQUEST["\x75\x73\145\x72"]); goto y2otf; cc4lL: $enablepark = $this->FreePBX->Clearlysp->getConfig($user["\x69\x64"], "\145\x6e\141\142\x6c\145\x70\x61\x72\153"); goto YYzCy; YYzCy: $parkinglot = $this->FreePBX->Clearlysp->getConfig($user["\x69\x64"], "\x70\141\162\x6b\151\x6e\147\x6c\157\164"); goto vJMWP; X4V9Q: if (empty($quickdial)) { goto rRpTd; } goto WJXvR; mS5RK: case "\x73\150\x6f\x77\147\162\x6f\x75\x70": case "\x61\x64\x64\147\162\x6f\165\160": goto ord6Z; ord6Z: $total = $data["\x63\x6c\x69\145\156\164\163"]["\164\x6f\164\x61\x6c"]; goto G39lL; Kw89m: $vars["\x65\x6d\x65\162\147\x65\156\143\171\137\x72\x65\x77\x72\151\164\145"] = $emergencyrewrite ? $emergencyrewrite : "\144\x69\163\x61\x62\154\x65\x64"; goto XbcuB; wnXik: $allmappings = $this->FreePBX->Clearlysp->getUsersEnabled(); goto KpEFI; NRYpQ: $effectiveSize = $groupsize; goto YRUDG; EeK83: EYG9o: goto wnXik; sey2L: $vars["\x67\162\157\165\160\151\x64"] = $_REQUEST["\x67\162\157\165\x70"]; goto PgdFG; pt69m: $group = $this->Usermanager->getGroupByGID($_REQUEST["\x67\162\x6f\165\x70"]); goto KFi1M; KpEFI: $groupsize = sizeof($group["\165\163\x65\162\163"]); goto NRYpQ; pYXuz: X5eHJ: goto T4sg7; NpbBQ: MA2lD: goto JqJug; ZnK6j: foreach ($quickdial as $quickdialExt) { $quickdialSelected[$quickdialExt] = $quickdialExt; CpMjp: } goto UC3nx; T4sg7: foreach ($this->FreePBX->Clearlysp->getAllQuickDialEntries() as $user) { $vars["\x71\165\x69\x63\153\144\151\141\x6c\x6f\160\x74\x73"] .= sprintf("\x3c\x6f\x70\164\x69\x6f\x6e\x20\166\141\154\x75\x65\x20\x3d\40\x22\45\x73\x22\x20\x25\163\x3e\45\x73\74\x2f\x6f\x70\x74\151\x6f\156\x3e", $user["\145\x78\164\x65\x6e\163\x69\x6f\x6e"], isset($quickdialSelected[$user["\x65\170\x74\x65\x6e\163\x69\x6f\156"]]) ? "\163\145\154\145\143\x74\145\x64" : '', $user["\x6e\x61\x6d\x65"]); m1Ur9: } goto YRVyZ; KFi1M: if (!empty($group)) { goto EYG9o; } goto DxJKO; YRVyZ: LV_Nq: goto NYs6s; NYs6s: return array(array("\x74\151\x74\x6c\x65" => _("\x43\x6c\145\x61\x72\154\x79\x20\x41\x6e\171\x77\150\x65\162\x65"), "\x72\141\x77\x6e\141\x6d\x65" => "\x63\154\x65\141\162\154\x79\163\160", "\143\x6f\x6e\164\x65\156\164" => load_view(__DIR__ . "\x2f\x2e\56\57\x76\151\x65\167\x73\57\x75\x73\x65\162\x6d\x61\x6e\107\x72\x6f\165\x70\56\x70\150\x70", $vars))); goto a6uBq; G39lL: $vars = $vars + $this->FreePBX->Clearlysp->getGroupSettings($_REQUEST["\x67\x72\x6f\x75\160"]); goto pt69m; nzAK_: $quickdialSelected = array(); goto UfJDP; XbcuB: $vars["\160\141\x72\153\x69\156\x67\x6c\x6f\164\x6f\160\164\151\x6f\156\163"] = $this->getParkingLotOptions($vars["\160\141\162\x6b\151\x6e\147\x6c\157\164"]); goto nzAK_; JqJug: $vars["\x6d\x65\x73\x73\141\x67\x65"] = "\x3c\144\151\166\40\143\154\x61\163\x73\75\42\x61\154\x65\162\x74\40\x61\154\x65\x72\164\x2d\x77\x61\162\156\x69\156\147\x22\x3e" . sprintf(_("\105\156\x61\142\x6c\151\x6e\147\40\x74\150\145\x20\x73\157\x66\x74\x70\150\157\156\145\40\147\x72\x6f\x75\x70\x20\167\151\x64\x65\x20\x73\150\157\165\x6c\x64\x20\x6e\x6f\164\40\145\170\x63\145\145\144\x20\171\x6f\165\x72\40\154\151\143\x65\156\163\145\40\x63\157\165\x6e\x74\x20\x6f\x66\40\x25\x73\x2e\x3c\x62\162\x2f\x3e\124\x68\x69\x73\x20\x67\x72\x6f\x75\x70\40\167\157\165\x6c\144\40\x72\145\x71\x75\x69\162\145\x20\x25\163\x20\x73\145\141\x74\x73\x20\151\x6e\40\x61\x64\144\151\164\151\x6f\x6e\x20\x74\157\40\164\150\x6f\x73\x65\40\151\156\144\x69\166\x69\144\x75\x61\x6c\x6c\x79\40\155\x61\x70\x70\145\144\x2e\x3c\x62\162\x2f\76\x4f\x6e\x6c\171\x20\164\x68\145\x20\x66\x69\x72\163\164\x20\x25\163\40\x63\x6c\x69\x65\x6e\x74\163\x20\167\x69\x6c\x6c\40\x62\145\40\x65\x6e\141\x62\154\145\x64\x20\x77\151\x74\150\40\x70\162\x69\x6f\x72\x69\x74\171\x20\147\151\166\145\x6e\40\164\157\x20\164\150\157\163\145\40\x65\x78\160\x72\145\x73\163\x6c\171\40\x65\x6e\141\x62\154\x65\144"), $total, $effectiveSize, $total) . "\74\x2f\144\x69\166\76"; goto x2dit; UC3nx: P7cm_: goto pYXuz; DxJKO: $group = array("\151\144" => 0, "\165\x73\145\162\163" => array()); goto EeK83; YRUDG: foreach ($allmappings as $id => $data) { goto Dn93z; QLB9L: $effectiveSize--; goto Srkpn; Srkpn: yrcXF: goto nHxdF; Dn93z: if (!in_array($id, $group["\165\163\x65\162\163"])) { goto yrcXF; } goto QLB9L; nHxdF: Fwxs0: goto X3hIh; X3hIh: } goto NpbBQ; ANabK: $emergencyrewrite = $this->FreePBX->Clearlysp->getConfig($group["\x69\144"], "\x67\x72\x6f\x75\x70\x5f\145\155\x65\x72\x67\x65\156\143\x79\x5f\x72\x65\167\162\x69\x74\x65"); goto Kw89m; x2dit: $vars["\x71\165\x69\143\x6b\x64\151\141\x6c\157\160\164\x73"] = ''; goto sey2L; UfJDP: if (empty($quickdial)) { goto X5eHJ; } goto ZnK6j; PgdFG: $quickdial = $this->FreePBX->Clearlysp->getConfig($group["\x69\x64"], "\147\162\157\x75\160\161\165\151\x63\x6b\x64\x69\x61\154"); goto ANabK; a6uBq: default: return "\125\163\145\x72\x20\x6d\141\156\x61\x67\x65\162\40\151\163\40\x61\x73\153\x69\x6e\147\40\x66\157\x72\x20\x61\156\x20\165\x6e\150\141\156\x64\x6c\x65\x64\40\163\x74\x61\x74\x65\56"; } goto Xc7I3; GFWzk: if (!version_compare($version, "\61\x34\x2e\60", "\x67\x65")) { goto sXyKO; } goto j3xe8; Xc7I3: e2DBN: goto mAVpN; mAVpN: DA5Pk: goto Rf7HY; poiw7: $version = get_framework_version(); goto GFWzk; cxT1j: if (!(!$data || !$data["\141\x63\x74\151\166\x65"] || !empty($data["\145\x78\x70\x69\x72\x65\x73"]) && time() > $data["\145\170\x70\x69\x72\145\163"])) { goto M7JeG; } goto vgKwf; szWsP: $vars["\155\x65\163\x73\x61\147\145"] = "\74\144\151\166\40\143\x6c\x61\x73\x73\75\42\x77\145\154\154\x20\167\145\x6c\x6c\55\x64\141\156\147\145\x72\42\x3e" . _("\x54\150\x69\163\x20\163\171\x73\164\x65\155\x20\151\163\40\165\156\141\x63\164\x69\166\x61\x74\145\144\x20\157\162\40\164\x68\x65\x20\141\143\164\x69\x76\x61\x74\151\157\156\40\x68\x61\x73\x20\x65\x78\x70\x69\162\145\144") . "\x3c\57\144\x69\166\76"; goto N8IG9; FfMkE: $vars["\x6d\145\163\163\141\x67\145"] = ''; goto cxT1j; N8IG9: M7JeG: goto nZeoW; vgKwf: $vars["\144\x69\163\x61\142\154\145\145\154\145\155\x73"] = "\150\151\144\144\x65\156"; goto szWsP; fvQqB: $vars["\144\x69\163\141\142\x6c\x65\145\154\145\x6d\x73"] = ''; goto FfMkE; v_pAq: } public function getParkingLotOptions($parkinglot) { goto Hkx2g; Hkx2g: $return = ''; goto Xx5J0; P0N48: foreach ($lots as $lot) { $return .= sprintf("\74\x6f\x70\x74\x69\157\156\x20\166\141\154\165\145\x3d\42\x25\x73\x22\40\x25\163\76\45\163\x3c\x2f\157\x70\164\151\157\x6e\x3e", $lot["\151\x64"], $lot["\x69\x64"] == $parkinglot ? "\163\x65\x6c\145\143\x74\145\x64" : '', $lot["\156\x61\x6d\x65"]); FxHno: } goto d1Ghn; dodf7: return $return; goto qaXWL; HIMin: KM6Wf: goto GMjoM; GMjoM: $lots = $this->FreePBX->Parking->getAllParkingLots(); goto P0N48; o5jld: return $return; goto HIMin; d1Ghn: U8n5v: goto dodf7; Xx5J0: if ($this->FreePBX->Modules->checkStatus("\160\141\x72\x6b\x69\x6e\x67")) { goto KM6Wf; } goto o5jld; qaXWL: } public function userDetails($user) { return array(); } public function addContactInfo($user) { } public function configPage($mode, $user, $action) { } public function getSMSOpts($user, $value, $isGroup = false) { goto vl0ZV; mmGRV: GseJh: goto Svjxc; vl0ZV: $options = "\74\157\x70\164\x69\x6f\x6e\40\166\x61\x6c\x75\x65\x3d\x22\42\x3e" . _("\x43\150\157\x6f\x73\145\40\x61\x6e\x20\x53\x4d\123\x20\x4e\165\x6d\142\145\x72") . "\x3c\x2f\157\x70\x74\x69\x6f\x6e\76"; goto fB37m; fB37m: if ($this->FreePBX->Modules->checkStatus("\163\155\163")) { goto TD9PD; } goto hOfff; Z8bvZ: TD9PD: goto S43KE; S43KE: $dids = $this->FreePBX->SMS->getDIDs($user); goto cEPv2; cEPv2: foreach ($dids as $did) { goto pNbmN; pNbmN: $selected = $did === $value ? "\123\x45\114\105\x43\x54\x45\x44" : ''; goto U6RaR; U6RaR: $options .= sprintf("\74\x6f\160\x74\151\157\156\x20\166\x61\x6c\165\145\75\x22\45\163\x22\40\45\163\76\45\163\74\x2f\x6f\160\164\151\x6f\156\76", $did, $selected, $did); goto SmCuT; SmCuT: yyU5O: goto pYptI; pYptI: } goto mmGRV; Svjxc: return $options; goto b6HEw; hOfff: return $options; goto Z8bvZ; b6HEw: } }

デコード(難読化解除)されたコード

<?php

/*   __________________________________________________
    |  Built by Clearly IP Inc.                        |
    |              on 2023-01-02 21:42:57              |
    |__________________________________________________|
*/
namespace FreePBX\modules\Clearlysp\BMOHooks;

class Usermanager
{
    public function __construct($FreePBX)
    {
        $this->FreePBX = $FreePBX;
        $this->Usermanager = $FreePBX->Userman;
    }
    public function addUser($id, $display, $data)
    {
        return $this->updateUser($id, $display, $data);
    }
    public function delUser($id, $display, $data)
    {
    }
    public function updateUser($id, $display, $data)
    {
        if (!empty($display)) {
            if (!($display === "userman")) {
                // [PHPDeobfuscator] Implied return
                return;
            }
            $enabled = isset($_REQUEST["clearly_softphone_enable"]) ? $_REQUEST["clearly_softphone_enable"] : "inherit";
            $messaging = isset($_REQUEST["clearly_softphone_messaging"]) ? $_REQUEST["clearly_softphone_messaging"] : "inherit";
            $did = isset($_REQUEST["clearly_softphone_smsdid"]) ? $_REQUEST["clearly_softphone_smsdid"] : '';
            $pageautoanswer = isset($_REQUEST["clearly_softphone_pageautoanswer"]) ? $_REQUEST["clearly_softphone_pageautoanswer"] : "inherit";
            $stunurl = isset($_REQUEST["clearly_softphone_stunurl"]) ? $_REQUEST["clearly_softphone_stunurl"] : "inherit";
            $groupquickdial = isset($_REQUEST["clearly_softphone_groupquickdials"]) ? $_REQUEST["clearly_softphone_groupquickdials"] : "enabled";
            $this->FreePBX->Clearlysp->setConfig($id, $groupquickdial, "groupquickdials");
            $this->FreePBX->Clearlysp->setConfig($id, $_REQUEST["clearly_softphone_enablepark"], "enablepark");
            $this->FreePBX->Clearlysp->setConfig($id, $_REQUEST["clearly_softphone_parkinglot"], "parkinglot");
            $quickdial = array();
            if (empty($_REQUEST["clearly_softphone_quickdial"])) {
                goto PvbES;
            }
            foreach ($_REQUEST["clearly_softphone_quickdial"] as $ext) {
                $quickdial[] = $ext;
            }
            PvbES:
            $this->FreePBX->Clearlysp->setConfig($id, $quickdial, "quickdial");
            $this->FreePBX->Clearlysp->setConfig($id, $_REQUEST["clearly_softphone_emergency_rewrite"], "user_emergency_rewrite");
            $enablepark = isset($_REQUEST["clearly_softphone_enablepark"]) ? $_REQUEST["clearly_softphone_enablepark"] : "disabled";
            $parkinglot = isset($_REQUEST["clearly_softphone_parkinglot"]) ? $_REQUEST["clearly_softphone_parkinglot"] : '';
            $recording = isset($_REQUEST["clearly_softphone_recording"]) ? $_REQUEST["clearly_softphone_recording"] : "inherit";
            $server_contacts = isset($_REQUEST["clearly_softphone_server_contacts"]) ? $_REQUEST["clearly_softphone_server_contacts"] : "inherit";
            return $this->FreePBX->Clearlysp->updateUserSettings($id, $enabled, $messaging, $did, $pageautoanswer, $stunurl, $enablepark, $parkinglot, $recording, $server_contacts);
        }
        return $this->FreePBX->Clearlysp->permissionLottery();
    }
    public function addGroup($id, $display, $data)
    {
        return $this->updateGroup($id, $display, $data);
    }
    public function delGroup($id, $display, $data)
    {
    }
    public function updateGroup($id, $display, $data)
    {
        if (!empty($display)) {
            if (!($display === "userman")) {
                // [PHPDeobfuscator] Implied return
                return;
            }
            $enabled = isset($_REQUEST["clearly_softphone_enable"]) ? $_REQUEST["clearly_softphone_enable"] : "disabled";
            $messaging = isset($_REQUEST["clearly_softphone_messaging"]) ? $_REQUEST["clearly_softphone_messaging"] : "disabled";
            $pageautoanswer = isset($_REQUEST["clearly_softphone_pageautoanswer"]) ? $_REQUEST["clearly_softphone_pageautoanswer"] : "disabled";
            $stunurl = isset($_REQUEST["clearly_softphone_stunurl"]) ? $_REQUEST["clearly_softphone_stunurl"] : '';
            $quickdial = array();
            $quickdialRequest = is_array($_REQUEST["clearly_softphone_quickdial"]) ? $_REQUEST["clearly_softphone_quickdial"] : array();
            foreach ($quickdialRequest as $ext) {
                $quickdial[] = $ext;
            }
            $this->FreePBX->Clearlysp->setConfig($id, $quickdial, "groupquickdial");
            $this->FreePBX->Clearlysp->setConfig($id, $_REQUEST["clearly_softphone_emergency_rewrite"], "group_emergency_rewrite");
            $enablepark = isset($_REQUEST["clearly_softphone_enablepark"]) ? $_REQUEST["clearly_softphone_enablepark"] : "disabled";
            $parkinglot = isset($_REQUEST["clearly_softphone_parkinglot"]) ? $_REQUEST["clearly_softphone_parkinglot"] : '';
            $recording = isset($_REQUEST["clearly_softphone_recording"]) ? $_REQUEST["clearly_softphone_recording"] : "enabled";
            $server_contacts = isset($_REQUEST["clearly_softphone_server_contacts"]) ? $_REQUEST["clearly_softphone_server_contacts"] : "enabled";
            return $this->FreePBX->Clearlysp->updateGroupSettings($id, $enabled, $messaging, $pageautoanswer, $stunurl, $enablepark, $parkinglot, $recording, $server_contacts);
        }
        return $this->FreePBX->Clearlysp->permissionLottery();
    }
    public function showPage()
    {
        $version = get_framework_version();
        if (!version_compare($version, "14.0", "ge")) {
            goto sXyKO;
        }
        $data = $this->FreePBX->Clearlysp->getTokenData();
        $vars["disableelems"] = '';
        $vars["message"] = '';
        if (!(!$data || !$data["active"] || !empty($data["expires"]) && time() > $data["expires"])) {
            goto M7JeG;
        }
        $vars["disableelems"] = "hidden";
        $vars["message"] = "<div class=\"well well-danger\">" . _("This system is unactivated or the activation has expired") . "</div>";
        M7JeG:
        switch ($_REQUEST["action"]) {
            case "showuser":
            case "adduser":
                $user = $this->Usermanager->getUserByID((int) $_REQUEST["user"]);
                $vars = $this->FreePBX->Clearlysp->getUserSettings($user["id"]);
                $vars["smsopts"] = $this->getSMSopts($user["id"], $vars["smsdid"]);
                $permitted = $this->FreePBX->Clearlysp->isAllowed($user["id"]);
                $vars["disableelems"] = '';
                $vars["message"] = '';
                $data = $this->FreePBX->Clearlysp->getTokenData();
                if (!(!$data || !$data["active"] || !empty($data["expires"]) && time() > $data["expires"])) {
                    goto qIgfJ;
                }
                $vars["disableelems"] = "hidden";
                $vars["message"] = "<div class=\"well well-danger\">" . _("This system is unactivated or the activation has expired") . "</div>";
                qIgfJ:
                if (!($data && $data["clients"]["used"] >= $data["clients"]["total"] && $permitted["enabled"] !== "enabled")) {
                    goto mD5tF;
                }
                if (!($vars["enabled"] !== "enabled")) {
                    goto Wk6IL;
                }
                $vars["disableelems"] = "hidden";
                Wk6IL:
                $vars["message"] = "<div class=\"well well-danger\">" . _("All clients for this server are currently in-use. Please un-assign users, change your group settings, or contact support for additional assistance.") . "</div>";
                mD5tF:
                $vars["quickdialopts"] = '';
                $quickdial = $vars["quickdial"];
                $quickdialSelected = array();
                if (empty($quickdial)) {
                    goto rRpTd;
                }
                foreach ($quickdial as $quickdialExt) {
                    $quickdialSelected[$quickdialExt] = $quickdialExt;
                }
                rRpTd:
                foreach ($this->FreePBX->Clearlysp->getAllQuickDialEntries() as $quickDialUser) {
                    $vars["quickdialopts"] .= sprintf("<option value = \"%s\" %s>%s</option>", $quickDialUser["extension"], isset($quickdialSelected[$quickDialUser["extension"]]) ? "selected" : '', $quickDialUser["name"]);
                }
                $vars["groupquickdials"] = "enabled";
                $vars["enablepark"] = "inherit";
                $vars["parkinglot"] = "inherit";
                if (empty($user["id"])) {
                    goto iagzD;
                }
                $vars["groupquickdials"] = $this->FreePBX->Clearlysp->getConfig($user["id"], "groupquickdials");
                $emergencyrewrite = $this->FreePBX->Clearlysp->getConfig($user["id"], "user_emergency_rewrite");
                $enablepark = $this->FreePBX->Clearlysp->getConfig($user["id"], "enablepark");
                $parkinglot = $this->FreePBX->Clearlysp->getConfig($user["id"], "parkinglot");
                $vars["parkinglot"] = $parkinglot ? $parkinglot : "inherit";
                $vars["enablepark"] = $enablepark ? $enablepark : "inherit";
                iagzD:
                $vars["emergency_rewrite"] = $emergencyrewrite ? $emergencyrewrite : "inherit";
                $vars["parkinglotoptions"] = $this->getParkingLotOptions($vars["parkinglot"]);
                return array(array("title" => _("Clearly Anywhere"), "rawname" => "clearlysp", "content" => load_view("/var/www/html/../views/usermanUser.php", $vars)));
            case "showgroup":
            case "addgroup":
                $total = $data["clients"]["total"];
                $vars += $this->FreePBX->Clearlysp->getGroupSettings($_REQUEST["group"]);
                $group = $this->Usermanager->getGroupByGID($_REQUEST["group"]);
                if (!empty($group)) {
                    goto EYG9o;
                }
                $group = array("id" => 0, "users" => array());
                EYG9o:
                $allmappings = $this->FreePBX->Clearlysp->getUsersEnabled();
                $groupsize = sizeof($group["users"]);
                $effectiveSize = $groupsize;
                foreach ($allmappings as $id => $data) {
                    if (!in_array($id, $group["users"])) {
                        goto yrcXF;
                    }
                    $effectiveSize--;
                    yrcXF:
                }
                $vars["message"] = "<div class=\"alert alert-warning\">" . sprintf(_("Enabling the softphone group wide should not exceed your license count of %s.<br/>This group would require %s seats in addition to those individually mapped.<br/>Only the first %s clients will be enabled with priority given to those expressly enabled"), $total, $effectiveSize, $total) . "</div>";
                $vars["quickdialopts"] = '';
                $vars["groupid"] = $_REQUEST["group"];
                $quickdial = $this->FreePBX->Clearlysp->getConfig($group["id"], "groupquickdial");
                $emergencyrewrite = $this->FreePBX->Clearlysp->getConfig($group["id"], "group_emergency_rewrite");
                $vars["emergency_rewrite"] = $emergencyrewrite ? $emergencyrewrite : "disabled";
                $vars["parkinglotoptions"] = $this->getParkingLotOptions($vars["parkinglot"]);
                $quickdialSelected = array();
                if (empty($quickdial)) {
                    goto X5eHJ;
                }
                foreach ($quickdial as $quickdialExt) {
                    $quickdialSelected[$quickdialExt] = $quickdialExt;
                }
                X5eHJ:
                foreach ($this->FreePBX->Clearlysp->getAllQuickDialEntries() as $user) {
                    $vars["quickdialopts"] .= sprintf("<option value = \"%s\" %s>%s</option>", $user["extension"], isset($quickdialSelected[$user["extension"]]) ? "selected" : '', $user["name"]);
                }
                return array(array("title" => _("Clearly Anywhere"), "rawname" => "clearlysp", "content" => load_view("/var/www/html/../views/usermanGroup.php", $vars)));
            default:
                return "User manager is asking for an unhandled state.";
        }
        sXyKO:
    }
    public function getParkingLotOptions($parkinglot)
    {
        $return = '';
        if ($this->FreePBX->Modules->checkStatus("parking")) {
            $lots = $this->FreePBX->Parking->getAllParkingLots();
            foreach ($lots as $lot) {
                $return .= sprintf("<option value=\"%s\" %s>%s</option>", $lot["id"], $lot["id"] == $parkinglot ? "selected" : '', $lot["name"]);
            }
            return $return;
        }
        return $return;
    }
    public function userDetails($user)
    {
        return array();
    }
    public function addContactInfo($user)
    {
    }
    public function configPage($mode, $user, $action)
    {
    }
    public function getSMSOpts($user, $value, $isGroup = false)
    {
        $options = "<option value=\"\">" . _("Choose an SMS Number") . "</option>";
        if ($this->FreePBX->Modules->checkStatus("sms")) {
            $dids = $this->FreePBX->SMS->getDIDs($user);
            foreach ($dids as $did) {
                $selected = $did === $value ? "SELECTED" : '';
                $options .= sprintf("<option value=\"%s\" %s>%s</option>", $did, $selected, $did);
            }
            return $options;
        }
        return $options;
    }
}


■【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除]

■WordPress のマルウェア駆除、セキュリティー対策 カスタマイズや修正、引っ越し・復旧のご依頼承ります

(C)2019 ワードプレス ドクター All rights reserved.