首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Apc缓存Opcode

    目前的版本是3.1.13,通过PECL安装,需要php4.3.0或更高版本 3、安装配置 一般是下载源代码然后phpize来编译安装,安装完以后在加上php.ini里加上 extension=apc.so...apc.shm_segments = 1 apc.shm_size = 30 APC既然把数据缓存在内存里面,我们就有必要对它进行内存资源限定。通过这二个配置可以限定APC可以使用的内存空间大小。...重新启动apache服务器,查看phpinfo中是否有apc配置项目,有的话就配置成功了. 4、APC管理界面 到pecl.php.net下载 apc源码包有个apc.php,copy到你的web...APC的使用 APC的使用其实倒说不上.APC是个优化器,自安装之日起,就默默地在后台为您的PHP应用服务了.您的所有PHP代码会被缓存起来....安装opcache 编译安装PHP5.5的时候加上–enable-opcache 2.在php.ini文件中添加如下配置: zend_extension=opcache.so [opcache]

    59520

    六、APC

    6.1.APC初始化 dt _KTHREAD与APC相关的项 +0x03a Alerted : [2] UChar //可警惕。...,如果ApcStateIndex =1 插入到挂靠环境 选择插入,初始化函数不插入,插入APC函数的时候再选择插入 ida分析KeInitializeApc 6.2.APC插入 有两种APC...内核模式的APC并不要求从目标线程获得许可就可以运行在该线程的环境中,而用户模式的APC必须先获得许可才可以。内核模式的APC无需目标线程的干涉或者同意,就可以中断该线程并执行一个过程。...内核模式的APC也有两种类型:普通的和特殊的。 特殊的APCAPC级别上执行,并且运行APC例程修改某些APC参数。...普通的APC在被动级别上执行,并且接收被特殊APC例程修改的参数(如果它们未被修改过,则直接接收原始的参数)。

    1.1K20

    APC机制初探

    用户APCAPC函数地址位于用户空间,在用户空间执行 内核APCAPC函数地址位于内核空间,在内核空间执行 NormalRoutine会找到你提供的APC函数,并不完全等于...总入口或者内核apc函数 IN KPROCESSOR_MODE Mode,//要插入用户apc队列还是内核apc队列 IN PVOID Context//内核APC:NULL 用户APC:真正的APC...如果插入的是ApcState队列中就继续判断这个APC是自身插入还是其他线程插入的 如果是插入到其他线程的APC并且是个用户APC 如果这个APC是内核APC并且是插入到其他线程的 APC的插入位置与传入的...如果这个APC是当前线程插入给其他线程的,且是个用户APC。当APC所属线程处于等待时,会尝试唤醒线程来执行APC。...当APC所属线程处于运行时,会直接触发软中断执行APC或通知其他核触发软中断执行。当APC所属线程处于等待时,会尝试唤醒线程来执行APC。其他状态则不会立马执行APC

    68610

    3.2 DLL注入:远程APC异步注入

    APC机制中,当某些事件发生时(例如文件IO,网络IO或定时器触发),这些事件将被操作系统添加到一个APC队列中,该队列绑定到执行线程。...APC机制与DLL注入的关系在于,可以使用APC机制将某些代码注入到另一个进程中,并由该进程执行。...当调用QueueUserAPC函数时,该函数将在目标线程的APC队列中添加一个APC入口,APC的入口点为pfnAPC。...APC一部注入原理可以总结为如下几个步骤,每个线程在可被唤醒时在其APC链中的函数将有机会执行被执行,每一个线程都具有一个APC链,那么只要在APC链中添加一个APC,就可以完成我们所需要的DLL注入的功能...函数,这样增加了注入成功的机会.利用当线程被唤醒时APC中的注册函数会被执行的机制,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的,通过APC注入的流程步骤大致如下;1.当进程里某个线程执行到

    39940

    一个APC引起的折腾

    (apc机制类似一个回调函数)的方式,因为user apc会在内核回到应用层时第一时间得到执行,所以如果在user apc中触发dump进程进行采集,也是符合需求 二.          ...问题 方案选定后,就开始写代码,在刚出demo的时候,为了方便快速测试,就直接在插user apc的时候,使用1为 user apc 的入口地址,运行结果也很好,系统在调用这个user apc的时候,由于入口地址是...另外我们知道在目前我们的情况下,apc是内核回返回应用层时第一时间得到执行的应用层代码,原理是内核在返回应用层时会判断当前线程是否有pending的apc,如果有,则把返回应用层后执行的第一条指令设置为...解决问题 经过上面的分析,我们知道,user apc派发入口处,会对user apc的入口地址进行一定的运算,如下: ntdll!...的话,rcx的低32位也就是ecx为0,是高32位为user apc的入口地址 所以要想使我们在内核插入的user apc能得到正解的执行,只需要在内核插入user apc之前先对入口地址进行逆运算再插入即可

    91530

    3.2 DLL注入:远程APC异步注入

    APC机制中,当某些事件发生时(例如文件IO,网络IO或定时器触发),这些事件将被操作系统添加到一个APC队列中,该队列绑定到执行线程。...APC机制与DLL注入的关系在于,可以使用APC机制将某些代码注入到另一个进程中,并由该进程执行。...当调用QueueUserAPC函数时,该函数将在目标线程的APC队列中添加一个APC入口,APC的入口点为pfnAPC。...APC一部注入原理可以总结为如下几个步骤,每个线程在可被唤醒时在其APC链中的函数将有机会执行被执行,每一个线程都具有一个APC链,那么只要在APC链中添加一个APC,就可以完成我们所需要的DLL注入的功能...()时,系统就会产生一个软中断 2.当线程再次被唤醒时,此线程会首先执行APC队列中的被注册的函数 3.利用QueueUserAPC()可以在软中断时向线程的APC队列插入一个函数指针,此处插入Loadlibrary

    32720

    常见注入手法第二讲,APC注入

    常见注入手法第二讲,APC注入 首先,我们要了解下什么是APC APC 是一个简称,具体名字叫做异步过程调用,我们看下MSDN中的解释,异步过程调用,属于是同步对象中的函数...首先介绍一下APC,会了正想开发就会逆向注入 首先第一个函数 QueueUserApc: 函数作用,添加制定的异步函数调用(回调函数)到执行的线程的APC队列中 APCproc:   函数作用: 回调函数的写法...往线程APC队列添加APC,系统会产生一个软中断。...在线程下一次被调度的时候,就会执行APC函数,APC有两种形式,由系统产生的APC称为内核模式APC,由应用程序产生的APC被称为用户模式APC 这里介绍一下应用程序的APC APC是往线程中插入一个回调函数...那么我们可以注入APC,注意下条件,也不是所有都能注入的.

    1.5K80

    Windows APC机制 & 可警告alertable的线程等待状态

    《Windows APC机制(一)》、《谈谈对APC的一点理解》、《线程的Alertable与User APC》主要阅读了这三篇文章,对APC有了个大概了解: 1) APCs允许用户程序和系统元件在一个进程的地址空间内某个线程的上下文中执行代码...谈到APC,不可避免的牵涉到QueueUserAPC函数——“QueueUserAPC函数把一个APC对象加入到指定线程的APC队列中。”...从函数名称,也应该能推测到一个线程其实有两个APC队列:用户APC、系统APC。 Windows APC函数是被按照先进先出(FIFO)顺序放置在一个队列Queue上面的。...同时,用户APC函数极为特别,它只有在线程处于“可警告alertable的线程等待状态”时才能被线程调用。但是,线程一旦开始调用APC函数,就会一次性将所有APC队列上的函数全部执行完毕。...APC函数一般不会去干扰(中断)线程的运行,从上文中知道,一个线程附带着两个APC队列(用户APC、系统APC),也就相当于这两个队列的APC函数都是由“线程本身”来储备调用的(APC函数就相当于奥运会比赛上的预备选手

    1.4K20
    领券