随笔分类 - 内核常用代码
摘要:64位下读取SSDT表并且获取SSDT函数 一丶读取SSDT表 (KeServiceDescriptorTable) 1.1 原理 在64位系统下我们可以通过读取msr 寄存器来获取内核函数入口. msr在开启内核隔离模式下获取的是 KiSystemCall64Shadow 而在未开启内核模式下则是
阅读全文
摘要:一丶简介 现在的驱动,必须都有签名才能加载.那么如何加载无签名的驱动模块那. 下面可以说下方法.但是挺尴尬的是,代码必须在驱动中编写.所以就形成了 你必须一个驱动带有一个签名加载进去.执行你的代码.pass掉DSE之后以后加载驱动就可以完全不用签名了. 原理: 原理就是Path一下CI内核模块.将一
阅读全文
摘要:[toc] 一丶简介 主要是讲解.内核中如何拦截模块加载的. 需要熟悉.内核回调的设置 PE知识. ShellCode 二丶原理 1.原理 原理是通过回调函数. 回调函数中有 ImageBase. 使用PE解析ImageBase 得到OEP. OEP位置写入 ret等ShellCode 如何判断 是
阅读全文
摘要:[toc] 一丶简介 我们遇到的Dos路径.如果想转化为NT路径(也就是 C:\xxxx)类似的格式 需要自己实现. 具体原理如下: 二丶原理 1.原理 1.使用 ZwOpenProcess 通过进程PID获取HANDLE 2.使用 ZwQueryInformationProcess 查询Handl
阅读全文
摘要:[toc] 一丶简介 在内核中有时候想通过PID 获取进程的全路径以达到监控的作用 比如我们设置了进程回调.则可以根据PID看下进程的全路径. 二丶原理 原理就是在内核中 通过 ZwQueryInformationProcess 这个未公开的函数 进行查询. 查询好是 ProcessImageFil
阅读全文
摘要:一丶简介 在内核中我们一般会使用各种 HANDLE Object 以及 ID等等. 那么有时候就需要互相转换.这里记录一下. 下面以进程为例进行说明. 1.进程pid 转化为 HANDLE 原理就是 跟ring3一样. 使用打开进程的函数来获取HANDLE 核心原理就是在内核中使用 ZwOpenPr
阅读全文

浙公网安备 33010602011771号