【发布时间】:2018-01-14 21:42:54
【问题描述】:
我尝试编写一个 PHP 模块,用于检测在 php cgi 文件中调用的 zend 内部函数。喜欢的代码如下所示,我想在我的代码中得到它的名字——'printf'。
<?php printf("Hello SO!");?>
现在我用一个名为“zend_set_user_opcode_handler”的函数挂钩了这个函数。但是,我无法获得被挂钩的函数名称。(在这个例子中是“printf”。)那么,如果我该怎么办想要在 Function hook_handler() 中实现那个 'printf'?
代码在这里。
int shellhook_handler(ZEND_OPCODE_HANDLER_ARGS){
/* What should I do to catch function name here*/
return ZEND_USER_OPCODE_DISPATCH;
}
PHP_MINIT_FUNCTION(shellhook)
{
REGISTER_INI_ENTRIES();
zend_set_user_opcode_handler(ZEND_DO_FCALL, hook_handler);
return SUCCESS;
}
【问题讨论】:
标签: php php-internals