06 2019 档案
摘要:ZwQueryInfoMation函数很简单.就是4个参数. 函数很简单.就4个参数. 参数已就是传个类型.代表你要查询什么类型.这个函数很强大.基本什么都是可以查询 参数2: 就是一个缓冲区.这个缓冲区是根据你查询的类型.当查询到数据.就会放到这个缓冲区.所以缓冲区可以接受你指定查询类型的数据.所
阅读全文
摘要:内核中常用的数据结构 数据结构 何为数据结构 不管是Ring0还是Ring3数据结构都是必须要知道的.数据结构是一种思想. 以及怎么存储数据. 跟语言无关.平台无关. 如:(链表,数组,栈,队列.图.树...) ring0下数据结构非彼数据结构. 意思就是数据结构思想都是一样的. 你只需要熟悉rin
阅读全文
摘要:多线程编程 一丶多线程安全. 1.什么是多线程 现在的程序基本是很多个线程.不想以前一样.而进程和线程的关系就是 一对多的关系. 进程做外键放到线程中. 数据关系是这样的. 简单理解为 进程就是一个 容体. 里面的线程就是它进存储的任务. 一个线程只能做一个事情. 多个线程可以做多个事情. 2.超线
阅读全文
摘要:一丶同步与互斥详解,以及实现一个进程监视软件. 1.用于线程同步的 KEVENT 事件很简单分别分为 事件状态. 以及事件类别. 事件状态: 有信号 Signaled 无信号 Non-signaled 事件类别 自动恢复 Synchronization 自动设置 不自动恢复. Notificatio
阅读全文
摘要:中断级别IROL了解 一丶IRQL 1.了解什么是中断 中断就是产生的一个电信号.比如键盘.当按下就会产生电信号发送给CPU 而CPU就会停止当前处理.去执行电信号.他是根据IRQL中断级别来进行处理的. 如下图: 中断说白了就是个电信号.打断CPU执行的代码. 去调用中断处理函数. 此时CPU就处
阅读全文
摘要:一 丶注册表编程 二 注册表简介 2.1 ring3注册表 在内核中我们的注册表只有两个 key 内核 对应ring3 \Registry\Machine\software HKEY_LOCAL_MACHINE \Registry\User\ HKEY_USERS 其它的三个是从这些内核中映射出来的
阅读全文
摘要:文件操作,以及强删文件. 一丶文件操作 1.文件操作的几种方式 操作 创建文件/文件夹 读/写 拷贝 移动 删除 属性访问与设置 1.2 文件的表示 文件路径表示表格: 表示层 文件路径表示方法 Ring3 L"C:\HelloWorld.txt" Ring0 L"\??\C:\HelloWorld
阅读全文
摘要:#驱动第六讲_Windbg连续调试Ring3.与Ring0 ##一丶Windbg连调试 有时候我们调试一个程序.可以使用Windbg.但是如果我们想一个Windbg 调试一个Ring3.并且在调试一个Ring0程序应该怎么做. 第一种方法: 虚拟机安装Windbg.并且调试Ring3. 我们的主 第
阅读全文
摘要:windows内核下字符串操作详解 一丶内核字符串简介 1.1 简介 在Windows内核下 和 应用程序一样,驱动程序需要经常和字符串打交道。 其中包括了 ASCII 字符串丶宽字符串,还有DDK定义的 ANSI_STRING STRING UNICODE_STRING 等结构。下面就详细说明。
阅读全文
摘要:#反调试与反反调试 ##一丶反调试的几种方法 ###1.DebugPort端口清零 debugport是在EPROCESS结构中的.调试时间会通过DebugPort端口将调试事件发送给ring3进行调试的.如果设置为0.则ring3就无法进行调试了 也就是说你不能单步了.等相关调试操作了. 如果做反
阅读全文
摘要:#SSDt表与ShadowSSDT表的查看. ##一丶SSDT表 ###1.什么是SSDT表 SSDT表示系统服务表,我们ring3调用的很多函数都会调用这个SSDT表 ###2.查看步骤 1.使用 x命令 前提需要加载好符号. x nt!kes*des*table* KeServiceDescri
阅读全文
摘要:##一丶驱动的调试. 编写驱动免不了调试.所以这里介绍一下WinDbg的常用命令. ###1.线程 命令 作用 ~* 显示所有线程 ~. 显示当前活动线程 ~# 显示当前异常线程 ~ num 显示第num个线程. ~ num s 切换到第num个线程 ~*kb 显示所有线程的栈 额外命令 命令 作用
阅读全文
摘要:##一丶驱动是如何运行的 ###1.服务注册驱动 我们编写驱动.一定要知道驱动是如何运行的 首先在我们安装一个驱动的时候,会创建一个服务.(注册表) 在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SrvNmae 最后一个是是你驱动的名字
阅读全文
摘要:驱动框架介绍 1.应用程序3环到0环的框架 1.1 3环到0环的驱动框架. 首先是我们的3环API API -> 封装数据跟命令 ->调用kerner32或者ntdll的函数 ->进行封装,传送给IRP结构体 ->调用驱动 这里接触了一个新的概念.IRP .IRP结构体其实是3环的数据以及命令.进行
阅读全文
摘要:[toc] IAT hook 一丶IAT 1.什么是 IAT表. 熟悉PE结构的应该知道.IAT 是导入表. 其IAT表如下: 我们知道PE有两种状态.第一种.在文件中的状态. 所以才有 VA 转 FOA等等的互相转换. 扯多了. 在文件状态. IAT表(firstThunk)跟 INT表一样.都是
阅读全文
摘要:[toc] x64汇编第三讲,64位调用约定与函数传参. 一丶复习X86传参 在x86下我们汇编的传参如下: 看到上面这段代码.我们就应该在脑海中有一个示意图. 我们可以根据上图可以看到.在调用函数的时候做了那些事情. 1.往栈中存放参数 2.将返回地址入栈 3.保存栈底 4.栈内部进行自己的 申请
阅读全文
摘要:#x64汇编第四讲,c / C++中调用x64汇编 一丶简介 1.说明 在x86下,我们的C/C++调用汇编可以直接 __asm进行内联. 或者也可以直接静态链接 具体详情可以参考以前博客: https://www.cnblogs.com/iBinary/p/7555503.html 其实在我们x6
阅读全文
摘要:[toc] x64汇编第二讲,复习x86汇编指令格式,学习x64指令格式 一丶x86指令复习. 1.1什么是x86指令. 代码如下. 高级代码为: 此时产生了3条汇编指令 此时观察,有两条 Mov 指令. 但是机器码却不同.这个就是我们今天要讲的. 1.2 x86与x64下的通用寄存器 在x86下面
阅读全文

浙公网安备 33010602011771号