06 2019 档案

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