首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
C#实现 KeUserModeCallback
2024-10-10
【旧文章搬运】KeUserModeCallback用法详解
原文发表于百度空间及看雪论坛,2010-01-10 看雪论坛地址:https://bbs.pediy.com/thread-104918.htm 代码及附件可到这里下载========================================================================== ring0调用ring3早已不是什么新鲜事,除了APC,我们知道还有KeUserModeCallback.其原型如下: NTSTATUS KeUserModeCallback (
驱动里执行应用层代码之KeUserModeCallBack(WOW64是由三个动态库wow64.dll wow64win.dll wow64cpu.dll来实现)
在驱动层(ring0)里执行应用层(ring3)代码,这是个老生常谈的技术,而且方法也挺多. 这种技术的本质:其实就是想方设法在驱动层里把应用层代码弄到应用层去执行. 比如在APC异步调用中,KeInsertQueueApc,KeInitializeApc等函数中可设置一个在ring3层执行一个回调函数,这样就可以回到应用层去执行代码了. 再比如在驱动中查找某个进程的一个线程,然后挂起它,把他的EIP指向需要执行的一段代码(把驱动层需要注入的这段代码叫ShellCodde), 执行完之后再回到线
【旧文章搬运】关于在指定进程调用KeUserModeCallback的问题
原文发表于百度空间,2010-10-07========================================================================== 由于KeUserModeCallback的工作原理,对调用者线程和进程有以下要求: 1.调用者线程不能是纯内核线程(由PsCreateSystemThread创建的线程) 2.调用者线程必须在其所属进程中调用KeUserModeCallback 3.调用者进程必须加载了user32.dll 原因很简单,因为K
KeUserModeCallback函数
内核调用用户 正常的系统调用过程为Ring3->Ring0->Ring3,而KeUserModeCallback提供了一种Ring0->Ring3->Ring0的方式,即从内核去用户层执行代码. KeUserModeCallback ( IN ULONG ApiNumber, //对应函数在KernelCallback表中的索引 IN PVOID InputBuffer, //ApiNumber不同(即调用的函数不同),此参数对应不同的结构 IN ULONG InputLength
Windows x86 x64使用SetThreadContext注入shellcode的方式加载DLL
一.前言 注入DLL的方式有很多,在R3就有远程线程CreateRemoteThread.SetWindowsHookEx.QueueUserApc.SetThreadContext 在R0可以使用apc或者使用KeUserModeCallBack 关于本文是在32位和64位下使用SetThreadContext注入DLL,32位下注入shellcode加载dll参考 创建进程时注入DLL,64位下shellcode通过编写asm汇编文件,使用windbg的attach调试获得. 二.编程思路
CVE-2015-0057 POC构造 & 利用分析(2015.7)
CVE-2015-0057 POC构造 & 利用分析 主要内容: 构造POC 利用思路 0x00 初探 从这篇文章可以获知: 1.问题出在 win32k!xxxEnableWndSBArrows 函数,其在触发 user-mode callback 后,执行完相应操作后从用户层返回到内核层,对接下来操作的对象未能验证其是否已经释放(更改),而继续对其进行操作,导致UAF.触发user-mode callback的调用流程为: 2.所涉及的敏感对象为 tagSBINFO,可以通过CreateWin
------- 软件调试——还原 QQ 过滤驱动对关键内核设施所做的修改 -------
-------------------------------------------------------------------------------- 在前一篇博文中,我们已经处理完最棘手的部分:杀掉 QQFrmMgr.sys 创建的系统线程.剩余的工作就轻松多了--移除 QQFrmMgr.sys 和 QQProtect.sys 安装的 SSDT(系统服务调度表)钩子与 SSDT Shadow 钩子.销毁它们注册的事件通知 callback,从而将系统恢复至干净状态. 在此之前,按照惯
【旧文章搬运】Windows中全局钩子DLL的加载过程
原文发表于百度空间,2011-03-24========================================================================== 看雪上别人问的一个问题,顺便在此记录下吧~~ kd> kvn # ChildEBP RetAddr Args to Child 0012f7b8 77d2dbfb 0012f81c kernel32!LoadLibraryExW+0x2 (FPO: [Non-Fpo]) 0012f7e4 7c92eae3 0
【旧文章搬运】分析了一下360安全卫士的HOOK(二)——架构与实现
原文发表于百度空间及看雪论坛,2009-10-14 看雪论坛地址:https://bbs.pediy.com/thread-99460.htm 刚发这篇文章的时候,因为内容涉及360的核心产品,文章被雪藏了一段时间========================================================================== Author:achillisblog :https://www.cnblogs.com/achillis/ 上一篇的分析中漏掉了三个函
Windows进程间通讯(IPC)----WM_COPYDATA
WM_COPYDATA通讯思路 通过向其他进程的窗口过程发送WM_COPYDATA消息可以实现进程间通讯. 只能通过SendMessage发送WM_COPYDATA消息,而不能通过PostMessage发送WM_COPYDATA消息.因为系统必须管理用以传递数据的缓冲区的生命期,如果使用了PostMessage(),数据缓冲区会在接收方(线程)有机会处理该数据之前,就被系统清除和回收.所以应该使用SendMessage,这样就能在接收方处理数据之前使发送方处于阻塞状态,发送数据的缓冲区不会被清除
CVE-2021-1732 LPE漏洞分析
概述 CVE-2021-1732是一个发生在windows内核win32kfull模块的LPE漏洞,并且由于创建窗口时调用win32kfull!xxxCreateWindowEx过程中会进行用户模式回调(KeUserModeCallback),从而给了用户态进程利用的机会. 该漏洞由安恒信息在2020年12月在野外攻击样本中发现,在2021年2月份公开披露.相关样本在2020年APT组织蔓灵花针对国内的一次攻击中作为提权组件被发现. 分析 Windows中创建窗口时,会调用API CreateW
热门专题
app发版需要后端更新版本号吗
兄弟组件之间传值 用vuex还是用事件好
为什么data sizes incompatible
RBAC 角色分级的 git
sigmoid 做二分类任务
开机显示最近的硬件或软件可能安装了未正确签名
http协议的编码格式
谷歌访问助手网络连接异常
labelspan colspan 长度怎么计算
OpenVPN 多个网段
hashmap頧柝ist撖寡情
signal tap ii加入的信号为红色
mini pice 与m.2接口区别
centos7卸载mysql数据库
vue实现可视化立体地图
delphi2010转delphi7界面
python二维数组操作
ocr识别技术 tess4j
java连接cassandra数据库
IndexedDB封装