首页
学习
活动
专区
圈层
工具
发布

驱动开发:内核枚举PspCidTable句柄表

在上一篇文章《驱动开发:内核枚举DpcTimer定时器》中我们通过枚举特征码的方式找到了DPC定时器基址并输出了内核中存在的定时器列表,本章将学习如何通过特征码定位的方式寻找Windows 10系统下面的...那么在Windows10系统中该如何枚举句柄表;1.首先找到PsLookupProcessByProcessId函数地址,该函数是被导出的可以动态拿到。...图片理论知识总结已经结束了,接下来就是如何实现枚举进程线程了,枚举流程如下:1.首先找到PspCidTable的地址。2.然后找到HANDLE_TBALE的地址。...");return FALSE;}Driver->DriverUnload = UnDriver;return STATUS_SUCCESS;}运行如上完整代码,我们可以在WinDBG中捕捉到枚举到的进程信息...:图片线程信息在进程信息的下面,枚举效果如下:图片至此文章就结束了,这里多说一句,实际上ZwQuerySystemInformation枚举系统句柄时就是走的这条双链,枚举系统进程如果使用的是这个API

1K51
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端骨架屏方案小结骨架屏

    骨架屏 最近在项目不时有用到骨架屏的需求,所以抽时间对骨架屏的方案作了一下调研,骨架屏的实践已经有很多了,也有很多人对自己的方案作了介绍.在这里按照个人的理解做了一个汇总和分类,分享给大家....关于骨架屏(简介) 骨架屏就是在页面数据尚未加载前先给用户展示出页面的大致结构,直到请求数据返回后再渲染页面,补充进需要显示的数据内容。常用于文章列表、动态列表页等相对比较规则的列表页面。...第一类用途 第一类用途需要自己编写骨架屏,推荐两个成熟方便定制的svg组件定制为骨架屏的方案 react-content-loader vue-content-loader 作为首屏渲染(自动化方案)...该方案是饿了么在骨架屏的实践中总结出的一套方案: 骨架屏的dom结构和css通过离线生成后构建的时候注入模板中的节点下面....小程序的骨架屏 不存在预渲染的概念,但是还是可以通过自己预先编写骨架屏组件放在页面中,等到异步请求的数据回来后更新页面.

    1.9K10

    驱动开发:如何枚举所有SSDT表地址

    在前面的博文《驱动开发:Win10内核枚举SSDT表基址》中已经教大家如何寻找SSDT表基地址了,找到后我们可根据序号获取到指定SSDT函数的原始地址,而如果需要输出所有SSDT表信息,则可以定义字符串列表...->DriverUnload = UnDriver; return STATUS_SUCCESS; } 代码获得NtOpenFile这个函数的内存地址,输出效果如下所示: 根据上一章节的内容扩展,枚举完整...SSDT表我们可以这样来实现,通过将完整的SSDT结构字符串放入到SSDT变量内,然后通过不间断的循环取出每一个SSDT函数的相对地址信息。...lyshark]); } DriverObject->DriverUnload = UnDriver; return STATUS_SUCCESS; } 我们运行这段程序,即可得到整个系统中所有的SSDT表地址信息

    88040

    6.1 Windows驱动开发:内核枚举SSDT表基址

    具体而言,SSDT表包含了系统调用的函数地址以及其他与系统服务相关的信息。每个系统调用对应SSDT表中的一个表项,其中存储了相应系统服务的函数地址。...SSDT表在64位和32位系统上可能有不同的结构,但通常以数组形式存在。 对于系统调用的监控、分析或修改等高级操作,常需要内核枚举SSDT表基址。...看一款闭源ARK工具的枚举效果: 直接步入正题,首先SSDT表中文为系统服务描述符表,SSDT表的作用是把应用层与内核层联系起来起到桥梁的作用,枚举SSDT表也是反内核工具最基本的功能,通常在64位系统中要想找到...其中fffff8036ef8c880则是SSDT表的基地址,紧随其后的fffff8036ef74a80则是SSSDT表的基地址。...那么如果将这个过程通过代码的方式来实现,我们还需要使用《内核枚举IoTimer定时器》中所使用的特征码定位技术,如下我们查找这段特征。

    1K10

    6.2 Windows驱动开发:内核枚举SSSDT表基址

    SSSDT表存储了系统调用的函数地址,类似于SSDT表,但在某些情况下,Windows系统会使用SSSDT表来对系统服务进行引导和调用。 SSSDT表的存在是为了加强系统的安全性和稳定性。...在笔者上一篇文章《枚举完整SSDT地址表》实现了针对SSDT表的枚举功能,本章继续实现对SSSDT表的枚举,ShadowSSDT中文名影子系统服务描述表,SSSDT其主要的作用是管理系统中的图形化界面,...其Win32子系统的内核实现是Win32k.sys驱动,属于GUI线程的一部分,其自身没有导出表,枚举SSSDT表其与SSDT原理基本一致。...如下是闭源ARK工具的枚举效果: 首先需要找到SSSDT表的位置,通过《Win10内核枚举SSDT表基址》文章中的分析可知,SSSDT就在SSDT的下面,只需要枚举4c8d1dde1e3a00特征即可,...在此基础之上增加枚举计算过程即可,完整源代码如下所示。

    93110

    驱动开发:内核枚举Registry注册表回调

    在笔者上一篇文章《驱动开发:内核枚举LoadImage映像回调》中LyShark教大家实现了枚举系统回调中的LoadImage通知消息,本章将实现对Registry注册表通知消息的枚举,与LoadImage...消息不同Registry消息不需要解密只要找到CallbackListHead消息回调链表头并解析为_CM_NOTIFY_ENTRY结构即可实现枚举。...我们来看一款闭源ARK工具是如何实现的:图片注册表系统回调的枚举需要通过特征码搜索来实现,首先我们可以定位到uf CmUnRegisterCallback内核函数上,在该内核函数下方存在一个CallbackListHead...MmGetSystemRoutineAddress()获取到CmUnRegisterCallback函数基址,然后在该函数起始位置向下搜索,找到这个链表节点,并将其后面的基地址取出来,在上一篇《驱动开发:内核枚举...,输出效果如下所示:图片得到了注册表回调入口地址,接着直接循环遍历输出这个链表即可得到所有的注册表回调。

    58620

    驱动开发:内核枚举Registry注册表回调

    在笔者上一篇文章《驱动开发:内核枚举LoadImage映像回调》中LyShark教大家实现了枚举系统回调中的LoadImage通知消息,本章将实现对Registry注册表通知消息的枚举,与LoadImage...消息不同Registry消息不需要解密只要找到CallbackListHead消息回调链表头并解析为_CM_NOTIFY_ENTRY结构即可实现枚举。...我们来看一款闭源ARK工具是如何实现的: 注册表系统回调的枚举需要通过特征码搜索来实现,首先我们可以定位到uf CmUnRegisterCallback内核函数上,在该内核函数下方存在一个CallbackListHead...MmGetSystemRoutineAddress()获取到CmUnRegisterCallback函数基址,然后在该函数起始位置向下搜索,找到这个链表节点,并将其后面的基地址取出来,在上一篇《驱动开发:内核枚举...,输出效果如下所示: 得到了注册表回调入口地址,接着直接循环遍历输出这个链表即可得到所有的注册表回调。

    87020

    ① 语义令牌表:把语义概念编码成离散枚举

    四个枚举值的令牌表;每个枚举值绑定唯一的视觉映射(status.critical→红色脉冲)与行动约束(必须提供恢复路径);●令牌→字典注册:所有语义令牌在https://cloud.tencent.com...没有令牌表,规范体系只是分类框架;没有规范体系,令牌表只是孤立枚举。3.1把"意思"变成"编号"机器看不懂"红色代表很危险",机器看得懂status.critical。...把连续的自然语言描述,变成离散的编号(枚举值)。https://cloud.tencent.com/developer/tools/blog-entry?...本文回答三个命题:命题验证标准语义可被离散编码error_severity的四级后果差异能被编码为四个互斥枚举值,而非自然语言描述令牌绑定唯一视觉映射每个令牌(如retryable)绑定且仅绑定一组视觉参数...、可校验的注册表这四条反馈指向同一个根因:语义没有被编码成机器可读的东西。

    35910

    语义令牌表:把语义概念编码成离散枚举

    设计思路:把语义概念编码成离散枚举本文的设计思路是三个递进命题:语义概念 → 离散令牌:error_severity 不是文档里的段落,而是包含 fatal、transient、retryable、degraded...四个枚举值的令牌表;每个枚举值绑定唯一的视觉映射(status.critical → 红色脉冲)与行动约束(必须提供恢复路径);令牌 → 字典注册:所有语义令牌在 语义字典 中注册,成为组织级唯一信源...这与 语义规范体系 的关系:语义规范体系定义"有哪些语义维度",语义令牌表定义"每个维度下有哪些离散值"。没有令牌表,规范体系只是分类框架;没有规范体系,令牌表只是孤立枚举。4....本文回答三个命题: 命题验证标准语义可被离散编码error_severity 的四级后果差异能被编码为四个互斥枚举值,而非自然语言描述令牌绑定唯一视觉映射每个令牌(如 retryable...四、架构层概念:设计背景码本,而非术语表。 术语表供人查阅,码本供机器解码:每个令牌是离散索引,编译管线查表后展开为连续约束(视觉方向 + 行为约束 + 文案语气)。

    64900

    驱动开发:Win10内核枚举SSDT表基址

    三年前面朝黄土背朝天的我,写了一篇如何在Windows 7系统下枚举内核SSDT表的文章《驱动开发:内核读取SSDT表基址》三年过去了我还是个单身狗,开个玩笑,微软的Windows 10系统已经覆盖了大多数个人...PC终端,以前的方法也该进行迭代更新了,或许在网上你能够找到类似的文章,但我可以百分百肯定都不能用,今天LyShark将带大家一起分析Win10 x64最新系统SSDT表的枚举实现。...看一款闭源ARK工具的枚举效果:图片直接步入正题,首先SSDT表中文为系统服务描述符表,SSDT表的作用是把应用层与内核层联系起来起到桥梁的作用,枚举SSDT表也是反内核工具最基本的功能,通常在64位系统中要想找到...其中fffff8036ef8c880则是SSDT表的基地址,紧随其后的fffff8036ef74a80则是SSSDT表的基地址。...图片那么如果将这个过程通过代码的方式来实现,我们还需要使用《驱动开发:内核枚举IoTimer定时器》中所使用的特征码定位技术,如下我们查找这段特征。

    1K20

    【Leetcode之路 | Java & Python】两数之和(暴力枚举&哈希表)

    文章目录 一、说在前面 二、两数之和 2.1、暴力枚举 2.1.1 python实现 2.1.2 java实现 3.1 哈希表(Hash table) 3.1.1 python实现 3.1.2 Java...思路历程: 2.1、暴力枚举 按照解题思路,暴力枚举,这里选择快速排序法,快速筛选 2.1.1 python实现 代码: class Solution: def twoSum(self,...Hash table) 我们适用哈希表对其优化,我们先简单讲讲哈希表的原理 数组的特点是:寻址容易,插入和删除困难; 而链表的特点是:寻址困难,插入和删除容易。...我们把两者结合起来,便是哈希表, 哈希表的底层实际上是基于数组来存储的,当插入键值对时,并不是直接插入该数组中,而是通过对键进行Hash运算得到Hash值,然后和数组容量取模,得到在数组中的位置后再插入...的dict便是哈希表算法,我们直接使用即可。

    90410

    swift 枚举(枚举关联值、枚举原始值、递归枚举等)

    :Swift枚举在创建时未分配默认整数值。...原始值是在定义枚举时被预先填充的值。对于一个特定的枚举成员,它的原始值始终不变。关联值是创建一个基于枚举成员的常量或变量时才设置的值,枚举成员的关联值可以变化。...autumn case winter } 当使用字符串作为枚举类型的原始值时,每个枚举成员的隐式原始值为该枚举成员的名称 enum Season:String { case spring...) 使用原始值初始化枚举实例 可以通过rawValue初始化一个枚举成员,返回值则是枚举成员或nil 可以通过这个来判断这个新枚举成员是否在枚举值中 enum Season:Int { case...递归枚举是一种枚举类型 有一个或多个枚举成员使用该枚举类型的作为枚举成员 在枚举成员前加上indirect来表示该成员可递归 enum ArithmeticExpression { case

    1.3K10
    领券