自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 5调用门,x86

尽管在Windows 32位系统中,常见的是中断门和陷阱门用于处理中断和异常,但调用门仍然是x86架构的一部分,可以被操作系统或者系统开发人员用于实现特定的功能。当程序调用调用门时,处理器会检查当前特权级别(CPL)和调用门描述符中的特权级别,只有在CPL小于或等于DPL时,调用才会成功。当程序调用调用门时,CPU会检查调用者的当前特权级别(CPL)和调用门描述符中的DPL,只有在CPL小于或等于DPL时,调用才会成功。调用门描述符中的特权级别字段(DPL)指定了调用门可以被访问的特权级别。

2024-04-14 22:37:02 416 1

原创 4段权限等级

普通数据段 使用段描述符寻址时,先比较段选择子的RPL(请求特权级别)与段描述符的DPL(段特权级别)如果RPL小于等于DPL,再比较 CPL(当前特权级别) 与DPL(段特权级别),如果CPL也小于等于DPL那么就可以通过段描述符寻址。当程序在低特权级别(例如用户态)下尝试访问一个高特权级别(例如内核态)的段时,它可以通过设置选择子的RPL来请求权限。通常,内核态运行的代码(例如操作系统内核)具有最高特权级别(CPL为0),而用户态程序具有较低特权级别(CPL为3)。CPL是当前正在执行代码的特权级别。

2024-04-14 22:05:10 394 1

原创 3段寄存器段选择子,GDT表,段描述符x86

在x86架构的计算机中,段寄存器是一种用于存储段选择子(Segment Selector)的寄存器。段寄存器包括:CS(Code Segment): 存储当前执行的代码所在的段的选择子。DS(Data Segment): 存储数据段的选择子,用于指示程序访问数据的位置。ES(Extra Segment): 附加数据段寄存器,提供额外的数据段选择子,有时用于字符串和数据传输操作。SS(Stack Segment): 存储堆栈段的选择子,用于指示程序的堆栈段。

2024-04-14 11:51:26 984 1

原创 2初识内核WOW64进程

32位系统内核时32位的,64位系统内核时64位的,32位有32位的指令集,64位有64位的指令集,CUP是怎么区分自己执行的是哪个指令集32位操作系统下进入内核的指令是sysenter,64位系统下64位进程进入内核的指令时syscall,那么64位系统下32位进程该执行什么指令呢?观察64位系统下的32位进程ntdll.zwclose ,发现它call了一个地址跟进去看一下F7跟进可以发现现在处于wow64upc模块中这里需要使用特殊版本的调试器Yzdbg ,F7跟进。

2024-04-13 12:12:59 355 2

原创 1初识内核

在 Windows 系统中,Ring 3(用户态)的程序通常通过系统调用(System Call)的方式与内核态(Ring 0)进行交互,而 ntdll.dll 是一个非常重要的动态链接库,它包含了大量的系统调用函数的实现。通过调用 ntdll.dll 中的函数,用户空间的程序可以请求操作系统内核提供的服务和功能,从而间接地与内核态进行通信。因此,虽然用户空间的程序不能直接进入内核态,但通过 ntdll.dll 提供的接口,它们可以间接地向内核态发出请求,从而实现与内核态的通信和交互。

2024-04-11 18:07:03 539 4

原创 内核01(段选择子)

通过将段选择子加载到段寄存器(如CS、DS、ES、FS、GS、SS)中,可以将特定段的基地址和长度与内存操作关联起来。这样,处理器就知道要访问的内存范围,并可以正确地定位和操作数据。在x86架构中,内存被划分为不同的段,每个段具有特定的起始地址和长度。段选择子是一个16位的值,用于标识和选择要访问的特定段。它包含了段的索引和访问权限信息。段选择子是计算机体系结构中的概念,特别是在x86架构中使用。它是用于访问内存中的段的标识符。内核01(段选择子)

2023-06-12 15:32:58 277 1

原创 2.以太网接口堆栈

图中为以太网堆栈中每个协议的封装形式,它们都是从软件层开始的。软件层包含了用户请求发送的数据,有时这块数据会有固定的格式(如HTTP,FTP协议)。用户数据首先取得包含源端口号和目的端口号的TCP头,然后添加IP头,它包含发送者和接收者的IP地址。最后数据链路层添加以太网头,他指定了发送者和接受者的MAC地址,这是真正通过电缆发送的数据。...

2021-11-12 19:06:10 2008

原创 网络基础知识

网络基础知识网络是可以交换数据的互相连接的计算机的集合,网络类型很多,如LAN(局域网)、WAN(广域网)、internet(互联网)。为了确保所有的传输平稳的运行,网络建立在协议之上。协议就是一组规定,它描述了数据传送的格式。协议描述了通过网络如何交流数据,这可以和人类语言相比较:在最底层每一个人都可以发出和听到声音(比较:电子信号),但是只有使用双方都知道的语言(比较:协议),人们才可以交流信息。以太网(Ethernet)网络工作在通信协议之上,协议有多层,在交流过程中每一层协议都有各自的任务

2021-11-12 18:42:36 4627

原创 汇编指令retn详解

汇编指令retn用来结束当前过程返回到上一调用过程当retn指令执行时是将esp指向地址得值弹出到EIP指令指针寄存器实际就是执行了一次pop eip 然后esp+4 紧接着开始执行eip指向的地址rern指令执行前esp指向0041FC9C ,EIP指向002225c7堆栈中0041fc9c保存的是00222714retn指令执行后ESP指向0041FCA0,EIP指向00222714也就是说retn指令执行后把esp指向地址保存的数据弹出到eip然后esp+0x4 相当于执行了po

2021-11-08 13:18:25 9023

原创 shellcode调试

调试shellcode简单调试调试shellcode的方法将shellcode赋值给字符串然后汇编指令获取字符串地址将字符串地址压入堆栈然后retn生成程序用xdbg单步调试即可

2021-11-05 19:00:22 279

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除