首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
用户层APC队列使用
】的更多相关文章
用户层APC队列使用
一 参考 https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-queueuserapc <<windows核心编程>> 第5版 二 每个线程都有一个APC队列, 在线程处于可警醒状态时, 线程会执行APC队列中apc函数 经过以上参考文章加上测试发现, APC队列中的函数会在以下3个时机调用 1 线程已经创建, 系统在调用线程函数时会检查APC队列,…
安全之路 —— 利用APC队列实现跨进程注入
简介 在之前的文章中笔者曾经为大家介绍过使用CreateRemoteThread函数来实现远程线程注入(链接),毫无疑问最经典的注入方式,但也因为如此,这种方式到今天已经几乎被所有安全软件所防御.所以今天笔者要介绍的是一种相对比较"另类"的方式,被称作"APC注入".APC(Asynchronous Procedure Call),全称为异步过程调用,指的是函数在特定线程中被异步执行.简单地说,在Windows操作系统中,每一个进程的每一个线程都有自己的APC队列,…
APC 篇——备用 APC 队列
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我. 你如果是从中间插过来看的,请仔细阅读 羽夏看Win系统内核--简述 ,方便学习本教程. 看此教程之前,问几个问题,基础知识储备好了吗?保护模式…
【windows 操作系统】【CPU】用户模式和内核模式(用户层和内核层)
所有的现代操作系统中,CPU是在两种不同的模式下运行的: 注意以下内容来自微软: windows用户模式和内核模式 运行 Windows 的计算机中的处理器有两个不同模式:用户模式 和内核模式 . 用户模式和内核模式都是针对CPU运行状态来说的,在用户模式下,CPU无法执行一些特权指令,而在内核模式下是可以的. 根据处理器上运行的代码的类型,处理器在两个模式之间切换. 应用程序在用户模式下运行,核心操作系统组件在内核模式下运行. 虽然许多驱动程序以内核模式运行,但某些驱动程序可能以用户模式运行.…
Linux从用户层到内核层系列 - GNU系列之glibc介绍
题记:本系列文章的目的是抛开书本从源代码和使用的角度分析Linux内核和相关源代码,byhankswang和你一起玩转linux开发 轻松搞定TCP/IP协议栈,原创文章欢迎交流, byhankswang@gmail.com 欢迎加入到CHLK - Linux开发交流群 QQ:327084515 讨论Linux开发相关问题 GNU系列之glibc 介绍 最近写程序的时候突然想到一个问题,我们在做内核开发的时候很少使用到C库函数,在linux kernel中使用到C库的几个重要的地方如系统启动时候…
windows 驱动开发 MDL 内核层 用户层共享内存
参考资料 https://blog.csdn.net/wdykanq/article/details/7752909 http://blog.51cto.com/laokaddk/404584 内核层创建内存映射用户层 PVOID pShareMM_SYS; PMDL pShareMM_MDL; PVOID pShareMM_User; PKUANGKEEPROCESS vEProcess = KuangKeGetProcessById(3412); KAPC_STATE vKapcState;…
向Windows内核驱动传递用户层定义的事件Event,并响应内核层的通知
完整的程序在下载:http://download.csdn.net/detail/dijkstar/7913249 用户层创建的事件Event是一个Handle句柄,和内核中的创建的内核模式下的KEVENT是一个东西.因此,在应用层创建的事件,可以在内核层获得并使用.这一部分的原理,见张帆编著的<Windows驱动技术详解>章节8.5.4,P237页: 程序是来自于<Windows驱动技术详解>章节8.5.4(驱动程序和应用程序交互事件对象)和章节10.2.1(DPC定时器). 首…
Dll注入:Ring3 层 APC注入
APC,即Asynchronous procedure call,异步程序调用APC注入的原理是:在一个进程中,当一个执行到SleepEx()或者WaitForSingleObjectEx()时,系统就会产生一个软中断,当线程再次被唤醒时,此线程会首先执行APC队列中的被注册的函数,利用QueueUserAPC()这个API,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的, 注入流程:1.根据进程名称得进程ID2.枚举该进程中的线程3.将自己的函数插入到每个线程的APC队列中 #in…
网络编程基础_3.APC队列
APC队列 #include <stdio.h> #include <windows.h> // 保存 IO 操作的结果 CHAR Buffer1[] = { }; CHAR Buffer2[] = { }; // APC: 在线程处于闲暇状态才会调用 VOID WINAPI OverLappendRoutine(DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, LPOVERLAPPED lpOverlapped) { // 1…
perf-perf stat用户层代码分析
perf_event 源码分析 前言 简单来说,perf是一种性能监测工具,它首先对通用处理器提供的performance counter进行编程,设定计数器阈值和事件,然后性能计数器就会在设定事件发生时递增计数器,直至这个计数器的计数值达到阈值,在不同的结构中对于计数器数值的提取有不同的方式,例如MIPS上会注册一个硬件中断,这样在计数器溢出时触发一个硬件中断,在中断处理函数中记录数值,x86中则是利用通知链机制,将溢出处理函数注册到die_chain通知链上,它会利用任何一个硬件中断发生的时…