Wordpress 等でのPHPのマルウェア・ウィルス・改ざんコードをデコードして難読化をオンラインで解除し、
元の読みやすいコードに戻し解読できます。
<?php
function ht_raspi_sub($val,$val2) { $rst = 1; switch($val) { case 1: echo "<p>領域拡張</p>"; echo "<p></p>"; $cmd = "sudo raspi-config --expand-rootfs"; $result = ht_rpi_exec($cmd,0); if ($result === false ) { echo "<p>領域拡張コマンドの実行エラーです。</p>"; echo "<p>再起動します。</p>"; } $cmd = "sudo shutdown -r now >/dev/null 2>&1 &"; $result = ht_rpi_exec($cmd,0); if ($result === false ) { echo "<p>再起動コマンドの実行エラーです。</p>"; $rst = 0; break; } break; case 2: echo "<p>シャットダウン</p>"; echo "<p></p>"; $cmd = "sudo shutdown -h now >/dev/null 2>&1 &"; $result = ht_rpi_exec($cmd,0); if ($result === false ) { echo "<p>シャットダウンコマンドの実行エラーです。</p>"; $rst = 0; break; } break; case 3: echo "<p>再起動</p>"; echo "<p></p>"; $cmd = "sudo shutdown -r now >/dev/null 2>&1 &"; $result = ht_rpi_exec($cmd,0); if ($result === false ) { echo "<p>再起動コマンドの実行エラーです。</p>"; $rst = 0; break; } break; case 4: echo "<p>Swap領域クリア</p>"; echo "<p></p>"; $cmd = "sudo swapoff -a >/dev/null 2>&1"; exec($cmd,$result,$retval); $cmd = "sudo systemctl stop dphys-swapfile >/dev/null 2>&1"; exec($cmd,$result,$retval); $cmd = "sudo systemctl start dphys-swapfile >/dev/null 2>&1"; exec($cmd,$result,$retval); $out = cmd_prn(2,"memory","free -k"); $out = str_replace("\n","<br/>",$out); echo_msg(2, "<p>$out</p>"); echo "<p></p><p>Swap領域をクリアしました。</p>"; echo "<p></p><p>Swap: 0 0 0 と表示されている場合はラズパイを再起動してください。</p>"; $rst = 0; break; case 5: echo "<p>hostname変更</p>"; echo "<p> </p>"; $cmd = "sudo raspi-config nonint do_hostname $val2 -a >/dev/null 2>&1"; $out = exec($cmd,$result,$retval); if ($out === false) { echo "<p>コマンドエラー</p>"; $rst = 0; break; } $out = cmd_prn(2,"hostname","cat /etc/hostname"); if ($out === false) { echo "<p>hostname コマンドエラー</p>"; $rst = 0; break; } $hname2 = str_replace("\n","",$out); echo "<p></p><p>hostnameを $hname2 に変更しました。</p>"; echo "<p> </p><p>システムを再起動してください。</p>"; $rst = 0; break; default: $rst = 0; break; } return $rst; } ht_subtitle($subno,""); switch ($subno) { case "010202": $files = ht_val_check($val); if ($sel == 1) { $ret = ht_filer($files[0]); if ($ret === false) { echo_msg(2, $files[0]); echo_msg(2, ""); echo_msg(2, "サポート外のファイルです。"); } } else { foreach($files as $fl) { echo_msg(2, "$fl"); echo_msg(2, ""); $ret = ht_download($fl); if ($ret === false) { echo_msg(2,"file not found"); continue; } } } break; case "010203": $files = ht_val_check($val); $n = 0; foreach($files as $fl) { if (file_exists($fl)) { fin_unlink($fl); echo_msg(2, "削除しました。$fl"); $n++; } else { echo_msg(2, "ファイルがありません。$fl"); } } echo_msg(2, ""); echo_msg(2, "$n 件削除しました。"); break; case "010702": $ret = ht_raspi_sub($val,$val2); if ($ret == 1) { echo "<script>location.replace('close.html?val=$val');</script>"; } break; case "01070206": echo "<p>audio card 変更</p>"; echo "<p> </p>"; $lists = ht_get_asound_list(); $val_name = ""; foreach($lists as $list) { $cdat = explode(',',$list); if ($cdat[0] == $val) { $val_name = $cdat[1]; break; } } if ($val_name == "") { echo "<p>audio card not found ($val)</p>"; break ; } $out = file_get_contents("$scrdir/html/asoundrc.skel"); if ($out === false) { echo "<p>asoundrc.skel get error</p>"; break ; } $out2 = str_replace("rfriends_card",$val,$out); $ret = file_put_contents("$htmldir/temp/asoundrc",$out2,LOCK_EX); if ($ret === false) { echo "<p>asoundrc put error</p>"; break ; } $user = get_current_user(); $cmd = "sudo cp -f $htmldir/temp/asoundrc /home/$user/.asoundrc"; $result = ht_rpi_exec($cmd,0); if ($result === false ) { echo "<p>sound card変更エラーです。</p>"; break; } echo "<p></p><p>audio cardを[ $val_name ]に変更しました。</p>"; echo "<p> </p><p>変更を反映するにはシステムを再起動してください。</p>"; break; case "010703": switch($val2) { case 1: echo_msg(2,"ヘッドレスブラウザを実行します。"); $nw = time(); $fl = $logdir.date("YmdHis",$nw); if ($headless_browser != 'on') { echo_msg(2,"ヘッドレスブラウザが有効ではないので終了します。"); break; } $html = file_get_contents_headless($val); if ($html === false) { echo_msg(2,"get error : $val"); break; } ht_print_dom($fl.'_html.html',$html); $dat = ht_dom($html,'dom',$fl); ht_print_dom($fl.'_dom.html',$dat); $dat = ht_dom($html,'xml',$fl); ht_print_dom($fl.'_xml.html',$dat); $dat2 = (array)$dat; ht_print_dom($fl.'_xml2.html',$dat2); echo_msg(2,"url : $val"); echo_msg(2,"File : $fl"); echo_msg(2,"結果を出力しました。"); break; case 2: echo_msg(2,"rss : $val"); echo_msg(2,""); $nw = time(); $fl = $logdir.date("YmdHis",$nw); $html = rf_file_get_contents($val); if ($html === false) { echo_msg(2,"get html error : $val"); echo_msg(2,"終了します。"); break; } $doc = @simplexml_load_string($html); $lists = ht_get_rss_info($doc,0); ht_print_r($lists,"lists"); echo_msg(2,""); echo_msg(2,"結果を出力しました。"); break; case 4: echo_msg(2,""); echo_msg(2,"音量 : $val"); $xdg = rfgw_set_xdg().$bindir; $opt = "sset Master $val"."%"; echo_msg(2,""); $out = exec($xdg."amixer $opt",$output,$ret); if ($out === false) break; foreach($output as $ot) { echo_msg(2,$ot); } break; case 5: echo_msg(2,""); echo_msg(2,"rasp_expand"); echo_msg(2,""); $mdl = rfgw_is_rasp(); if ($mdl === false) { echo_msg(2,"この機能はraspberry pi 専用です。"); break; } echo_msg(2,"model : $mdl"); echo_msg(2,""); $opt = "--expand-rootfs"; echo_msg(2,"cmd : sudo raspi-config $opt"); $out = exec("sudo raspi-config $opt",$output,$ret); if ($out === false) break; foreach($output as $ot) { echo_msg(2,$ot); } break; case 6: echo_msg(2,""); echo_msg(2,"番組表refresh"); echo_msg(2,""); $cnt = 16; $dt = strtotime("-8 day", time()); rf_program_radiko($dt,$cnt,$area_code); $url_xml = rf_get_config_radiru(); $areakey = $url_xml["$radiru_area_1"]->areakey; foreach ($radiru_ch as $netch) { if (!valid_chk($ex_radiru, $netch)) { continue; } rf_program_radiru($dt,$cnt,$areakey, $netch); } break; case 10: echo_msg(2,""); echo_msg(2,"exec cmd : $val"); echo_msg(2,""); exec($val, $output, $retval); ht_print_r($output,"out"); break; default: break; } break; default: ht_development($subno,$val,2); break; }<?php
function ht_raspi_sub($val, $val2)
{
$rst = 1;
switch ($val) {
case 1:
echo "<p>領域拡張</p>";
echo "<p></p>";
$cmd = "sudo raspi-config --expand-rootfs";
$result = ht_rpi_exec($cmd, 0);
if ($result === false) {
echo "<p>領域拡張コマンドの実行エラーです。</p>";
echo "<p>再起動します。</p>";
}
$cmd = "sudo shutdown -r now >/dev/null 2>&1 &";
$result = ht_rpi_exec($cmd, 0);
if ($result === false) {
echo "<p>再起動コマンドの実行エラーです。</p>";
$rst = 0;
break;
}
break;
case 2:
echo "<p>シャットダウン</p>";
echo "<p></p>";
$cmd = "sudo shutdown -h now >/dev/null 2>&1 &";
$result = ht_rpi_exec($cmd, 0);
if ($result === false) {
echo "<p>シャットダウンコマンドの実行エラーです。</p>";
$rst = 0;
break;
}
break;
case 3:
echo "<p>再起動</p>";
echo "<p></p>";
$cmd = "sudo shutdown -r now >/dev/null 2>&1 &";
$result = ht_rpi_exec($cmd, 0);
if ($result === false) {
echo "<p>再起動コマンドの実行エラーです。</p>";
$rst = 0;
break;
}
break;
case 4:
echo "<p>Swap領域クリア</p>";
echo "<p></p>";
$cmd = "sudo swapoff -a >/dev/null 2>&1";
exec($cmd, $result, $retval);
$cmd = "sudo systemctl stop dphys-swapfile >/dev/null 2>&1";
exec($cmd, $result, $retval);
$cmd = "sudo systemctl start dphys-swapfile >/dev/null 2>&1";
exec($cmd, $result, $retval);
$out = cmd_prn(2, "memory", "free -k");
$out = str_replace("\n", "<br/>", $out);
echo_msg(2, "<p>{$out}</p>");
echo "<p></p><p>Swap領域をクリアしました。</p>";
echo "<p></p><p>Swap: 0 0 0 と表示されている場合はラズパイを再起動してください。</p>";
$rst = 0;
break;
case 5:
echo "<p>hostname変更</p>";
echo "<p> </p>";
$cmd = "sudo raspi-config nonint do_hostname {$val2} -a >/dev/null 2>&1";
$out = exec($cmd, $result, $retval);
if ($out === false) {
echo "<p>コマンドエラー</p>";
$rst = 0;
break;
}
$out = cmd_prn(2, "hostname", "cat /etc/hostname");
if ($out === false) {
echo "<p>hostname コマンドエラー</p>";
$rst = 0;
break;
}
$hname2 = str_replace("\n", "", $out);
echo "<p></p><p>hostnameを {$hname2} に変更しました。</p>";
echo "<p> </p><p>システムを再起動してください。</p>";
$rst = 0;
break;
default:
$rst = 0;
break;
}
return $rst;
}
ht_subtitle($subno, "");
switch ($subno) {
case "010202":
$files = ht_val_check($val);
if ($sel == 1) {
$ret = ht_filer($files[0]);
if ($ret === false) {
echo_msg(2, $files[0]);
echo_msg(2, "");
echo_msg(2, "サポート外のファイルです。");
}
} else {
foreach ($files as $fl) {
echo_msg(2, "{$fl}");
echo_msg(2, "");
$ret = ht_download($fl);
if ($ret === false) {
echo_msg(2, "file not found");
continue;
}
}
}
break;
case "010203":
$files = ht_val_check($val);
$n = 0;
foreach ($files as $fl) {
if (file_exists($fl)) {
fin_unlink($fl);
echo_msg(2, "削除しました。{$fl}");
$n++;
} else {
echo_msg(2, "ファイルがありません。{$fl}");
}
}
echo_msg(2, "");
echo_msg(2, "{$n} 件削除しました。");
break;
case "010702":
$ret = ht_raspi_sub($val, $val2);
if ($ret == 1) {
echo "<script>location.replace('close.html?val={$val}');</script>";
}
break;
case "01070206":
echo "<p>audio card 変更</p>";
echo "<p> </p>";
$lists = ht_get_asound_list();
$val_name = "";
foreach ($lists as $list) {
$cdat = explode(',', $list);
if ($cdat[0] == $val) {
$val_name = $cdat[1];
break;
}
}
if ($val_name == "") {
echo "<p>audio card not found ({$val})</p>";
break;
}
$out = file_get_contents("{$scrdir}/html/asoundrc.skel");
if ($out === false) {
echo "<p>asoundrc.skel get error</p>";
break;
}
$out2 = str_replace("rfriends_card", $val, $out);
$ret = file_put_contents("{$htmldir}/temp/asoundrc", $out2, LOCK_EX);
if ($ret === false) {
echo "<p>asoundrc put error</p>";
break;
}
$user = get_current_user();
$cmd = "sudo cp -f {$htmldir}/temp/asoundrc /home/{$user}/.asoundrc";
$result = ht_rpi_exec($cmd, 0);
if ($result === false) {
echo "<p>sound card変更エラーです。</p>";
break;
}
echo "<p></p><p>audio cardを[ {$val_name} ]に変更しました。</p>";
echo "<p> </p><p>変更を反映するにはシステムを再起動してください。</p>";
break;
case "010703":
switch ($val2) {
case 1:
echo_msg(2, "ヘッドレスブラウザを実行します。");
$nw = time();
$fl = $logdir . date("YmdHis", $nw);
if ($headless_browser != 'on') {
echo_msg(2, "ヘッドレスブラウザが有効ではないので終了します。");
break;
}
$html = file_get_contents_headless($val);
if ($html === false) {
echo_msg(2, "get error : {$val}");
break;
}
ht_print_dom($fl . '_html.html', $html);
$dat = ht_dom($html, 'dom', $fl);
ht_print_dom($fl . '_dom.html', $dat);
$dat = ht_dom($html, 'xml', $fl);
ht_print_dom($fl . '_xml.html', $dat);
$dat2 = (array) $dat;
ht_print_dom($fl . '_xml2.html', $dat2);
echo_msg(2, "url : {$val}");
echo_msg(2, "File : {$fl}");
echo_msg(2, "結果を出力しました。");
break;
case 2:
echo_msg(2, "rss : {$val}");
echo_msg(2, "");
$nw = time();
$fl = $logdir . date("YmdHis", $nw);
$html = rf_file_get_contents($val);
if ($html === false) {
echo_msg(2, "get html error : {$val}");
echo_msg(2, "終了します。");
break;
}
$doc = @simplexml_load_string($html);
$lists = ht_get_rss_info($doc, 0);
ht_print_r($lists, "lists");
echo_msg(2, "");
echo_msg(2, "結果を出力しました。");
break;
case 4:
echo_msg(2, "");
echo_msg(2, "音量 : {$val}");
$xdg = rfgw_set_xdg() . $bindir;
$opt = "sset Master {$val}" . "%";
echo_msg(2, "");
$out = exec($xdg . "amixer {$opt}", $output, $ret);
if ($out === false) {
break;
}
foreach ($output as $ot) {
echo_msg(2, $ot);
}
break;
case 5:
echo_msg(2, "");
echo_msg(2, "rasp_expand");
echo_msg(2, "");
$mdl = rfgw_is_rasp();
if ($mdl === false) {
echo_msg(2, "この機能はraspberry pi 専用です。");
break;
}
echo_msg(2, "model : {$mdl}");
echo_msg(2, "");
$opt = "--expand-rootfs";
echo_msg(2, "cmd : sudo raspi-config --expand-rootfs");
$out = exec("sudo raspi-config --expand-rootfs", $output, $ret);
if ($out === false) {
break;
}
foreach ($output as $ot) {
echo_msg(2, $ot);
}
break;
case 6:
echo_msg(2, "");
echo_msg(2, "番組表refresh");
echo_msg(2, "");
$cnt = 16;
$dt = strtotime("-8 day", time());
rf_program_radiko($dt, $cnt, $area_code);
$url_xml = rf_get_config_radiru();
$areakey = $url_xml["{$radiru_area_1}"]->areakey;
foreach ($radiru_ch as $netch) {
if (!valid_chk($ex_radiru, $netch)) {
continue;
}
rf_program_radiru($dt, $cnt, $areakey, $netch);
}
break;
case 10:
echo_msg(2, "");
echo_msg(2, "exec cmd : {$val}");
echo_msg(2, "");
exec($val, $output, $retval);
ht_print_r($output, "out");
break;
default:
break;
}
break;
default:
ht_development($subno, $val, 2);
break;
}■【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除]
■WordPress のマルウェア駆除、セキュリティー対策 カスタマイズや修正、引っ越し・復旧のご依頼承ります
(C)2019 ワードプレス ドクター All rights reserved.