PHP加密插件编写

PHP_MINIT_FUNCTION(hello)
{  
    compile_string_old=zend_compile_file; //保存旧的指针函数
    zend_compile_file=compile_string_filen; // 覆盖为自己的指针函数
    return SUCCESS;
}

static ZEND_API zend_op_array *(*compile_string_old)(zval *source_string, char *filename); 

zend_op_array *compile_string_filen(zend_file_handle *file_handle, int type)
{
    php_printf("iwonmo.com"); // 这里是加密逻辑
    return compile_file(file_handle, type); //直接调用静态函数,防止被其他插件拦截解密。
}


效果:


微信截图_20181121095435.png



上面的代码是用PHP骨架搭建的,如果闲麻烦可以在博客内搜索:PHP-CPP

原先的两个想法:

1、修改OpCode(搁浅,OpCode类型没有说明文档。)

2、实现AST编译(发现compile_file不可覆盖,就不研究了。)。


下一步应该就是实现OpCode混淆,或者抽离部分代码 ,实现虚拟机了。 如果哪位道兄研究出来了,记得Call Me。




PHP加密插件编写


本站如无特别说明即为原创,转而告知:(http://iwonmo.com/archives/1432.html)

标签: PHP插件编写

添加新评论