windows游戏安全
文章平均质量分 72
windows内核原理、安全对抗技术
摔不死的笨鸟
长期活跃更新,如果你觉得我的博客不错,那就订阅吧。这样我就能多买两本书看,给你写质量更高的博客。
展开
-
EDR查杀原理曝光及免杀绕过
为了保护系统的安全和稳定性,从Windows 64位起,Windows机器有两种不同的运行模式:用户模式和内核模式,用户模式即我们平时使用各种应用程序时所处的交互模式,应用可以访问CPU和内存等资源,维持自身的正常运转。Meterpreter绕过了磁盘上基于签名的检测和使用系统调用的Shellcode检测,但在运行不到一分钟后又被报毒,这是一个基于行为的检测,由额外的DLL文件触发,通过普通 Win32 API 和反射 DLL 注入技术加载。从我目前的知识和观点来看,对此问题的非常简单的回答是——不!原创 2019-09-22 14:03:43 · 1052 阅读 · 1 评论 -
异常的任务门处理
基础知识IA-32 CPU把异常分为3类:错误(fault)、陷阱(trap)和中止(abort)。中断是计算机系统中非常宝贵的资 源。如果为某个设备分配了中断资源,那么便赋予了它随时打断CPU的权力。中断和异常的根本差异是:异常来自于CPU本身,是CPU主动产生的;而中断来自于外部设备,是中断源发起的,CPU是被动的。异常处理程序在执行完一系列 检查和预处理后,会调用__except块的过滤表达式,并期望得到以下3个值之一:EXCEPTION_CONTINUE_EXECUTION (–1) : 导原创 2022-05-13 17:46:37 · 398 阅读 · 0 评论 -
虚拟地址转物理地址
概述CPU是如何利用页目录和页表 等数据结构将一个32位的虚拟地址翻译为32位的物理地址的。其过程可以概括为如下步骤。① 通过CR3寄存器定位到页目录的起始地址,正因如此,CR3寄存器又称为页目录基地址寄存器(PDBR)。取线性地址的高10位作为索引选取页目录的一个表项,也就是PDE。 ② 判断PDE的PS位,如果为1,代表这个PDE指向的是一个4MB的大内存页,PDE的高10位便是4MB内存页的基地址的高10位,线性地址的低22位是页内偏移。将二者合并到一起便得到了物理地址。如果PS位为0,那么根据P原创 2022-05-13 17:28:13 · 6575 阅读 · 0 评论 -
GDT、LDT和IDT
三个重要的系统表GDT、LDT和IDT 首先说明的是,这三个表是在内存中由操作系统或系统程序员所建,并不是固化在哪里,所以从理论上是可以被读写的。这三个表都是描述符表。描述符表是由若干个描述符组成,每个描述符占用8个字节的内存空间,每个描述符表内最多可以有(8K)8129个描述符。描述符是描述一个段的大小,地址及各种状态的。描述符表有三种,分别为全局描述符表GDT、局部描述符表LDT和中断描述符表IDT。GDT表与IDT表在整个系统中,全局描述符表GDT只有一张(一个处理器对应一个GDT),GDT原创 2020-11-13 15:44:13 · 2115 阅读 · 0 评论 -
FindNextFileW的Ring3到Ring0过程分析
FindNextFileW在微软官方看到应该是在kernel32.dll中实现,但实际调试中发现是在kernelBase.dll中。微软官方文档也不可信啊。打开IDA反汇编并加载PDB信息,可以看到_SEH_prolog4函数的使用。遂先学习下这个知识点。SEH的prolog4函数与epilog4函数如图所示,是FinNextFileW函数刚断下来时的堆栈以及信息。可以看到这个函数的栈帧结构是有点不一样的。首先push了四个参数:堆栈大小、scope table entry、_except_ha.原创 2020-11-04 17:54:24 · 353 阅读 · 0 评论 -
逆向自己写的键盘过滤驱动
闲来无事,逆向一下自己写的驱动,加深下认识。 这里把逆向的驱动分为Debug版,Release版和加载PDB版。三个版本的特点是: Debug版不会被编译器优化,比较适合学习逆向。 Release版是发布对外的,逆向时很多结构体和反汇编都被优化变形了,只能说是有原来代码的特征。 加载PDB版就几乎等同于阅读源码了,没什么挑战。 所以这里学习重点讲的是逆向Debug版编译的自己的驱动。Debug版 首先拖入IDA识别的DriverEntry并不是我们实际的DriverEntry原创 2020-10-22 16:03:13 · 359 阅读 · 0 评论 -
驱动级Rootkit攻击测试——进程隐藏
学习内核编程,祝早日能编写POC程序!SSDT HOOK NtOpenProcesstypedef NTSTATUS(*pfnNtOpenProcess)( PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES, PCLIENT_ID); pfnNtOpenProcess OldNtOpenProcess;定义一个指向API的函数指针定义方法。作用是定义API函数指针备份原来的函数地址。typedef struct _SERVICE_DESCRIPTOR_T原创 2020-09-16 17:40:00 · 677 阅读 · 1 评论 -
TEB与PEB结构定位、PE结构导入表与导出表定位
TEB定位 PE导入表导出表定位PEB定位到模块基址PE定位到导出表PE定位到导入表对于windows可执行文件的研究与学习,学会TEB PEB结构以及PE结构是必经之路。PEB定位到模块基址使用Windbg和OD同时分析软件线程环境块 TEB+0X30==PEB ProcessEnvironmentBlock进程环境块三个入口点我们取了第三个...原创 2019-08-10 17:39:49 · 926 阅读 · 0 评论