Написал расширение на Zend Engine,которая декодирует(База64) PHP и выполняет.Но при выполнении выходит ошибка
Warning: Use of undefined constant ���� - assumed '����' (this will throw an Error in a future version of PHP) in test on line 1
print rand(0,1000);
С++ код:
PHP_FUNCTION(something) {
char *coded;
size_t coded_len = sizeof(coded) - 1;
ZEND_PARSE_PARAMETERS_START(0, 1)
Z_PARAM_OPTIONAL
Z_PARAM_STRING(coded, coded_len)
ZEND_PARSE_PARAMETERS_END();
char *out = php_base64_decode(coded,coded_len);
int ret = zend_eval_string(&out, return_value, "test" TSRMLS_CC);
RETURN_STR(out);
}
и PHP код:
<?php
$rn="cHJpbnQgcmFuZCgwLDEwMDApOw==";
echo something($rn);?>`
расшифрованный php код:
print rand(0,1000);
Первым параметром функции zend_eval_string header должен быть char *, а не char * *. А php_base64_decode возвращает zend_string *, а не char * Даже непонятно, как это у вас собралось.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости