随笔分类 -  内核常用代码

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