摘要: 分析 INT 0x2E 和 sysenter如何进入R0 ####一、回顾 上课我们学习到3环如何进入0环,分别是中断门,快速调用,如果CPU支持快速调用, 那么_KUSER_SHARED_DATA 结构体的 SystemCall 属性指向的函数是 KiFastSystemCall; 如果不支持,那 阅读全文
posted @ 2020-12-12 19:17 Besttwuya 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 常用汇编指令大全 ####AND 指令(逻辑与) 操作数可以是(8位,16位,32位,64位)但是两个操作数必须是同样大小. 两个位都是1,则结果位等于1;否则结果位等于0. ####OR 指令(逻辑与) 操作数可以是(8位,16位,32位,64位)但是两个操作数必须是同样大小. 只要有一个输入位是 阅读全文
posted @ 2020-12-09 19:32 Besttwuya 阅读(866) 评论(0) 推荐(0) 编辑
摘要: 逆向分析 KiFastCallEntry ####一、回顾 上一篇我逆向 KiSystemService 通过中断门进0环后,3环(esp,ss,eip,cs,eflags)都保存到0环栈里. 进0环后把当前寄存器的值,按照_KTRAP_FRAME的约定压到栈里。 ####二、逆向分析 KiFast 阅读全文
posted @ 2020-12-06 04:11 Besttwuya 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 分析ReadProcessMemory如何进入R0【下】 ####一、回顾 上节我们学习API系统调用在R3部分做的事情,2种方式进入R0,(中断门和快速调用),分别调用两个不同的函 数,KiSystemService,和 KiFastCallEntry.接下来我们来逆向分析KiSystemServ 阅读全文
posted @ 2020-12-05 05:17 Besttwuya 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 分析ReadProcessMemory如何进入R0【中】 (系统环境:在Windows7 32位操作系统 / 调试器:olldbg 编译器:VS2008) ####一.R3进入R0分为两种方式 #####1.中断门 76ff70c0 8d542408 lea edx,[esp+8] 76ff70c4 阅读全文
posted @ 2020-12-02 23:46 Besttwuya 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 奇葩汇编指令大全 ##sbb指令 sbb是带借位bai减法指令,它利用了duCF位上记录的借位值。 指令格式:sbb 操作对象1,操作对象2 功能:操作对象1=操作对象1-操作对象2-CF 若AX=1020H,BX=1200H,CF=1,则SBB AX,BX的执行后AX的结果为: 1020-1200 阅读全文
posted @ 2020-11-25 18:09 Besttwuya 阅读(267) 评论(0) 推荐(2) 编辑
摘要: 分析ReadProcessMemory如何进入R0【上】 (系统环境:在Windows7 32位操作系统 / 调试器:olldbg 编译器:VS2008) ####1.调试代码 #include "stdafx.h" #include <windows.h> int age=100; int out 阅读全文
posted @ 2020-11-25 16:50 Besttwuya 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 驱动内核函数大全 I/O通信的函数 1.IoCreateDevice //创建设备对象 2.IoCreateSymbolicLink //创建符号连接 3.IoDeleteDevice //删除设备 Ps线程/进程函数 1.PsCreateSystemThread //创建线程 Rt字符串函数 1. 阅读全文
posted @ 2020-11-22 04:47 Besttwuya 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 1.驱动开发环境 VS2013+WDK8.1 2.调试工具 DebugView on(打印工具) 驱动加载器 #include <ntifs.h> /* ntifs.h包含下面这些头文件 #include <ntddk.h> #include <excpt.h> #include <ntdef.h> 阅读全文
posted @ 2020-11-22 04:04 Besttwuya 阅读(168) 评论(0) 推荐(0) 编辑