Beresikokah variable global dan tidak di unset (Study kasus cracking php encoder)

chmood

Variabel Global adalah variabel yang dikenal di seluruh daerah program tersebut, di dalam maupun di luar fungsi itu sendiri.
langsung aja kita coba melalukan ujicoba.


<?php

/**
* @author BlueBoyz
* @copyright ExploreCrew.Org 2012
*/

echo "<pre>";
//variable biasa;
$var_biasa = "ini variabel biasa.\r\n";
echo $var_biasa ;

//coba menghapus variabel
unset($var_biasa);
echo $var_biasa ; #test lagi akan menampilkan error Notice: Undefined variable: var_biasa

//variable global
function test(){
define("TEST_CONSTANT","constant adalah variable global.\r\n"); #constant
$GLOBALS["TEST_VAR_GLOBAL"] = "variabel global umumnya.\r\n"; #variable global
$var_dalam_function = "variabel dalam function";
return true;
}
test();

echo $TEST_VAR_GLOBAL ;
echo TEST_CONSTANT ;
echo $var_dalam_function ;
?>


ini variabel biasa.


Notice: Undefined variable: var_biasa in C:\ampp\htdocs\xxx.php on line 10

variabel global umumnya.
constant adalah variable global.



Notice: Undefined variable: var_dalam_function in C:\ampp\htdocs\xxx.php on line 23


dapat kita simpulkan bahwasanya. $var_biasa tidak terexcute setelah kita unset. coba perhatikan $TEST_VAR_GLOBAL dan TEST_CONSTANT tetap terexcute walaupun diluar jalur function.
bandingkan dengan $var_dalam_function tidak terexcute klw ditulis diluar function sehingga menyebabkan: Undefined variable: var_dalam_function.

Resikonya memang tidak terlalu berpengaruh klw diterapkan dalam beberapa cms yang opensource. tetapi ini akan membuka peluang besar jika itu diterapkan pada scripts2x yang diencode.
dalam pengujian saya menggunakan Software dari http://www.phplockit.com/.

setelah saya encode, saya pengen ngetest apakah saya bisa mengetahui apa tulisan dalam variable tersebut. saya bikin sebuah file dan menginclude kan file yang telah di encode.


<?php

/**
* @author BlueBoyz
* @copyright ExploreCrew.Org 2012
*/

include 'test.php' ;

echo $TEST_VAR_GLOBAL ;
echo TEST_CONSTANT ;

?>


ternyata masih bisa diexcute, jadi kesimpulan kita bisa membaca variable web walaupun di encode dengan ioncube sekalipun.
mungkin ada yang bertanya variabelnya kita tidak mengetahuinya, bagaimana kita meng echo/print variable tersebut?? jawabannya,, gampang,,
secara default PHP telah menyediakan function untuk melihat seluruh variable Global dan yang tidak diunset.

<?php

/**
* @author BlueBoyz
* @copyright ExploreCrew.Org 2012
*/

include 'test.php';
print_r(get_defined_vars());
?>



saya dapat mengetahui semua variable global dan yang tidak di unset.

Array
(
[GLOBALS] => Array
(
[GLOBALS] => Array
*RECURSION*
[_POST] => Array
(
)

[_GET] => Array
(
)

[_COOKIE] => Array
(
)

[_FILES] => Array
(
)

[php_errormsg] => Undefined variable: var_dalam_function
[TEST_VAR_GLOBAL] => variabel global umumnya.

)

[_POST] => Array
(
)

[_GET] => Array
(
)

[_COOKIE] => Array
(
)

[_FILES] => Array
(
)

[php_errormsg] => Undefined variable: var_dalam_function
[TEST_VAR_GLOBAL] => variabel global umumnya.

)



dengan function tersebut sedikit modifikasi teman2 udah bisa membuat tool crack encoder.


apalagi scripts yang akan di decode memakai function eval($var_tersebut).

ini jelas membuka peluang benar untuk di decode.

Komentar