内核
文章平均质量分 88
vspiders
天道酬勤~
展开
-
linux命令反混淆沙箱小记
谈起linux命令混淆,就不得不提强大的bash -x命令,他会把执行的sh脚本命令都打印出来,这里就不再累赘,细节可以参考qiye大佬的文章-。其中考虑到安全&速度问题,提到了对bash功能的改造,其实修改非常简单,只需要废弃掉关键执行函数shell_execve即可,这样就可以达到既能打印命令,同时不执行外部命令的目的。原创 2023-03-11 23:56:20 · 497 阅读 · 0 评论 -
Linux Hook方法
linux hook是一个非常常见且成熟的技术,用户态Hook的方法有很多中,本次主要记录下LD_PRELOAD动态链接库劫持方法。LD_PRELOAD是一个全局变量,linux程序在运行时会优先加载该路径变量下的动态链接库,因此我们只需要通过设置LD_PRELOAD加载我们编写的同名函数,后续的加载过程中就会忽略后面的同名函数,从而完成对系统库的劫持。一般情况下linux动态加载库的顺序为LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/l原创 2021-09-13 14:46:20 · 1219 阅读 · 0 评论 -
php Zend虚拟机的两种hook方式
前言这节讲一下PHP 的hook的两种方式,opcode handler hook和method hook,没有然后。handlerPHP提供了内置opcode handler替换函数zend_user_opcode_handlers。ZEND_API int zend_set_user_opcode_handler(zend_uchar opcode, user_opcode_handler_t handler){ if (opcode != ZEND_USER_OPCODE) { if原创 2020-06-08 20:12:31 · 773 阅读 · 0 评论 -
php扩展初探(三): taint解析
前言终于可以抽点时间说下taint了。源码解析taint的安装就不提了,普通的扩展安装即可。taint主要由三部分构成,污点标记、污点传播、污点沉降。污点标记taint在php7中的标记是在_zend_string中的内存回收u.v.flags字段中,如下:typedef union _zend_value { zend_long lval; /* long value */ double dval; /* ...原创 2020-05-28 21:08:36 · 612 阅读 · 1 评论 -
PHP 扩展编写(二)
前面我们说了一个简单的PHP扩展的编写与实现,本次实现一个具有功能的复杂扩展。求和函数phpadd求和函数需要接受参数,先来看下参数的写法。参数的提示与校验是通过ZEND_BEGIN_ARG_INFO_EX、ZEND_BEGIN_ARG_INFO两个宏定义函数完成的。,其中的ZEND_ARG_INFO设置了参数是否为引用、参数标识以及是否为可选参数等,本示例中,我们接受两个参数,均...原创 2020-04-05 16:01:10 · 323 阅读 · 0 评论 -
PHP 扩展编写(一)
生命周期说到PHP扩展,需要先简单了解下PHP的生命周期,意义在于说明这个扩展在什么时候是生效的。在CLI模式下,PHP的执行过程主要分为5大部分,分别是模块初始化(php_module_startup)、请求初始化(php_request_startup)、执行(php_execute_script)、请求关闭(php_request_shutdown)和模块关闭(php_module_...原创 2020-04-04 22:58:24 · 227 阅读 · 0 评论