
驱动入门
pipixia233333
沙漠花开
展开
-
驱动入门 R3与R0的通信
哇 这一段时间是很自闭的 主要的原因还是因为我们老师还有学长给我了一道Linux逆向题 我死活都不会做。。。凉凉 然后 我就继续学习驱动了 然后根据一些学习资料 写了一下驱动程序与应用层的程序的通信 大概就是缓冲区的方法 然后 因为虚拟机里面没有安装vs 我就用codeblocks写的 但是发现 报错了 后来百度了一下 发现定义了一下 UNCODE就可以了 然后就成了 R0代码:...原创 2018-10-27 16:13:10 · 1697 阅读 · 0 评论 -
用 DKOM 的方法来隐藏进程和保护进程
这个还是根据作者Tesla.Angela所开源的教程写的东西 其实这个东西windows7 应该是没有问题的 但是听说windows10 是不行的 除了要摘链 还是去搞掉一张表 这个比较麻烦 还有一点要注意的是 我们这里的进程 结构体 不一定是其它系统的结构体 因为windows 不同的版本 会重新定义很多数据结构 然后 有些大手子写的 驱动 会有硬编码什么的 就会导致蓝屏~...原创 2019-01-19 10:10:09 · 1714 阅读 · 0 评论 -
枚举和隐藏内核模块
这个还是根据作者Tesla.Angela所开源的教程写的东西 感谢作者 无私奉献的精神 先说枚举 枚举是在应用层实现的 这里的精髓就是找到了 了 WIN64 上 SYSTEM_MODULE_INFORMATION 正确 的结构体定义 如果这个结构 找不对 那么 程序肯定是不对的 然后 用的是 函数 ZwQuerySystemInformation 的 第11号功能 ...原创 2019-01-19 12:09:15 · 861 阅读 · 0 评论 -
X64ssdt 枚举函数偏移地址
emmmmm 这个其实 和Windows x86差不多~~~~~这里参考了 看雪论坛分享的 资料 作者是 Tesla.Angela(GDUT.HWL) 下面是代码 #include <ntddk.h>#include <windef.h>#pragma intrinsic(__readmsr)typedef struct _SYSTEM_SERVIC...原创 2019-01-14 19:18:39 · 637 阅读 · 0 评论 -
内核模式下的文件操作 (Windows 驱动开发技术详解)
这篇文章 是根据张帆老师 一书 《Windows 驱动开发技术详解》 写出的买这本书 很久了 一直 都感觉看视频好一些 偶然 翻了这本书 发现真的是神书然后 先说文件的创建文件创建 也就是 NTSTATUS ZwCreateFile( _Out_ PHANDLE FileHandle, _In_ ACCESS_MASK ...原创 2019-01-09 10:50:40 · 1820 阅读 · 4 评论 -
获取SSDT函数索引号
这里还是看windows黑客编程技术详解 学的 其实 里面很多东西 自己以前都会 主要 的是不知道索引号 放在了哪里 看了这本书 才发现 索引号 如果大家对PE不理解 可以去补一下 PE 现在回头来看看 还是比较简单的至于索引号 这里可以 说一下 以下代码均是 windows黑客编程技术详解 一书自带的代码#ifdef _WIN64 ulFuncti...原创 2019-01-15 10:11:16 · 1117 阅读 · 0 评论 -
HOOK SSDT
这篇文章是根据作者Tesla.Angela 在 看雪论坛 发布的文章所写这个 X86还是比较好实现的 但是 X64 就有些绕了 而且 比较麻烦吧 其实x64做的保护 听容易看出来的 他先把ssdt 搞成动态 然后 又把 ssdt 放入的地址搞成偏移地址 这个让我有点奇怪 我先发一下 作者 Tesla.Angela的原话 知道了这一套机制,HOOK SS...原创 2019-01-15 12:20:55 · 920 阅读 · 0 评论 -
内核模式的注册表操作(Windows 驱动开发详解)
首先说一下 应用层的注册表操作 主要也就是 遍历 增删改查 之类 的然后 RegOpenKeyEx 函数 这个可以 打开 其中 RegCreateKeyEx 可以创造 也可以打开 然后 RegSetVableEx 函数 在注册表下设置指定值的数据和类型 其中如果想实现 某个程序开机自启动的话 其实也很简单 只不过在windows10 或者有些win7 要权限的 BO...原创 2019-01-09 21:19:10 · 2129 阅读 · 1 评论 -
UNSSDTHOOK
这里先开一个题外话 因为我一直再看 pwn的堆溢出 然后有学弟问我 烫烫 屯屯 什么意思 我一直感觉是个中断值 当 栈或者 堆 溢出的时候 引起中断 然后 警告 后来 感觉自己 理解的有点偏差 这里 是正确的烫烫是debug中未初始化的栈变量 屯屯是debug中未初始化的堆变量 然后开始今天的重点 emmmmmm 很可惜的一点 这个东西我一直想做 但是...原创 2019-01-15 16:21:14 · 129 阅读 · 0 评论 -
关于 时间和定时器
这些东西 本来感觉没有什么搞得必要 但是 感觉很多书 都介绍了一些 我也就跟着做一下吧。。。。获取系统的时间 这个 应该是是最简单的 直接看代码 就ok#include "stdafx.h"#include <windows.h>int _tmain(int argc, _TCHAR* argv[]){ SYSTEMTIME time; ::GetLo...原创 2019-01-21 19:07:47 · 245 阅读 · 0 评论 -
内核 进程监控 线程监控
唉 最近学习感觉有点学不懂了 有点头蒙 都有点想放弃了 最后还是坚持一下吧 看内核看不懂了 就去pwn 昨天确实有点瞎想了 有些东西未来再说 现在 为时太早 然后 今天 搞得是 内核进程监控 然后还是根据看雪分享的教程 写的 作者是 Tesla.Angela然后 这里 并非是 HOOKSSDT 而是 用的 VOID CreateProcessNotifyEx...原创 2019-01-16 10:59:04 · 363 阅读 · 0 评论 -
内核 监控模块
这里的话 可能比较简单一些 和上一张的 检测 进程差不多的 然后 也是根据 作者Tesla.Angela 所记的笔记 然后今天 搞得是 内核监控模块 这里也是用的 微软使用的函数 而且 据作者所说 这个函数还很底层那么 这个可比 hook 函数 好用多了 然后的话 函数原型 增加PsSetLoadImageNotifyRoutine((PLOAD_IMAGE...原创 2019-01-16 14:49:13 · 437 阅读 · 0 评论 -
监控注册表
也是经过微软的函数 然后直接调用的 设置回调即可~~~~~~~~~~~~~#include <ntddk.h>#include <ntimage.h>#include <windef.h>#include <stdlib.h>#include <ntimage.h>#define REGISTRY_POOL_TAG 'p...原创 2019-01-16 17:02:57 · 915 阅读 · 1 评论 -
Minifiter 文件监控 (Windows黑客编程技术详解)
最近感觉有点浮躁 不知道为什么 可能是学习 驱动学的有点心态崩吧。。。。。 但是还是咬咬牙坚持了 、因为感觉自己现在还差了远 如果自己 寒假不好好学习 内核这方面的知识 下学期 还要去 撸关于CTF的东西 自己一直海峡那个去看看 编译原理 所以 感觉 任务比较多呀!!!!!!!!!!然后这次 博客 是根据 Windows黑客编程技术详解 一书所写 感觉很惭愧 感觉...原创 2019-01-17 09:52:40 · 2491 阅读 · 0 评论 -
内核 其它操作
本博客 参考于 看雪论坛 作者 作者:Tesla.Angela(GDUT.HWL)通过这一段的学习 学会了 对进程的基本操作 但是还是有其他的操作 很重要 这里要在这里学习一下的~~~~~比如内核里面的链表 内核里面的链表感觉还是经常用的 而且大部分都是 双向链表 比如进程的遍历 前面写的断链 然后还有 驱动对象的遍历 驱动对象#include ...原创 2019-01-14 11:51:23 · 364 阅读 · 1 评论 -
根据教程写出的断链
这个断链很不稳定 说实话 很不喜欢这种 偏移 硬编码 直接撸的 但是 现在 自己的水平还是有点低 没办法 只能这样写 了 看看后来能不能改变一下在x86 断链就能解决 只要是 断链比较简单 这个东西 服务 保存在一个链表中 我们把链表断开就ok了#include <ntddk.h>typedef unsigned long DWORD;typedef...转载 2019-01-08 15:53:30 · 266 阅读 · 0 评论 -
内核中对进程的操作
这里 也是参考了看雪论坛分享的这里 我找不到那个分享的网址了 比较尴尬 什么时候找到了 把分享 教程的网址放出来 。。。 本来是看 windows黑客编程技术详解 这本书 看的很起劲 但是 发现 emmm 比较可惜 那个irp 发现也不是那么的神奇 于是 直接看 内核进程的操作了 就是简单的枚举pid#include <ntddk.h>#includ...原创 2019-01-13 22:14:27 · 361 阅读 · 0 评论 -
驱动遍历进程的方法
/*#include <ntddk.h>#define DEVICE_OBJECT_NAME L"\\Device\\BufferedIODeviceObjectName"#define DEVICE_LINK_NAME L"\\DosDevices\\BufferedIODevcieLinkName"void dirver(IN PDRIVER_OBJECT pDri...原创 2018-10-27 21:05:14 · 1534 阅读 · 0 评论 -
驱动关闭进程
#include <ntifs.h>NTSTATUS ZwQuerySystemInformation( ULONG SystemClass, PVOID SystemInformation, ULONG SystemInformationLength, PULONG RetLength );typedef struct _SYSTEM_THREADS{ LARG...原创 2018-10-28 00:07:27 · 981 阅读 · 0 评论 -
驱动函数的hook
其实 驱动hook也就仅限于32位 64位有保护 类似 pg什么的 现在听大佬们讲驱动hook都已经过时了(感觉对于我这种萌新还是有参考价值的)讲hook前 需要了解其实windows驱动编程就可以说是windows内核编程 内核除了看似很简单的错误 毕竟轻的后果就是蓝屏 后续还会出现各种各样的错误(这就体现了虚拟机和快照的好处)然后 windows为了内核的安全 就规定很多不可写的内...原创 2018-11-13 19:11:57 · 1197 阅读 · 0 评论 -
XP 下驱动保护程序
这个也是我看教学视频有感而发 其实也没有做什么东西 就是做了一个exe 然后有四个功能1. 保护进程2.去掉保护3.杀死进程4.获取运行进程的信息 其实这四个 里面 第一个 第二个都是和驱动配合得出来的 然后 我先说第三个 第三个杀死进程其实 很简单bool killprocess(int pid){ HANDLE hProcess=OpenProcess(...原创 2018-11-18 20:45:45 · 448 阅读 · 0 评论 -
windbg 常用知识
G 是运行U 是汇编可以VIEW 里面设置 一下反汇编窗口然后我们 F10 步过 (OD的 f8) F8 F11 步入(OD的f7) shift +f11(shift +f9 ) 返回上一层 f5 相当于 od的f9 bp == int 3 想调试的时候有源码可以设置符号表 ...原创 2018-11-17 22:34:27 · 173 阅读 · 0 评论 -
x86的缓冲区读写 还有hook
x86的hook 其实很简单 其实我们在od里就可以知道 E9+(跳转的地址-现在的地址-5)然后 跳来跳去就可以 而 缓冲区读写有个很重要的概念就是#define sub_code CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_BUFFERED,FILE_ANY_ACCESS)(这是比喻一下 这个是我们的code 值 比如...原创 2018-11-18 16:36:56 · 250 阅读 · 0 评论 -
windows 驱动的 数据类型
本来我现在还是有 一些x64的资源 但是 我还是想从 windows x86入手 看了不少视频 但是 总是感觉 不如看书 然后 就找到了 寒江独钓 还有天数夜读 这两本书 然后系统的读一下 然后再去看X64的东西 X64 感觉也会看的差不多的 本博客内容来自于 寒江独钓 Windows 内核安全编程 的总结 那么 下面介绍 windows驱动的数据类型 unsi...转载 2019-01-11 11:06:09 · 1116 阅读 · 0 评论 -
用 ZwAllocateVirtualMemory 来申请内存
用ZwOpenProcess ZwAllocateVirtualMemory 这两个函数 申请内存 #include <ntddk.h>//ZwAllocateVirtualMemory(hProcess,&AllocateAddress,0,&RegionSize,MEM_COMMIT,PAGE_EXECUTE_READWRITE);NTSTATUS ZwA...原创 2019-01-06 10:41:10 · 5185 阅读 · 1 评论 -
HOOK ntopenprocess
先来说一下我对SSDT的体会把 我感觉SSDT 就是一张表 这个表里面 有很多数组 然后 算是 内核层的 导入表只不过 他是整个操作系统的导入表 然后里面有很多数组 然后当我们 调用 api的时候 应用层的api 会经过封装 可能会多传出一些 参数 比如 那张表 表的 地址 那个数组 然后 进去调用就好了 听群里的大佬说 x86 的ssdt 好像是固定的 但是 ...原创 2019-01-06 17:44:07 · 1123 阅读 · 0 评论 -
键盘的过滤
这几天心态崩了 就没怎么继续撸 看pwn看的心态有点崩 然后 看驱动看不下了 所以 划了一天的水。。然后这次写的是 键盘的过滤 这次 看的是 资料是 windows黑客技术编程 其实这个 我感觉 还是比较好理解的首先是 一个 扩展设备 typedef struct _DEVICE_EXTENSION{ PDEVICE_OBJECT pAttachDe...原创 2019-01-17 20:59:21 · 656 阅读 · 1 评论 -
内核 复制文件
在上一篇的时候我学会了 读取文件 还有查询文件大小 写入文件等 然后想写一些代码 比如文件复制的 什么 的 然后 我昨天 决心学 X64的驱动了 然后昨天也把win7 X64的双机调试 搞定了 然后开始了 写win7 X64驱动的第一天其实 x64 和x86都是差不多的 只不过 x64有些数据结构 重写了 如果 还用 x86 的 可能就凉了 然后 先看 个 ...原创 2019-01-12 15:56:35 · 799 阅读 · 4 评论 -
内核的枚举文件
这个还是糅合了 很多资料搞定的 感觉内核 枚举 文件还是简单的 核心函数就一个 ZwQueryDirectoryFile 得出来 _FILE_BOTH_DIR_INFORMATION 结构体 然后枚举 就可以了 然后 可以 封装两个函数 MyFindFirstFile MyFindNextFile 。MyFindFirstFile 可以用 IoCreateFile 来获取...原创 2019-01-13 10:11:25 · 960 阅读 · 1 评论 -
驱动读写(只有读)
哈哈 今天看见女装大佬 看我们 这群猪头太菜了了 然后出了一个驱动读写的教程然后这里是链接https://www.bilibili.com/video/av26193169?t=992&p=19这篇博客是根据 这个 教程写的然后 大佬 说了一个函数 感觉挺有必要注意的 if (!MmIsAddressValid(DbgDir)) break;这样判断内存是...原创 2019-03-31 16:48:17 · 4935 阅读 · 1 评论