Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php class ArrayRandom extends Handler { use MultipleAddressMode, BinaryOperator; p..
Decoded Output download
<?php
class ArrayRandom extends Handler {
use MultipleAddressMode, BinaryOperator;
public function getOperandType($i) {
switch($i) {
case 1: return "U32";
case 2: return "U32";
case 3: return "U32";
}
}
public function getOperandAddressMode($i) {
switch($i) {
case 1: return "SCA";
case 2: return $this->addressMode;
case 3: return "ARR";
}
}
public function needsInterpreterContext() {
return true;
}
public function getActionOnUnitData() {
$lines = array();
$lines[] = "USE_TSRM";
$lines[] = "uint32_t num_key = 0, num_req = op2, num_avail = op1;";
$lines[] = "while(num_req > 0) {";
$lines[] = "double randval = php_rand(TSRMLS_C);";
$lines[] = "if ((double) (randval / (PHP_RAND_MAX + 1.0)) < (double) num_req / (double) num_avail) {";
$lines[] = "*res_ptr = num_key;";
$lines[] = "res_ptr++;";
$lines[] = "num_req--;";
$lines[] = "}";
$lines[] = "num_avail--;";
$lines[] = "if(num_key < op1 - 1) {";
$lines[] = "num_key++;";
$lines[] = "}";
$lines[] = "}";
return $lines;
}
}
?>
Did this file decode correctly?
Original Code
<?php
class ArrayRandom extends Handler {
use MultipleAddressMode, BinaryOperator;
public function getOperandType($i) {
switch($i) {
case 1: return "U32";
case 2: return "U32";
case 3: return "U32";
}
}
public function getOperandAddressMode($i) {
switch($i) {
case 1: return "SCA";
case 2: return $this->addressMode;
case 3: return "ARR";
}
}
public function needsInterpreterContext() {
return true;
}
public function getActionOnUnitData() {
$lines = array();
$lines[] = "USE_TSRM";
$lines[] = "uint32_t num_key = 0, num_req = op2, num_avail = op1;";
$lines[] = "while(num_req > 0) {";
$lines[] = "double randval = php_rand(TSRMLS_C);";
$lines[] = "if ((double) (randval / (PHP_RAND_MAX + 1.0)) < (double) num_req / (double) num_avail) {";
$lines[] = "*res_ptr = num_key;";
$lines[] = "res_ptr++;";
$lines[] = "num_req--;";
$lines[] = "}";
$lines[] = "num_avail--;";
$lines[] = "if(num_key < op1 - 1) {";
$lines[] = "num_key++;";
$lines[] = "}";
$lines[] = "}";
return $lines;
}
}
?>
Function Calls
None |
Stats
MD5 | e382c1fe6e2787ee90edbe22f60486e4 |
Eval Count | 0 |
Decode Time | 112 ms |