Japanese English

PHP deobfuscation, decryption, reconstruction tool

De-obfuscate PHP malware/viruses and tampering code on Wordpress to original readable code.

*Please note that not all obfuscation codes can be decoded.

Decoded the code below.

<?php $ex_type = ""; ht_subtitle($subno,""); switch ($subno) { case "090102": ht_writefl($val); ht_restart(); break; case "090103": $file = "rfriends.ini"; $ret = rfmenu_update_para(1,$file); echo_msg(2,""); if ($ret === false) { echo_msg(2,$mes."ファイルを更新できませんでした。"); } else{ echo_msg(2,$mes."ファイルを...



Obfuscated php code

<?php
 $ex_type = ""; ht_subtitle($subno,""); switch ($subno) { case "090102": ht_writefl($val); ht_restart(); break; case "090103": $file = "rfriends.ini"; $ret = rfmenu_update_para(1,$file); echo_msg(2,""); if ($ret === false) { echo_msg(2,$mes."ファイルを更新できませんでした。"); } else{ echo_msg(2,$mes."ファイルを更新しました。"); } break; case "090202": ht_writefl($val); ht_restart(); break; case "090203": $file = "rfriends_tag.ini"; $ret = rfmenu_update_para(2,$file); echo_msg(2,""); if ($ret === false) { echo_msg(2,$mes."ファイルを更新できませんでした。"); } else{ echo_msg(2,$mes."ファイルを更新しました。"); } break; case "090301": case "090302": case "090303": ht_config($subno,$val,$val2); break; case "090401": ht_writefl2($val); break; case "090402": ht_writefl2($val); break; case "090403": ht_output_program(1,$val); break; case "090404": ht_output_program(2,$val); break; case "090405": break; case "090406": break; case "090407": break; case "090408": break; case "090409": fin_unlink($htmldir.$dirindexdat); ht_writefl2($val); break; case "090502": ht_writefl($val); ht_restart(); break; case "090503": echo_msg(2, "...送信中"); $dbg = 1; $ex_type = 1; $fnm = "test"; $log2 = $scrdir."testmail"; $err2 = $scrdir."testmail2"; $tim2 = $scrdir."testmail3"; fin_mail(-2, $dbg, $ex_type, $fnm, $log2, $err2, $tim2); echo_msg(2, "テストメールを送信しました。"); echo_msg(2, "メールが届いてない場合は設定を再確認してください。"); break; case "090504": echo_msg(2, "...通知中"); $dbg = 1; $ex_type = 1; $fnm = "test"; $log2 = $scrdir."testmail"; $err2 = $scrdir."testmail2"; fin_notify(-2, $dbg, $ex_type, $fnm, $log2, $err2); echo_msg(2, "テスト通知を行いました。"); echo_msg(2, "通知が届いてない場合は設定を再確認してください。"); break; case "0906": ht_writefl($val); ht_restart(); break; case "090701": $ret = premium_login(); echo_msg(2, ""); if ($ret === true) { echo_msg(2, "ラジコプレミアムにログインしました。"); } else { echo_msg(2, "ラジコプレミアムにログインできませんでした。"); } echo_msg(2, ""); ht_premium(); ht_restart(); break; case "090702": ht_writefl($val); ht_restart(); break; case "090703": $ret = premium_login(); if ($ret === true) { echo_msg(2, "ラジコプレミアムにログインしました。"); } else { echo_msg(2, "ラジコプレミアムにログインできませんでした。"); } ht_restart(); break; case "090704": premium_logout(); echo_msg(2, "ラジコプレミアムからログアウトしました。"); ht_restart(); break; case "090801": $setting = array(); foreach($setting_name_dat as $key => $setting_name) { $fl = $cfgdir.$key; if(!file_exists($fl)) continue; $setting[] = $fl; } rfmenu_setting_backup($setting); break; case "090802": $sets = ht_val_check($val); rfmenu_setting_restore($sets[0]); ht_restart(); break; case "090803": $sets = ht_val_check($val); $n = 0; foreach($sets as $key) { $setting_name = $setting_name_dat["$key"]; copy_defusr(1, $key); echo_msg(2,"$setting_name ($key)を初期化しました。"); echo_msg(2,""); $n++; } echo_msg(2,"$n 件の設定を初期化しました。"); ht_restart(); break; default: ht_development($subno,$val,2); break; }

Decoded(de-Obfuscated) php code

<?php

$ex_type = "";
ht_subtitle($subno, "");
switch ($subno) {
    case "090102":
        ht_writefl($val);
        ht_restart();
        break;
    case "090103":
        $file = "rfriends.ini";
        $ret = rfmenu_update_para(1, $file);
        echo_msg(2, "");
        if ($ret === false) {
            echo_msg(2, $mes . "ファイルを更新できませんでした。");
        } else {
            echo_msg(2, $mes . "ファイルを更新しました。");
        }
        break;
    case "090202":
        ht_writefl($val);
        ht_restart();
        break;
    case "090203":
        $file = "rfriends_tag.ini";
        $ret = rfmenu_update_para(2, $file);
        echo_msg(2, "");
        if ($ret === false) {
            echo_msg(2, $mes . "ファイルを更新できませんでした。");
        } else {
            echo_msg(2, $mes . "ファイルを更新しました。");
        }
        break;
    case "090301":
    case "090302":
    case "090303":
        ht_config($subno, $val, $val2);
        break;
    case "090401":
        ht_writefl2($val);
        break;
    case "090402":
        ht_writefl2($val);
        break;
    case "090403":
        ht_output_program(1, $val);
        break;
    case "090404":
        ht_output_program(2, $val);
        break;
    case "090405":
        break;
    case "090406":
        break;
    case "090407":
        break;
    case "090408":
        break;
    case "090409":
        fin_unlink($htmldir . $dirindexdat);
        ht_writefl2($val);
        break;
    case "090502":
        ht_writefl($val);
        ht_restart();
        break;
    case "090503":
        echo_msg(2, "...送信中");
        $dbg = 1;
        $ex_type = 1;
        $fnm = "test";
        $log2 = $scrdir . "testmail";
        $err2 = $scrdir . "testmail2";
        $tim2 = $scrdir . "testmail3";
        fin_mail(2, $dbg, $ex_type, $fnm, $log2, $err2, $tim2);
        echo_msg(2, "テストメールを送信しました。");
        echo_msg(2, "メールが届いてない場合は設定を再確認してください。");
        break;
    case "090504":
        echo_msg(2, "...通知中");
        $dbg = 1;
        $ex_type = 1;
        $fnm = "test";
        $log2 = $scrdir . "testmail";
        $err2 = $scrdir . "testmail2";
        fin_notify(2, $dbg, $ex_type, $fnm, $log2, $err2);
        echo_msg(2, "テスト通知を行いました。");
        echo_msg(2, "通知が届いてない場合は設定を再確認してください。");
        break;
    case "0906":
        ht_writefl($val);
        ht_restart();
        break;
    case "090701":
        $ret = premium_login();
        echo_msg(2, "");
        if ($ret === true) {
            echo_msg(2, "ラジコプレミアムにログインしました。");
        } else {
            echo_msg(2, "ラジコプレミアムにログインできませんでした。");
        }
        echo_msg(2, "");
        ht_premium();
        ht_restart();
        break;
    case "090702":
        ht_writefl($val);
        ht_restart();
        break;
    case "090703":
        $ret = premium_login();
        if ($ret === true) {
            echo_msg(2, "ラジコプレミアムにログインしました。");
        } else {
            echo_msg(2, "ラジコプレミアムにログインできませんでした。");
        }
        ht_restart();
        break;
    case "090704":
        premium_logout();
        echo_msg(2, "ラジコプレミアムからログアウトしました。");
        ht_restart();
        break;
    case "090801":
        $setting = array();
        foreach ($setting_name_dat as $key => $setting_name) {
            $fl = $cfgdir . $key;
            if (!file_exists($fl)) {
                continue;
            }
            $setting[] = $fl;
        }
        rfmenu_setting_backup($setting);
        break;
    case "090802":
        $sets = ht_val_check($val);
        rfmenu_setting_restore($sets[0]);
        ht_restart();
        break;
    case "090803":
        $sets = ht_val_check($val);
        $n = 0;
        foreach ($sets as $key) {
            $setting_name = $setting_name_dat["{$key}"];
            copy_defusr(1, $key);
            echo_msg(2, "{$setting_name} ({$key})を初期化しました。");
            echo_msg(2, "");
            $n++;
        }
        echo_msg(2, "{$n} 件の設定を初期化しました。");
        ht_restart();
        break;
    default:
        ht_development($subno, $val, 2);
        break;
}


Malware detection & removal plugin for WordPress

(C)2020 Wordpress Doctor All rights reserved.